Automatic tests
This commit is contained in:
parent
8257714f2e
commit
b8a0f83d14
|
@ -1,8 +1,12 @@
|
|||
package org.gcube.spatial.data.sdi;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.Properties;
|
||||
|
||||
import lombok.Synchronized;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
|
@ -77,31 +81,31 @@ public class LocalConfiguration {
|
|||
static LocalConfiguration instance=null;
|
||||
|
||||
|
||||
// @Synchronized
|
||||
// public static LocalConfiguration init(URL propertiesURL){
|
||||
// if(instance==null)
|
||||
// instance=new LocalConfiguration(propertiesURL);
|
||||
// return instance;
|
||||
// }
|
||||
@Synchronized
|
||||
public static LocalConfiguration get(){
|
||||
if(instance==null)
|
||||
instance=new LocalConfiguration();
|
||||
return instance;
|
||||
}
|
||||
|
||||
private Properties props=new Properties();
|
||||
|
||||
private LocalConfiguration() {
|
||||
try{
|
||||
String propertiesURL="/config.properties";
|
||||
String propertiesURL="config.properties";
|
||||
log.debug("Loading {} ",propertiesURL);
|
||||
props.load(new URL(propertiesURL).openStream());
|
||||
props.load(open(propertiesURL));
|
||||
}catch(Exception e){
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getProperty(String property){
|
||||
return instance.props.getProperty(property);
|
||||
return get().props.getProperty(property);
|
||||
}
|
||||
|
||||
public static String getProperty(String property,String defaultValue){
|
||||
return instance.props.getProperty(property, defaultValue);
|
||||
return get().props.getProperty(property, defaultValue);
|
||||
}
|
||||
|
||||
public static Long getTTL(String property) {
|
||||
|
@ -116,4 +120,31 @@ public class LocalConfiguration {
|
|||
|
||||
public static Object getTemplateConfigurationObject() {return templateConfiguration;}
|
||||
public static void setTemplateConfigurationObject(Object obj) {templateConfiguration=obj;}
|
||||
|
||||
|
||||
public static File getFileFromResources(String fileName) {
|
||||
|
||||
ClassLoader classLoader =LocalConfiguration.class.getClassLoader();
|
||||
|
||||
URL resource = classLoader.getResource(fileName);
|
||||
if (resource == null) {
|
||||
throw new IllegalArgumentException("file is not found!");
|
||||
} else {
|
||||
return new File(resource.getFile());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static InputStream open(String fileName) throws IOException {
|
||||
|
||||
ClassLoader classLoader =LocalConfiguration.class.getClassLoader();
|
||||
|
||||
URL resource = classLoader.getResource(fileName);
|
||||
if (resource == null) {
|
||||
throw new IllegalArgumentException("file "+fileName+" is not found!");
|
||||
} else {
|
||||
return resource.openStream();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
package org.gcube.spatial.data.sdi;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
|
||||
import org.aopalliance.reflect.Metadata;
|
||||
import org.gcube.smartgears.ContextProvider;
|
||||
import org.gcube.smartgears.configuration.container.ContainerConfiguration;
|
||||
import org.gcube.smartgears.context.application.ApplicationContext;
|
||||
import org.gcube.spatial.data.sdi.engine.GISManager;
|
||||
import org.gcube.spatial.data.sdi.engine.GeoNetworkManager;
|
||||
|
@ -43,21 +40,21 @@ public class SDIService extends ResourceConfig{
|
|||
//
|
||||
public SDIService() {
|
||||
super();
|
||||
log.warn("Initializing App : Properties.. ");
|
||||
ApplicationContext context=ContextProvider.get();
|
||||
ContainerConfiguration configuration=context.container().configuration();
|
||||
try{
|
||||
URL resourceUrl = context.application().getResource("/WEB-INF/config.properties");
|
||||
// LocalConfiguration.init(resourceUrl).
|
||||
LocalConfiguration.setTemplateConfigurationObject(ContextProvider.get());
|
||||
|
||||
}catch(Throwable t){
|
||||
log.debug("Listing available paths");
|
||||
for(Object obj:context.application().getResourcePaths("/WEB-INF"))
|
||||
log.debug("OBJ : {} ",obj);
|
||||
|
||||
throw new RuntimeException("Unable to load configuration properties",t);
|
||||
}
|
||||
// log.warn("Initializing App : Properties.. ");
|
||||
// ApplicationContext context=ContextProvider.get();
|
||||
//// ContainerConfiguration configuration=context.container().configuration();
|
||||
// try{
|
||||
//// URL resourceUrl = context.application().getResource("/WEB-INF/config.properties");
|
||||
//// LocalConfiguration.init(resourceUrl).
|
||||
// LocalConfiguration.setTemplateConfigurationObject(ContextProvider.get());
|
||||
//
|
||||
// }catch(Throwable t){
|
||||
// log.debug("Listing available paths");
|
||||
// for(Object obj:context.application().getResourcePaths("/WEB-INF"))
|
||||
// log.debug("OBJ : {} ",obj);
|
||||
//
|
||||
// throw new RuntimeException("Unable to load configuration properties",t);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,9 @@ import org.gcube.spatial.data.sdi.engine.impl.metadata.MetadataTemplateManagerIm
|
|||
import org.glassfish.hk2.api.Factory;
|
||||
|
||||
import lombok.Synchronized;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class MetadataTemplateManagerFactory implements Factory<TemplateManager>{
|
||||
@Override
|
||||
public TemplateManager provide() {
|
||||
|
@ -28,7 +30,7 @@ public class MetadataTemplateManagerFactory implements Factory<TemplateManager>{
|
|||
try {
|
||||
((MetadataTemplateManagerImpl)instance).defaultInit();
|
||||
}catch(Exception e) {
|
||||
throw new RuntimeException("Unable to init temp ",e);
|
||||
log.error("Unable to init temp ",e);
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
|
|
|
@ -18,6 +18,7 @@ import javax.inject.Singleton;
|
|||
import javax.xml.transform.TransformerException;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.gcube.smartgears.ContextProvider;
|
||||
import org.gcube.smartgears.context.application.ApplicationContext;
|
||||
import org.gcube.spatial.data.sdi.LocalConfiguration;
|
||||
import org.gcube.spatial.data.sdi.engine.TemplateManager;
|
||||
|
@ -50,6 +51,8 @@ public class MetadataTemplateManagerImpl implements TemplateManager {
|
|||
@PostConstruct
|
||||
public void defaultInit() {
|
||||
log.info("Default Initialization");
|
||||
|
||||
|
||||
init(LocalConfiguration.getTemplateConfigurationObject());
|
||||
}
|
||||
|
||||
|
@ -67,7 +70,9 @@ public class MetadataTemplateManagerImpl implements TemplateManager {
|
|||
if(configurationObject instanceof ApplicationContext){
|
||||
log.debug("Configuration is Context : {} ",configurationObject);
|
||||
cfg.setServletContextForTemplateLoading(((ApplicationContext)configurationObject).application(),
|
||||
LocalConfiguration.getProperty(LocalConfiguration.TEMPLATE_FOLDER));
|
||||
LocalConfiguration.getProperty(LocalConfiguration.TEMPLATE_FOLDER));
|
||||
|
||||
|
||||
}else if (configurationObject instanceof File){
|
||||
try{
|
||||
cfg.setDirectoryForTemplateLoading((File)configurationObject);
|
||||
|
|
|
@ -3,20 +3,23 @@ package org.gcube.spatial.data.sdi.test;
|
|||
import static org.junit.Assume.assumeTrue;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.nio.file.Paths;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ws.rs.core.Application;
|
||||
import javax.ws.rs.core.GenericType;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import org.gcube.data.transfer.library.client.AuthorizationFilter;
|
||||
import org.gcube.sdi.test.GCubeSDITest;
|
||||
import org.gcube.spatial.data.sdi.LocalConfiguration;
|
||||
import org.gcube.spatial.data.clients.model.engine.Engine;
|
||||
import org.gcube.spatial.data.sdi.SDIService;
|
||||
import org.gcube.spatial.data.sdi.model.ScopeConfiguration;
|
||||
import org.gcube.spatial.data.sdi.model.ServiceConstants;
|
||||
import org.gcube.spatial.data.sdi.model.metadata.TemplateDescriptor;
|
||||
import org.glassfish.jersey.client.ClientConfig;
|
||||
import org.glassfish.jersey.test.JerseyTest;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
public class MainTest extends JerseyTest implements GCubeSDITest{
|
||||
|
@ -29,33 +32,55 @@ public class MainTest extends JerseyTest implements GCubeSDITest{
|
|||
|
||||
@Override
|
||||
protected Application configure() {
|
||||
return new SDIService();
|
||||
return new SDIService().register(RequestFilter.class);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void configureClient(ClientConfig config) {
|
||||
// TODO Auto-generated method stub
|
||||
super.configureClient(config);
|
||||
|
||||
config.register(AuthorizationFilter.class);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setContext() {
|
||||
assumeTrue(isTestInfrastructureEnabled());
|
||||
setTestContext();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getConfiguration(){
|
||||
assumeTrue(isTestInfrastructureEnabled());
|
||||
System.out.println(target(ServiceConstants.INTERFACE).request(MediaType.APPLICATION_JSON_TYPE).get(String.class));
|
||||
ScopeConfiguration conf=target(ServiceConstants.INTERFACE).request(MediaType.APPLICATION_JSON_TYPE).get(ScopeConfiguration.class);
|
||||
|
||||
}
|
||||
//
|
||||
@Test
|
||||
public void getGeoServer(){
|
||||
public void getGeoServer() throws MalformedURLException{
|
||||
assumeTrue(isTestInfrastructureEnabled());
|
||||
System.out.println(target(ServiceConstants.GeoServer.INTERFACE).path("configuration/geoserver1.dev.d4science.org").request(MediaType.APPLICATION_JSON_TYPE).get(String.class));
|
||||
|
||||
ScopeConfiguration conf=target(ServiceConstants.INTERFACE).request(MediaType.APPLICATION_JSON_TYPE).get(ScopeConfiguration.class);
|
||||
|
||||
assumeTrue(!conf.getByEngine(Engine.GS_ENGINE).isEmpty());
|
||||
|
||||
String hostname=new URL(conf.getByEngine(Engine.GS_ENGINE).get(0).getBaseEndpoint()).getHost();
|
||||
|
||||
System.out.println(target(ServiceConstants.GeoServer.INTERFACE).
|
||||
path("configuration/"+hostname).request(MediaType.APPLICATION_JSON_TYPE).get(String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTemplateList(){
|
||||
assumeTrue(isTestInfrastructureEnabled());
|
||||
List<TemplateDescriptor> result=target(ServiceConstants.Metadata.INTERFACE).
|
||||
target(ServiceConstants.Metadata.INTERFACE).
|
||||
path(ServiceConstants.Metadata.LIST_METHOD).
|
||||
request(MediaType.APPLICATION_JSON_TYPE).get().
|
||||
readEntity(new GenericType<List<TemplateDescriptor>>() {});
|
||||
System.out.println(result);
|
||||
request(MediaType.APPLICATION_JSON_TYPE).accept(MediaType.APPLICATION_JSON).
|
||||
get(new GenericType<List<TemplateDescriptor>>() {});
|
||||
// System.out.println(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -11,14 +11,22 @@ import org.gcube.sdi.test.GCubeSDITest;
|
|||
import org.gcube.spatial.data.sdi.engine.impl.metadata.MetadataTemplateManagerImpl;
|
||||
import org.gcube.spatial.data.sdi.engine.impl.metadata.TemplateApplicationReport;
|
||||
import org.gcube.spatial.data.sdi.model.metadata.TemplateInvocationBuilder;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
public class MetadataApplicationTest implements GCubeSDITest{
|
||||
|
||||
@Before
|
||||
public void setContext() {
|
||||
setTestContext();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void apply() throws IOException, TransformerException{
|
||||
assumeTrue(isTestInfrastructureEnabled());
|
||||
TokenSetter.set("/gcube/devNext/NextNext");
|
||||
|
||||
// TokenSetter.set("/gcube/devNext/NextNext");
|
||||
MetadataTemplateManagerImpl manager=new MetadataTemplateManagerImpl();
|
||||
// LocalConfiguration.init(Paths.get("src/main/webapp/WEB-INF/config.properties").toUri().toURL())
|
||||
// .setTemplateConfigurationObject(Paths.get("src/main/webapp/WEB-INF/metadataTemplates").toFile());
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package org.gcube.spatial.data.sdi.test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.ws.rs.container.ContainerRequestContext;
|
||||
import javax.ws.rs.container.ContainerRequestFilter;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Provider
|
||||
public class RequestFilter implements ContainerRequestFilter {
|
||||
|
||||
@Override
|
||||
public void filter(ContainerRequestContext ctx) throws IOException {
|
||||
String token=ctx.getHeaderString("gcube-token");
|
||||
log.debug("Catched token : "+token);
|
||||
TokenSetter.setToken(token);
|
||||
}
|
||||
}
|
|
@ -33,6 +33,8 @@ private static Properties props=new Properties();
|
|||
}
|
||||
|
||||
|
||||
|
||||
public static void setToken(String token) {
|
||||
SecurityTokenProvider.instance.set(token);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,7 +10,12 @@ import org.junit.BeforeClass;
|
|||
public interface GCubeSDITest {
|
||||
|
||||
public default String getContext() {
|
||||
String testContext=System.getProperty("testContext");
|
||||
String testContext=System.getProperty("testContext");
|
||||
if(testContext==null) {
|
||||
// trying with env
|
||||
testContext=System.getenv("testContext");
|
||||
}
|
||||
|
||||
System.out.println("TEST CONTEXT = "+testContext);
|
||||
return testContext;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue