@ -1,4 +1,4 @@
package org.gcube.gcat.configuration.isproxies ;
package org.gcube.gcat.configuration.isproxies .impl ;
import java.io.File ;
import java.io.FileReader ;
@ -18,6 +18,7 @@ import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper ;
import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode ;
import org.gcube.gcat.api.configuration.CatalogueConfiguration ;
import org.gcube.gcat.configuration.isproxies.ISConfigurationProxy ;
import org.gcube.gcat.configuration.service.FacetBasedISServiceCatalogueConfiguration ;
import org.gcube.gcat.configuration.service.ServiceCKANDB ;
import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration ;
@ -60,61 +61,52 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
private static Logger logger = LoggerFactory . getLogger ( FacetBasedISConfigurationProxy . class ) ;
public static final String QUERY_TEMPLATE_DIRECTORY_NAME = "query-template" ;
public static final String GCAT_ESERVICE_UUID_VARNAME = "$uuid" ;
public static final String GET_CALLS_FOR_QUERY_TEMPLATE_FILENAME = "01-get-calls-for-query-template.json" ;
public static final String QUERY_DIRECTORY_NAME = "query" ;
public static final String GET_CATALOGUE_VIRTUAL_SERVICE_FILENAME = "01-get-catalogue-virtual-service.json" ;
public static final String GET_GCAT_CONFIGURATION_FILENAME = "02-get-gcat-configuration.json" ;
public static final String GET_SIMPLE_FACET_OF_GCAT_CONFIGURATION_FILENAME = "03-get-simple-facet-of-gcat-configuration.json" ;
public static final String GET_ACCESS_POINT_FACET_OF_CKAN_SERVICE_FILENAME = "05-get-access-point-facet-of-ckan-service.json" ;
public static final String GET_ACCESS_POINT_FACET_OF_POSTGRES_CKAN_DB_FILENAME = "07-get-access-point-facet-of-postgres-ckan-db.json" ;
public static final String GET_ACCESS_POINT_FACET_OF_SOLR_SERVICE_FILENAME = "09-get-access-point-facet-of-solr-service.json" ;
private static String queryTemplateName ;
static {
try {
ResourceRegistryQueryTemplateClient rrqtc = ResourceRegistryQueryTemplateClientFactory . create ( ) ;
queryTemplateName = null ;
queryTemplateName = installQueryTemplate ( rrqtc ) ;
} catch ( Throwable e ) {
logger . error ( "Unable to install gcat Query Template on FacetBased IS." , e ) ;
}
}
public final String QUERY_TEMPLATE_DIRECTORY_NAME = "query-template" ;
public final String GCAT_ESERVICE_UUID_VARNAME = "$uuid" ;
public final String GET_CALLS_FOR_QUERY_TEMPLATE_FILENAME = "01-get-calls-for-query-template.json" ;
public final String QUERY_DIRECTORY_NAME = "query" ;
public final String GET_CATALOGUE_VIRTUAL_SERVICE_FILENAME = "01-get-catalogue-virtual-service.json" ;
public final String GET_GCAT_CONFIGURATION_FILENAME = "02-get-gcat-configuration.json" ;
public final String GET_SIMPLE_FACET_OF_GCAT_CONFIGURATION_FILENAME = "03-get-simple-facet-of-gcat-configuration.json" ;
public final String GET_ACCESS_POINT_FACET_OF_CKAN_SERVICE_FILENAME = "05-get-access-point-facet-of-ckan-service.json" ;
public final String GET_ACCESS_POINT_FACET_OF_POSTGRES_CKAN_DB_FILENAME = "07-get-access-point-facet-of-postgres-ckan-db.json" ;
public final String GET_ACCESS_POINT_FACET_OF_SOLR_SERVICE_FILENAME = "09-get-access-point-facet-of-solr-service.json" ;
protected QueryTemplate queryTemplate ;
p rotected static QueryTemplate getQueryTemplate ( ) throws Exception {
File queryTemplateFile = getJsonQueryTemplateFromFile ( GET_CALLS_FOR_QUERY_TEMPLATE_FILENAME ) ;
public QueryTemplate getQueryTemplateFromFile ( String queryTemplateFilename ) throws Exception {
File queryTemplateFile = getJsonQueryTemplateFromFile ( queryTemplateFilename ) ;
FileReader fileReader = new FileReader ( queryTemplateFile ) ;
QueryTemplate queryTemplate = ElementMapper . unmarshal ( QueryTemplate . class , fileReader ) ;
return queryTemplate ;
}
protected static String installQueryTemplate ( ResourceRegistryQueryTemplateClient rrqtc ) throws Exception {
QueryTemplate queryTemplate = getQueryTemplate ( ) ;
public QueryTemplate installQueryTemplate ( ) throws Exception {
/ *
* Going to create / update the query template .
* No need to test if exists and / or if is the last version .
* /
queryTemplate = rrqtc . update ( queryTemplate ) ;
return queryTemplate . getName ( ) ;
return queryTemplate ;
}
protected static File getFile ( String directoryName , String filename ) throws Exception {
protected File getBaseDirectory ( String directoryName ) {
URL directoryURL = FacetBasedISConfigurationProxy . class . getClassLoader ( ) . getResource ( directoryName ) ;
// File directory = new File(directoryURL.toURI());
File directory = new File ( directoryURL . getPath ( ) ) ;
return directory ;
}
protected File getFile ( String directoryName , String filename ) throws Exception {
File directory = getBaseDirectory ( directoryName ) ;
return new File ( directory , filename ) ;
}
protected static File getJsonQueryTemplateFromFile ( String filename ) throws Exception {
protected File getJsonQueryTemplateFromFile ( String filename ) throws Exception {
return getFile ( QUERY_TEMPLATE_DIRECTORY_NAME , filename ) ;
}
protected static File getJsonQueryFromFile ( String filename ) throws Exception {
protected File getJsonQueryFromFile ( String filename ) throws Exception {
return getFile ( QUERY_DIRECTORY_NAME , filename ) ;
}
@ -167,6 +159,7 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
protected final ObjectMapper objectMapper ;
protected final ResourceRegistryClient resourceRegistryClient ;
protected final ResourceRegistryPublisher resourceRegistryPublisher ;
protected final ResourceRegistryQueryTemplateClient rrqtc ;
/ *
* We need to keep this resource because we want to create
@ -181,12 +174,18 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
public FacetBasedISConfigurationProxy ( String context ) {
super ( context ) ;
if ( FacetBasedISConfigurationProxy . queryTemplateName = = null ) {
throw new RuntimeException ( FacetBasedISConfigurationProxy . class . getSimpleName ( ) + " cannot be used" ) ;
}
objectMapper = new ObjectMapper ( ) ;
resourceRegistryClient = ResourceRegistryClientFactory . create ( ) ;
resourceRegistryPublisher = ResourceRegistryPublisherFactory . create ( ) ;
rrqtc = ResourceRegistryQueryTemplateClientFactory . create ( ) ;
try {
queryTemplate = getQueryTemplateFromFile ( GET_CALLS_FOR_QUERY_TEMPLATE_FILENAME ) ;
} catch ( Exception e ) {
throw new RuntimeException ( FacetBasedISConfigurationProxy . class . getSimpleName ( ) + " cannot be used" , e ) ;
}
objectMapper = new ObjectMapper ( ) ;
}
public VirtualService getVirtualService ( ) {
@ -206,7 +205,7 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
ObjectNode objectNode = objectMapper . createObjectNode ( ) ;
objectNode . put ( GCAT_ESERVICE_UUID_VARNAME , gcatEServiceID ) ;
List < CallsFor < EService , VirtualService > > callsForList = rrqtc . run ( queryTemplate Name, objectNode ) ;
List < CallsFor < EService , VirtualService > > callsForList = rrqtc . run ( queryTemplate . get Name( ) , objectNode ) ;
return callsForList ;
}