diff --git a/geoportal-service/enunciate.xml b/geoportal-service/enunciate.xml
new file mode 100644
index 0000000..c8e07dd
--- /dev/null
+++ b/geoportal-service/enunciate.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/geoportal-service/pom.xml b/geoportal-service/pom.xml
index 40957e7..5dd0349 100644
--- a/geoportal-service/pom.xml
+++ b/geoportal-service/pom.xml
@@ -17,7 +17,7 @@
https://code-repo.d4science.org/gCubeSystem
1.0
-
+ 2.14.0
@@ -90,14 +90,29 @@
-
-
+
+
+ com.webcohesion.enunciate
+ enunciate-core-annotations
+ ${enunciate.version}
+ provided
+
+
+ com.webcohesion.enunciate
+ enunciate-rt-util
+ ${enunciate.version}
+ provided
+
javax.servlet
javax.servlet-api
- 3.0.1
+ 3.1.0
+ provided
+
+
+
javax.ws.rs
javax.ws.rs-api
@@ -115,6 +130,8 @@
+
+
@@ -169,4 +186,51 @@
+
+
+
+
+
+ com.webcohesion.enunciate
+ enunciate-maven-plugin
+ ${enunciate.version}
+
+
+
+
+ assemble
+
+ assemble
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.5
+
+
+ copy-enunciate-docs
+ process-resources
+
+ copy-resources
+
+
+ target
+
+
+ ${project.build.directory}/${project.artifactId}-${project.version}/docs
+ ${project.build.directory}/docs
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/DocsGenerator.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/DocsGenerator.java
new file mode 100644
index 0000000..dd10c02
--- /dev/null
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/DocsGenerator.java
@@ -0,0 +1,43 @@
+package org.gcube.application.geoportal.service.rest;
+
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+@Path("docs")
+@Slf4j
+public class DocsGenerator {
+
+ @GET
+ @Path("/{any: .*}")
+ public InputStream toDoc(@Context HttpServletRequest req) throws WebApplicationException {
+ log.info(DocsGenerator.class.getSimpleName() + " toDoc called");
+
+ String pathInfo = req.getPathInfo();
+ log.debug("pathInfo {}", pathInfo);
+ try {
+
+ if (pathInfo.endsWith("/docs/")) {
+ pathInfo += "index.html";
+ }
+
+ log.info("going to {}", pathInfo);
+
+ String realPath = req.getServletContext().getRealPath(pathInfo);
+ return new FileInputStream(new File(realPath));
+
+ } catch (Exception e) {
+ //MANAGE THE EXCEPTION
+ log.error("Unexpected exception ",e);
+ throw new WebApplicationException("Unexpected Exception : "+e.getMessage(), Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+}
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/Plugins.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/Plugins.java
index 3d794a0..7d8713c 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/Plugins.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/Plugins.java
@@ -1,6 +1,8 @@
package org.gcube.application.geoportal.service.rest;
+import com.webcohesion.enunciate.metadata.rs.RequestHeader;
+import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
import lombok.extern.slf4j.Slf4j;
import org.gcube.application.cms.implementations.ImplementationProvider;
import org.gcube.application.cms.plugins.Plugin;
@@ -17,6 +19,10 @@ import java.util.Map;
@Path(InterfaceConstants.Methods.PLUGINS)
@Slf4j
+@RequestHeaders({
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
+})
public class Plugins {
@GET
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java
index f0a8927..fc91570 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java
@@ -1,5 +1,7 @@
package org.gcube.application.geoportal.service.rest;
+import com.webcohesion.enunciate.metadata.rs.RequestHeader;
+import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.gcube.application.cms.implementations.ImplementationProvider;
@@ -24,6 +26,10 @@ import java.util.List;
@Path(InterfaceConstants.Methods.PROJECTS+"/{"+InterfaceConstants.Parameters.UCID +"}")
@Slf4j
+@RequestHeaders({
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
+})
public class ProfiledDocuments {
private ProfiledMongoManager manager;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/UseCaseDescriptors.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/UseCaseDescriptors.java
index 9572457..c0f7015 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/UseCaseDescriptors.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/UseCaseDescriptors.java
@@ -1,5 +1,7 @@
package org.gcube.application.geoportal.service.rest;
+import com.webcohesion.enunciate.metadata.rs.RequestHeader;
+import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
import lombok.extern.slf4j.Slf4j;
import org.gcube.application.cms.implementations.ImplementationProvider;
import org.gcube.application.cms.serialization.Serialization;
@@ -13,6 +15,10 @@ import javax.ws.rs.core.Response;
@Path(InterfaceConstants.Methods.UCD)
@Slf4j
+@RequestHeaders({
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
+})
public class UseCaseDescriptors {
diff --git a/geoportal-service/src/main/webapp/WEB-INF/gcube-app.xml b/geoportal-service/src/main/webapp/WEB-INF/gcube-app.xml
index ced0697..a31e7d1 100644
--- a/geoportal-service/src/main/webapp/WEB-INF/gcube-app.xml
+++ b/geoportal-service/src/main/webapp/WEB-INF/gcube-app.xml
@@ -4,5 +4,9 @@
1.0.0
REST service for GeoPortal
+
+
+ /docs/*
+