From a796067316e3635ab7f33943b9b02f0910f05e7b Mon Sep 17 00:00:00 2001 From: Nikolaos Laskaris Date: Mon, 20 Nov 2017 19:01:19 +0200 Subject: [PATCH] Added proxy config file --- .../main/java/proxy/config/ExternalUrls.java | 88 +++++++++++++++++++ .../main/java/proxy/config/FetchStrategy.java | 8 ++ .../src/main/java/proxy/config/Loader.java | 49 +++++++++++ .../src/main/java/proxy/config/UrlConfig.java | 34 +++++++ .../config/entities/OrganisationUrls.java | 32 +++++++ .../proxy/config/entities/RegistryUrls.java | 33 +++++++ .../proxy/config/entities/RepositoryUrls.java | 32 +++++++ .../proxy/config/entities/ResearcherUrls.java | 33 +++++++ .../proxy/config/entities/ServiceUrls.java | 34 +++++++ .../src/main/java/rest/entities/Projects.java | 6 +- .../src/main/resources/ExternalUrls.xml | 80 +++++++++++++++++ .../webapp/WEB-INF/applicationContext.xml | 8 +- 12 files changed, 433 insertions(+), 4 deletions(-) create mode 100644 dmp-backend/src/main/java/proxy/config/ExternalUrls.java create mode 100644 dmp-backend/src/main/java/proxy/config/FetchStrategy.java create mode 100644 dmp-backend/src/main/java/proxy/config/Loader.java create mode 100644 dmp-backend/src/main/java/proxy/config/UrlConfig.java create mode 100644 dmp-backend/src/main/java/proxy/config/entities/OrganisationUrls.java create mode 100644 dmp-backend/src/main/java/proxy/config/entities/RegistryUrls.java create mode 100644 dmp-backend/src/main/java/proxy/config/entities/RepositoryUrls.java create mode 100644 dmp-backend/src/main/java/proxy/config/entities/ResearcherUrls.java create mode 100644 dmp-backend/src/main/java/proxy/config/entities/ServiceUrls.java create mode 100644 dmp-backend/src/main/resources/ExternalUrls.xml diff --git a/dmp-backend/src/main/java/proxy/config/ExternalUrls.java b/dmp-backend/src/main/java/proxy/config/ExternalUrls.java new file mode 100644 index 000000000..0d9122e85 --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/ExternalUrls.java @@ -0,0 +1,88 @@ +package proxy.config; + + +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import proxy.config.entities.OrganisationUrls; +import proxy.config.entities.RegistryUrls; +import proxy.config.entities.RepositoryUrls; +import proxy.config.entities.ResearcherUrls; +import proxy.config.entities.ServiceUrls; + +@XmlRootElement +public class ExternalUrls implements Serializable { + + + private static final long serialVersionUID = -5076364662014107275L; + + + RegistryUrls registries; + RepositoryUrls repositories; + ServiceUrls services; + ResearcherUrls researchers; + OrganisationUrls organisations; + + + + public RegistryUrls getRegistries() { + return registries; + } + + @XmlElement(name = "registries") + public void setRegistries(RegistryUrls registries) { + this.registries = registries; + } + + + public RepositoryUrls getRepositories() { + return repositories; + } + + @XmlElement(name = "repositories") + public void setRepositories(RepositoryUrls repositories) { + this.repositories = repositories; + } + + + public ServiceUrls getServices() { + return services; + } + + @XmlElement(name = "services") + public void setServices(ServiceUrls services) { + this.services = services; + } + + + public ResearcherUrls getResearchers() { + return researchers; + } + + @XmlElement(name = "researchers") + public void setResearchers(ResearcherUrls researchers) { + this.researchers = researchers; + } + + + public OrganisationUrls getOrganisations() { + return organisations; + } + + @XmlElement(name = "organisations") + public void setOrganisations(OrganisationUrls organisations) { + this.organisations = organisations; + } + + + + + + + + +} + + diff --git a/dmp-backend/src/main/java/proxy/config/FetchStrategy.java b/dmp-backend/src/main/java/proxy/config/FetchStrategy.java new file mode 100644 index 000000000..a81e04cbc --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/FetchStrategy.java @@ -0,0 +1,8 @@ +package proxy.config; + +public enum FetchStrategy { + + FIRST, + ALL + +} diff --git a/dmp-backend/src/main/java/proxy/config/Loader.java b/dmp-backend/src/main/java/proxy/config/Loader.java new file mode 100644 index 000000000..4f1b485d7 --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/Loader.java @@ -0,0 +1,49 @@ +package proxy.config; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Unmarshaller; + +import com.fasterxml.jackson.databind.ObjectMapper; + +public class Loader { + + private ExternalUrls externalUrls; + + +// public static void main(String [] args) { +// Loader l = new Loader("file:///home/nikolas/git/OpenAIRE-EUDAT-DMP/dmp-backend/src/main/resources/ExternalUrls.xml"); +// } + + + public Loader(String fileUrl) { + System.out.println("LOADING FILE: "+fileUrl); + InputStream is = null; + try { + JAXBContext jaxbContext = JAXBContext.newInstance(ExternalUrls.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + is = new URL(fileUrl).openStream(); + externalUrls = (ExternalUrls) jaxbUnmarshaller.unmarshal(is); + + System.out.println(new ObjectMapper().writeValueAsString(externalUrls)); + } + catch(Exception ex) { + //log the error and shutdown the system (that's a critical error) + ex.printStackTrace(); + System.exit(0); + } + finally { + try { + if(is !=null) is.close(); + } catch (IOException e) { + System.out.println("Warning: Could not close a stream after reading from file: "+fileUrl); + } + } + } + + + +} diff --git a/dmp-backend/src/main/java/proxy/config/UrlConfig.java b/dmp-backend/src/main/java/proxy/config/UrlConfig.java new file mode 100644 index 000000000..deb8d2b06 --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/UrlConfig.java @@ -0,0 +1,34 @@ +package proxy.config; + +import java.net.URL; + +import javax.xml.bind.annotation.XmlElement; + + + +public class UrlConfig { + + private URL url; + private Integer ordinal; + + + public URL getUrl() { + return url; + } + + @XmlElement(name = "url") + public void setUrl(URL url) { + this.url = url; + } + public Integer getOrdinal() { + return ordinal; + } + @XmlElement(name = "ordinal") + public void setOrdinal(Integer ordinal) { + this.ordinal = ordinal; + } + + + + +} diff --git a/dmp-backend/src/main/java/proxy/config/entities/OrganisationUrls.java b/dmp-backend/src/main/java/proxy/config/entities/OrganisationUrls.java new file mode 100644 index 000000000..3e4535d67 --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/entities/OrganisationUrls.java @@ -0,0 +1,32 @@ +package proxy.config.entities; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; + +import proxy.config.FetchStrategy; +import proxy.config.UrlConfig; + +public class OrganisationUrls { + + List urls; + FetchStrategy fetchMode; + + public List getUrls() { + return urls; + } + @XmlElementWrapper + @XmlElement(name = "urlConfig") + public void setUrls(List urls) { + this.urls = urls; + } + public FetchStrategy getFetchMode() { + return fetchMode; + } + @XmlElement(name = "fetchMode") + public void setFetchMode(FetchStrategy fetchMode) { + this.fetchMode = fetchMode; + } + +} diff --git a/dmp-backend/src/main/java/proxy/config/entities/RegistryUrls.java b/dmp-backend/src/main/java/proxy/config/entities/RegistryUrls.java new file mode 100644 index 000000000..aaa2b2012 --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/entities/RegistryUrls.java @@ -0,0 +1,33 @@ +package proxy.config.entities; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; + +import proxy.config.FetchStrategy; +import proxy.config.UrlConfig; + +public class RegistryUrls { + + List urls; + FetchStrategy fetchMode; + + public List getUrls() { + return urls; + } + @XmlElementWrapper + @XmlElement(name = "urlConfig") + public void setUrls(List urls) { + this.urls = urls; + } + public FetchStrategy getFetchMode() { + return fetchMode; + } + @XmlElement(name = "fetchMode") + public void setFetchMode(FetchStrategy fetchMode) { + this.fetchMode = fetchMode; + } + + +} diff --git a/dmp-backend/src/main/java/proxy/config/entities/RepositoryUrls.java b/dmp-backend/src/main/java/proxy/config/entities/RepositoryUrls.java new file mode 100644 index 000000000..f7f8f4a67 --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/entities/RepositoryUrls.java @@ -0,0 +1,32 @@ +package proxy.config.entities; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; + +import proxy.config.FetchStrategy; +import proxy.config.UrlConfig; + +public class RepositoryUrls { + + List urls; + FetchStrategy fetchMode; + + public List getUrls() { + return urls; + } + @XmlElementWrapper + @XmlElement(name = "urlConfig") + public void setUrls(List urls) { + this.urls = urls; + } + public FetchStrategy getFetchMode() { + return fetchMode; + } + @XmlElement(name = "fetchMode") + public void setFetchMode(FetchStrategy fetchMode) { + this.fetchMode = fetchMode; + } + +} diff --git a/dmp-backend/src/main/java/proxy/config/entities/ResearcherUrls.java b/dmp-backend/src/main/java/proxy/config/entities/ResearcherUrls.java new file mode 100644 index 000000000..55812151e --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/entities/ResearcherUrls.java @@ -0,0 +1,33 @@ +package proxy.config.entities; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; + +import proxy.config.FetchStrategy; +import proxy.config.UrlConfig; + +public class ResearcherUrls { + + List urls; + FetchStrategy fetchMode; + + public List getUrls() { + return urls; + } + @XmlElementWrapper + @XmlElement(name = "urlConfig") + public void setUrls(List urls) { + this.urls = urls; + } + public FetchStrategy getFetchMode() { + return fetchMode; + } + @XmlElement(name = "fetchMode") + public void setFetchMode(FetchStrategy fetchMode) { + this.fetchMode = fetchMode; + } + + +} diff --git a/dmp-backend/src/main/java/proxy/config/entities/ServiceUrls.java b/dmp-backend/src/main/java/proxy/config/entities/ServiceUrls.java new file mode 100644 index 000000000..1d4531aee --- /dev/null +++ b/dmp-backend/src/main/java/proxy/config/entities/ServiceUrls.java @@ -0,0 +1,34 @@ +package proxy.config.entities; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementWrapper; + +import proxy.config.FetchStrategy; +import proxy.config.UrlConfig; + +public class ServiceUrls { + + List urls; + FetchStrategy fetchMode; + + public List getUrls() { + return urls; + } + @XmlElementWrapper + @XmlElement(name = "urlConfig") + public void setUrls(List urls) { + this.urls = urls; + } + public FetchStrategy getFetchMode() { + return fetchMode; + } + @XmlElement(name = "fetchMode") + public void setFetchMode(FetchStrategy fetchMode) { + this.fetchMode = fetchMode; + } + + + +} diff --git a/dmp-backend/src/main/java/rest/entities/Projects.java b/dmp-backend/src/main/java/rest/entities/Projects.java index 80bec6518..7f771f900 100644 --- a/dmp-backend/src/main/java/rest/entities/Projects.java +++ b/dmp-backend/src/main/java/rest/entities/Projects.java @@ -140,15 +140,15 @@ public class Projects { @RequestMapping(method = RequestMethod.POST, value = { "/project/create" }, consumes = "application/json", produces="application/json") public @ResponseBody ResponseEntity createProject(@RequestBody Project project) { Project createdProject = projectDao.update(project); - return ResponseEntity.status(HttpStatus.CREATED).body(createdProject); + return ResponseEntity.status(HttpStatus.CREATED).body(SerializerProvider.toJson(createdProject)); } @RequestMapping(method = RequestMethod.POST, value = { "/project/update" }, consumes = "application/json", produces="application/json") public @ResponseBody ResponseEntity updateProject(@RequestBody Project project) { - Project createdProject = projectDao.update(project); - return ResponseEntity.status(HttpStatus.CREATED).body(createdProject); + Project updatedProject = projectDao.update(project); + return ResponseEntity.status(HttpStatus.CREATED).body(SerializerProvider.toJson(updatedProject)); } diff --git a/dmp-backend/src/main/resources/ExternalUrls.xml b/dmp-backend/src/main/resources/ExternalUrls.xml new file mode 100644 index 000000000..5dba8d692 --- /dev/null +++ b/dmp-backend/src/main/resources/ExternalUrls.xml @@ -0,0 +1,80 @@ + + + + + + + + + + 1 + + + + ALL + + + + + + + + + https://eestore.paas2.uninett.no/api/datarepo/ + 1 + + + + + ALL + + + + + + + + + 1 + + + + ALL + + + + + + + + + 1 + + + + ALL + + + + + + + + + + 1 + + + + ALL + + + + + + + + + + + diff --git a/dmp-backend/src/main/webapp/WEB-INF/applicationContext.xml b/dmp-backend/src/main/webapp/WEB-INF/applicationContext.xml index 39ea602d6..dcbfe3751 100644 --- a/dmp-backend/src/main/webapp/WEB-INF/applicationContext.xml +++ b/dmp-backend/src/main/webapp/WEB-INF/applicationContext.xml @@ -42,7 +42,13 @@ - + + + + + + +