Implemented the PATCH method, see [#24985]
This commit is contained in:
parent
4e93560cd1
commit
c47b361a0c
|
@ -1,5 +1,9 @@
|
|||
# Changelog for org.gcube.application.geoportal-service
|
||||
|
||||
## [v1.1.0-SNAPSHOT]
|
||||
|
||||
- Implemented the PATCH method, see [#24985]
|
||||
|
||||
## [v1.0.14]
|
||||
|
||||
- Just integrating the new facilities, see [#24791]
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.gcube.application</groupId>
|
||||
<artifactId>geoportal-service</artifactId>
|
||||
<version>1.0.14</version>
|
||||
<version>1.1.0-SNAPSHOT</version>
|
||||
<name>Geoportal Service</name>
|
||||
<packaging>war</packaging>
|
||||
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package org.gcube.application.geoportal.service;
|
||||
|
||||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
|
||||
import org.gcube.application.cms.caches.Engine;
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
import org.gcube.application.cms.implementations.ProjectAccess;
|
||||
|
@ -9,20 +12,23 @@ import org.gcube.application.cms.serialization.Serialization;
|
|||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||
import org.gcube.application.geoportal.common.utils.StorageUtils;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.UCDManagerI;
|
||||
import org.gcube.application.geoportal.service.engine.providers.*;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ConfigurationCache;
|
||||
import org.gcube.application.geoportal.service.engine.providers.MongoClientProvider;
|
||||
import org.gcube.application.geoportal.service.engine.providers.PluginManager;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ProjectAccessProvider;
|
||||
import org.gcube.application.geoportal.service.engine.providers.StorageClientProvider;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ucd.ProfileMap;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ucd.SingleISResourceUCDProvider;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ucd.UCDManager;
|
||||
import org.gcube.application.geoportal.service.model.internal.db.Mongo;
|
||||
import org.gcube.application.geoportal.service.rest.DocsGenerator;
|
||||
import org.gcube.application.geoportal.service.rest.Plugins;
|
||||
import org.gcube.application.geoportal.service.rest.ProfiledDocuments;
|
||||
import org.gcube.application.geoportal.service.rest.UseCaseDescriptors;
|
||||
import org.glassfish.jersey.server.ResourceConfig;
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@ApplicationPath(InterfaceConstants.APPLICATION_PATH)
|
||||
@Slf4j
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
package org.gcube.application.geoportal.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.ws.rs.container.ContainerRequestContext;
|
||||
import javax.ws.rs.container.ContainerRequestFilter;
|
||||
import javax.ws.rs.container.ContainerResponseContext;
|
||||
import javax.ws.rs.container.ContainerResponseFilter;
|
||||
import javax.ws.rs.container.PreMatching;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.AccessTokenProvider;
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.authorization.utils.manager.SecretManager;
|
||||
|
@ -9,9 +17,7 @@ import org.gcube.common.authorization.utils.secret.GCubeSecret;
|
|||
import org.gcube.common.authorization.utils.secret.JWTSecret;
|
||||
import org.gcube.common.authorization.utils.secret.Secret;
|
||||
|
||||
import javax.ws.rs.container.*;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import java.io.IOException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Provider
|
||||
@PreMatching
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
package org.gcube.application.geoportal.service.engine.mongo;
|
||||
|
||||
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.model.FindOneAndReplaceOptions;
|
||||
import com.mongodb.client.model.FindOneAndUpdateOptions;
|
||||
import com.mongodb.client.model.ReturnDocument;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import static com.mongodb.client.model.Filters.eq;
|
||||
import static com.mongodb.client.model.Sorts.ascending;
|
||||
import static com.mongodb.client.model.Sorts.descending;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
|
@ -14,9 +12,12 @@ import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
|||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.service.model.internal.db.Mongo;
|
||||
|
||||
import static com.mongodb.client.model.Filters.eq;
|
||||
import static com.mongodb.client.model.Sorts.ascending;
|
||||
import static com.mongodb.client.model.Sorts.descending;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.model.FindOneAndReplaceOptions;
|
||||
import com.mongodb.client.model.ReturnDocument;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public abstract class MongoManager {
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
package org.gcube.application.geoportal.service.engine.mongo;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.gcube.application.cms.implementations.faults.*;
|
||||
import org.gcube.application.cms.implementations.faults.DeletionException;
|
||||
import org.gcube.application.cms.implementations.faults.InvalidLockException;
|
||||
import org.gcube.application.cms.implementations.faults.InvalidUserRoleException;
|
||||
import org.gcube.application.cms.implementations.faults.ProjectLockedException;
|
||||
import org.gcube.application.cms.implementations.faults.ProjectNotFoundException;
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
import org.gcube.application.cms.implementations.faults.UnauthorizedAccess;
|
||||
import org.gcube.application.cms.plugins.faults.EventException;
|
||||
import org.gcube.application.cms.plugins.faults.InsufficientPrivileges;
|
||||
import org.gcube.application.cms.plugins.faults.StepException;
|
||||
|
@ -14,44 +21,280 @@ import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
|||
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
|
||||
import java.io.IOException;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
/**
|
||||
* The Interface MongoManagerI.
|
||||
*
|
||||
* @author Fabio Sinibaldi
|
||||
* @author maintainer: Francesco Mangiacrapa at ISTI-CNR
|
||||
* francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Apr 18, 2023
|
||||
* @param <T> the generic type
|
||||
*/
|
||||
public interface MongoManagerI<T> {
|
||||
|
||||
// create
|
||||
|
||||
// create
|
||||
/**
|
||||
* Register new.
|
||||
*
|
||||
* @param toRegister the to register
|
||||
* @return the t
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws StepException the step exception
|
||||
* @throws EventException the event exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
*/
|
||||
public T registerNew(Document toRegister)
|
||||
throws IOException, StepException, EventException, InvalidUserRoleException;
|
||||
|
||||
public T registerNew(Document toRegister) throws IOException, StepException, EventException, InvalidUserRoleException;
|
||||
/**
|
||||
* Update.
|
||||
*
|
||||
* @param id the id
|
||||
* @param toSetDocument the to set document
|
||||
* @return the t
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws StepException the step exception
|
||||
* @throws EventException the event exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
*/
|
||||
// update
|
||||
public T update(String id, Document toSetDocument)
|
||||
throws IOException, StepException, EventException, ProjectLockedException, ProjectNotFoundException,
|
||||
InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
|
||||
// update
|
||||
public T update(String id,Document toSetDocument) throws IOException, StepException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
/**
|
||||
* Patch.
|
||||
*
|
||||
* @param id the id
|
||||
* @param toSet the to set
|
||||
* @return the t
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws EventException the event exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
*/
|
||||
// patch
|
||||
public T patch(String id, Document toSet) throws IOException, EventException, ProjectLockedException,
|
||||
ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
|
||||
public T setRelation(String id,String relation, String targetUCD, String targetId) throws IOException, StepException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess, RegistrationException, ConfigurationException;
|
||||
public T deleteRelation(String id,String relation, String targetUCD, String targetId) throws IOException, StepException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess, RegistrationException, ConfigurationException;
|
||||
/**
|
||||
* Sets the relation.
|
||||
*
|
||||
* @param id the id
|
||||
* @param relation the relation
|
||||
* @param targetUCD the target UCD
|
||||
* @param targetId the target id
|
||||
* @return the t
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws StepException the step exception
|
||||
* @throws EventException the event exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
* @throws RegistrationException the registration exception
|
||||
* @throws ConfigurationException the configuration exception
|
||||
*/
|
||||
public T setRelation(String id, String relation, String targetUCD, String targetId) throws IOException,
|
||||
StepException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException,
|
||||
InvalidUserRoleException, UnauthorizedAccess, RegistrationException, ConfigurationException;
|
||||
|
||||
/**
|
||||
* Delete relation.
|
||||
*
|
||||
* @param id the id
|
||||
* @param relation the relation
|
||||
* @param targetUCD the target UCD
|
||||
* @param targetId the target id
|
||||
* @return the t
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws StepException the step exception
|
||||
* @throws EventException the event exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
* @throws RegistrationException the registration exception
|
||||
* @throws ConfigurationException the configuration exception
|
||||
*/
|
||||
public T deleteRelation(String id, String relation, String targetUCD, String targetId) throws IOException,
|
||||
StepException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException,
|
||||
InvalidUserRoleException, UnauthorizedAccess, RegistrationException, ConfigurationException;
|
||||
|
||||
// delete
|
||||
|
||||
// delete
|
||||
/**
|
||||
* Delete.
|
||||
*
|
||||
* @param id the id
|
||||
* @param force the force
|
||||
* @throws DeletionException the deletion exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
* @throws JsonProcessingException the json processing exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
*/
|
||||
public void delete(String id, boolean force)
|
||||
throws DeletionException, InvalidUserRoleException, ProjectLockedException, ProjectNotFoundException,
|
||||
UnauthorizedAccess, JsonProcessingException, InvalidLockException;
|
||||
|
||||
public void delete(String id,boolean force) throws DeletionException, InvalidUserRoleException, ProjectLockedException, ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException;
|
||||
// get By ID
|
||||
|
||||
// get By ID
|
||||
/**
|
||||
* Gets the by ID.
|
||||
*
|
||||
* @param id the id
|
||||
* @return the by ID
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
*/
|
||||
public T getByID(String id)
|
||||
throws IOException, ProjectNotFoundException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
|
||||
public T getByID(String id) throws IOException, ProjectNotFoundException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
// query
|
||||
|
||||
// query
|
||||
/**
|
||||
* Query.
|
||||
*
|
||||
* @param request the request
|
||||
* @return the iterable
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
*/
|
||||
public Iterable<Document> query(QueryRequest request) throws InvalidUserRoleException;
|
||||
|
||||
public Iterable<Document> query(QueryRequest request) throws InvalidUserRoleException;
|
||||
public Iterable<T> filter(QueryRequest request) throws InvalidUserRoleException;
|
||||
/**
|
||||
* Filter.
|
||||
*
|
||||
* @param request the request
|
||||
* @return the iterable
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
*/
|
||||
public Iterable<T> filter(QueryRequest request) throws InvalidUserRoleException;
|
||||
|
||||
public T performStep(String id, String step, Document options) throws IOException, StepException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess, ConfigurationException, InsufficientPrivileges;
|
||||
/**
|
||||
* Perform step.
|
||||
*
|
||||
* @param id the id
|
||||
* @param step the step
|
||||
* @param options the options
|
||||
* @return the t
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
* @throws StepException the step exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
* @throws ConfigurationException the configuration exception
|
||||
* @throws InsufficientPrivileges the insufficient privileges
|
||||
*/
|
||||
public T performStep(String id, String step, Document options)
|
||||
throws IOException, StepException, ProjectLockedException, ProjectNotFoundException, InvalidLockException,
|
||||
InvalidUserRoleException, UnauthorizedAccess, ConfigurationException, InsufficientPrivileges;
|
||||
|
||||
public T registerFileSet(String id, RegisterFileSetRequest request) throws ConfigurationException, StorageHubException, StorageException, StepException, JsonProcessingException, DeletionException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
public T deleteFileSet(String id, String destination, Boolean force) throws ConfigurationException, StorageHubException, StorageException, StepException, JsonProcessingException, DeletionException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
/**
|
||||
* Register file set.
|
||||
*
|
||||
* @param id the id
|
||||
* @param request the request
|
||||
* @return the t
|
||||
* @throws ConfigurationException the configuration exception
|
||||
* @throws StorageHubException the storage hub exception
|
||||
* @throws StorageException the storage exception
|
||||
* @throws StepException the step exception
|
||||
* @throws JsonProcessingException the json processing exception
|
||||
* @throws DeletionException the deletion exception
|
||||
* @throws EventException the event exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
*/
|
||||
public T registerFileSet(String id, RegisterFileSetRequest request)
|
||||
throws ConfigurationException, StorageHubException, StorageException, StepException,
|
||||
JsonProcessingException, DeletionException, EventException, ProjectLockedException,
|
||||
ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
|
||||
public T forceUnlock(String id) throws InvalidUserRoleException, ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException;
|
||||
public T setAccessPolicy(String id, Access access) throws InvalidUserRoleException, ProjectLockedException, ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException, EventException;
|
||||
/**
|
||||
* Delete file set.
|
||||
*
|
||||
* @param id the id
|
||||
* @param destination the destination
|
||||
* @param force the force
|
||||
* @return the t
|
||||
* @throws ConfigurationException the configuration exception
|
||||
* @throws StorageHubException the storage hub exception
|
||||
* @throws StorageException the storage exception
|
||||
* @throws StepException the step exception
|
||||
* @throws JsonProcessingException the json processing exception
|
||||
* @throws DeletionException the deletion exception
|
||||
* @throws EventException the event exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
*/
|
||||
public T deleteFileSet(String id, String destination, Boolean force)
|
||||
throws ConfigurationException, StorageHubException, StorageException, StepException,
|
||||
JsonProcessingException, DeletionException, EventException, ProjectLockedException,
|
||||
ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
|
||||
|
||||
/**
|
||||
* Force unlock.
|
||||
*
|
||||
* @param id the id
|
||||
* @return the t
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
* @throws JsonProcessingException the json processing exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
*/
|
||||
public T forceUnlock(String id) throws InvalidUserRoleException, ProjectNotFoundException, UnauthorizedAccess,
|
||||
JsonProcessingException, InvalidLockException;
|
||||
|
||||
/**
|
||||
* Sets the access policy.
|
||||
*
|
||||
* @param id the id
|
||||
* @param access the access
|
||||
* @return the t
|
||||
* @throws InvalidUserRoleException the invalid user role exception
|
||||
* @throws ProjectLockedException the project locked exception
|
||||
* @throws ProjectNotFoundException the project not found exception
|
||||
* @throws UnauthorizedAccess the unauthorized access
|
||||
* @throws JsonProcessingException the json processing exception
|
||||
* @throws InvalidLockException the invalid lock exception
|
||||
* @throws EventException the event exception
|
||||
*/
|
||||
public T setAccessPolicy(String id, Access access) throws InvalidUserRoleException, ProjectLockedException,
|
||||
ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException, EventException;
|
||||
|
||||
/**
|
||||
* Gets the configuration.
|
||||
*
|
||||
* @return the configuration
|
||||
* @throws ConfigurationException the configuration exception
|
||||
*/
|
||||
public Configuration getConfiguration() throws ConfigurationException;
|
||||
|
||||
public Configuration getConfiguration()throws ConfigurationException;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +1,9 @@
|
|||
package org.gcube.application.geoportal.service.engine.mongo;
|
||||
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
|
||||
public interface UCDManagerI {
|
||||
|
||||
|
|
|
@ -1,24 +1,26 @@
|
|||
package org.gcube.application.geoportal.service.engine.mongo;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.model.FindOneAndReplaceOptions;
|
||||
import com.mongodb.client.model.ReturnDocument;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
import org.gcube.application.cms.implementations.utils.UserUtils;
|
||||
import org.gcube.application.cms.serialization.Serialization;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
import org.gcube.application.geoportal.common.utils.ContextUtils;
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.function.Consumer;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.model.FindOneAndReplaceOptions;
|
||||
import com.mongodb.client.model.ReturnDocument;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class UCDMongoManager extends MongoManager implements UCDManagerI{
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers;
|
||||
|
||||
import lombok.NonNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.temporal.TemporalAmount;
|
||||
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.caches.TimedMap;
|
||||
import org.gcube.application.cms.implementations.utils.UserUtils;
|
||||
|
@ -9,10 +11,8 @@ import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
|||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.ProfiledMongoManager;
|
||||
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.temporal.TemporalAmount;
|
||||
import lombok.NonNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class ConfigurationCache extends AbstractScopedMap<ConfigurationCache.ConfigurationMap> {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.implementations.ISInterface;
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
|
@ -10,8 +12,7 @@ import org.gcube.application.geoportal.service.ServiceConstants;
|
|||
import org.gcube.application.geoportal.service.model.internal.db.Mongo;
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class MongoClientProvider extends AbstractScopedMap<Mongo> {
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.plugins.*;
|
||||
import org.gcube.application.cms.plugins.InitializablePlugin;
|
||||
import org.gcube.application.cms.plugins.LifecycleManager;
|
||||
import org.gcube.application.cms.plugins.Plugin;
|
||||
import org.gcube.application.cms.plugins.PluginManagerInterface;
|
||||
import org.gcube.application.cms.plugins.PluginsReflections;
|
||||
import org.gcube.application.cms.plugins.faults.InitializationException;
|
||||
import org.gcube.application.cms.plugins.faults.PluginExecutionException;
|
||||
import org.gcube.application.cms.plugins.faults.ShutDownException;
|
||||
import org.gcube.application.cms.plugins.reports.InitializationReport;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class PluginManager extends AbstractScopedMap<PluginManager.PluginMap> implements PluginManagerInterface {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.gcube.application.cms.implementations.ProjectAccess;
|
||||
import org.gcube.application.cms.implementations.faults.InvalidUserRoleException;
|
||||
|
@ -14,8 +16,7 @@ import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
|||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.ProfiledMongoManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class ProjectAccessImpl implements ProjectAccess {
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.utils.StorageUtils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class StorageClientProvider extends AbstractScopedMap<StorageUtils> {
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers.ucd;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.serialization.Serialization;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
import org.gcube.application.geoportal.common.utils.Files;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class LocalFolderProfileMapCache extends AbstractScopedMap<ProfileMap> {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers.ucd;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
|
||||
import java.util.HashMap;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
public class ProfileMap extends HashMap<String, UseCaseDescriptor> {
|
||||
|
|
|
@ -1,7 +1,27 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers.ucd;
|
||||
|
||||
import lombok.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.bind.Marshaller;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.caches.ObjectManager;
|
||||
import org.gcube.application.cms.implementations.ISInterface;
|
||||
|
@ -14,22 +34,14 @@ import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDes
|
|||
import org.gcube.common.resources.gcore.GenericResource;
|
||||
import org.gcube.common.storagehub.client.dsl.FolderContainer;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.bind.Marshaller;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import javax.xml.bind.annotation.*;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* Retrieves available UCDs from a single Generic Resource
|
||||
|
|
|
@ -1,23 +1,7 @@
|
|||
package org.gcube.application.geoportal.service.engine.providers.ucd;
|
||||
|
||||
import com.mongodb.MongoServerException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.caches.Engine;
|
||||
import org.gcube.application.cms.caches.ObjectManager;
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
import org.gcube.application.cms.implementations.utils.UserUtils;
|
||||
import org.gcube.application.cms.serialization.Serialization;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
import org.gcube.application.geoportal.common.utils.ContextUtils;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.UCDManagerI;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.UCDMongoManager;
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
import static java.lang.Thread.sleep;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.HashMap;
|
||||
|
@ -25,7 +9,25 @@ import java.util.Map;
|
|||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
import static java.lang.Thread.sleep;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.gcube.application.cms.caches.AbstractScopedMap;
|
||||
import org.gcube.application.cms.caches.Engine;
|
||||
import org.gcube.application.cms.caches.ObjectManager;
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
import org.gcube.application.cms.implementations.faults.RegistrationException;
|
||||
import org.gcube.application.cms.implementations.utils.UserUtils;
|
||||
import org.gcube.application.cms.serialization.Serialization;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.UCDManagerI;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.UCDMongoManager;
|
||||
|
||||
import com.mongodb.MongoServerException;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* Provider of UCDManagerI (this)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package org.gcube.application.geoportal.service.model.internal.db;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable.Field;
|
||||
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable.FieldType;
|
||||
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable.GeometryType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DBConstants {
|
||||
|
||||
public static enum TYPE{
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
package org.gcube.application.geoportal.service.model.internal.db;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.configuration.MongoConnection;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientOptions;
|
||||
import com.mongodb.MongoCredential;
|
||||
import com.mongodb.ServerAddress;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.gcube.application.geoportal.common.model.configuration.MongoConnection;
|
||||
|
||||
@Slf4j
|
||||
@ToString
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
package org.gcube.application.geoportal.service.model.internal.db;
|
||||
|
||||
import lombok.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.gcube.application.geoportal.common.model.legacy.BBOX;
|
||||
import org.gcube.application.cms.implementations.faults.DataParsingException;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.text.DecimalFormat;
|
||||
|
@ -16,6 +11,17 @@ import java.util.Map;
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.gcube.application.cms.implementations.faults.DataParsingException;
|
||||
import org.gcube.application.geoportal.common.model.legacy.BBOX;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package org.gcube.application.geoportal.service.rest;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.GET;
|
||||
|
@ -8,9 +10,8 @@ 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;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Path("docs")
|
||||
@Slf4j
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
package org.gcube.application.geoportal.service.rest;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.gcube.application.cms.plugins.faults.InsufficientPrivileges;
|
||||
import org.gcube.application.cms.plugins.faults.UnrecognizedStepException;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
|
||||
import org.gcube.application.cms.implementations.faults.InvalidLockException;
|
||||
import org.gcube.application.cms.implementations.faults.InvalidUserRoleException;
|
||||
import org.gcube.application.cms.implementations.faults.ProjectLockedException;
|
||||
import org.gcube.application.cms.implementations.faults.ProjectNotFoundException;
|
||||
import org.gcube.application.cms.plugins.faults.InsufficientPrivileges;
|
||||
import org.gcube.application.cms.plugins.faults.UnrecognizedStepException;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public abstract class GuardedMethod<T> {
|
||||
|
|
|
@ -1,21 +1,28 @@
|
|||
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 java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
import org.gcube.application.cms.plugins.Plugin;
|
||||
import org.gcube.application.geoportal.common.model.plugins.PluginDescriptor;
|
||||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||
import org.gcube.application.geoportal.service.engine.providers.PluginManager;
|
||||
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Path(InterfaceConstants.Methods.PLUGINS)
|
||||
@Slf4j
|
||||
|
|
|
@ -1,16 +1,24 @@
|
|||
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 javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.DefaultValue;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
import org.gcube.application.cms.serialization.Serialization;
|
||||
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
||||
import org.gcube.application.geoportal.common.model.document.Project;
|
||||
import org.gcube.application.geoportal.common.model.document.access.Access;
|
||||
import org.gcube.application.geoportal.common.model.document.relationships.Relationship;
|
||||
import org.gcube.application.geoportal.common.model.document.relationships.RelationshipNavigationObject;
|
||||
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||
|
@ -19,11 +27,12 @@ import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
|||
import org.gcube.application.geoportal.service.engine.mongo.ProfiledMongoManager;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ConfigurationCache;
|
||||
import org.gcube.application.geoportal.service.engine.providers.ProjectAccessImpl;
|
||||
import org.gcube.application.geoportal.service.http.PATCH;
|
||||
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Path(InterfaceConstants.Methods.PROJECTS+"/{"+InterfaceConstants.Parameters.UCID +"}")
|
||||
@Slf4j
|
||||
|
@ -88,6 +97,20 @@ public class ProfiledDocuments {
|
|||
}
|
||||
}.execute().getResult();
|
||||
}
|
||||
|
||||
@PATCH
|
||||
@Path("{"+InterfaceConstants.Parameters.PROJECT_ID+"}")
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Project patch(@PathParam(InterfaceConstants.Parameters.PROJECT_ID) String documentId, Document d) {
|
||||
return new GuardedMethod<Project>() {
|
||||
@Override
|
||||
protected Project run() throws Exception, WebApplicationException {
|
||||
log.info("Patching Project ({}, ID {})",manager.getUseCaseDescriptor().getId(),documentId);
|
||||
return manager.patch(documentId,d);
|
||||
}
|
||||
}.execute().getResult();
|
||||
}
|
||||
|
||||
|
||||
@DELETE
|
||||
|
|
|
@ -1,17 +1,29 @@
|
|||
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 javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.DefaultValue;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.gcube.application.cms.implementations.ImplementationProvider;
|
||||
import org.gcube.application.cms.serialization.Serialization;
|
||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
||||
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
|
||||
import org.gcube.application.geoportal.service.engine.mongo.UCDManagerI;
|
||||
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeader;
|
||||
import com.webcohesion.enunciate.metadata.rs.RequestHeaders;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Path(InterfaceConstants.Methods.UCD)
|
||||
@Slf4j
|
||||
|
|
Loading…
Reference in New Issue