diff --git a/src/main/java/org/gcube/data/publishing/accounting/service/AccountingResource.java b/src/main/java/org/gcube/accounting/service/AccountingResource.java similarity index 79% rename from src/main/java/org/gcube/data/publishing/accounting/service/AccountingResource.java rename to src/main/java/org/gcube/accounting/service/AccountingResource.java index b6f902f..e1c138b 100644 --- a/src/main/java/org/gcube/data/publishing/accounting/service/AccountingResource.java +++ b/src/main/java/org/gcube/accounting/service/AccountingResource.java @@ -1,9 +1,9 @@ -package org.gcube.data.publishing.accounting.service; +package org.gcube.accounting.service; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.MediaType; -import org.gcube.data.publishing.accounting.service.resources.ResourceInsert; +import org.gcube.accounting.service.resources.ResourceInsert; import org.glassfish.jersey.server.ResourceConfig; /** diff --git a/src/main/java/org/gcube/data/publishing/accounting/service/AccountingServiceInitializer.java b/src/main/java/org/gcube/accounting/service/AccountingServiceInitializer.java similarity index 98% rename from src/main/java/org/gcube/data/publishing/accounting/service/AccountingServiceInitializer.java rename to src/main/java/org/gcube/accounting/service/AccountingServiceInitializer.java index e0c19f4..a62d237 100644 --- a/src/main/java/org/gcube/data/publishing/accounting/service/AccountingServiceInitializer.java +++ b/src/main/java/org/gcube/accounting/service/AccountingServiceInitializer.java @@ -1,4 +1,4 @@ -package org.gcube.data.publishing.accounting.service; +package org.gcube.accounting.service; import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory; import org.gcube.accounting.persistence.AccountingPersistenceFactory; diff --git a/src/main/java/org/gcube/data/publishing/accounting/service/resources/AccountingServiceExceptionMapper.java b/src/main/java/org/gcube/data/publishing/accounting/service/resources/AccountingServiceExceptionMapper.java deleted file mode 100644 index 542632e..0000000 --- a/src/main/java/org/gcube/data/publishing/accounting/service/resources/AccountingServiceExceptionMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.gcube.data.publishing.accounting.service.resources; - -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; - -/** - * @author Luca Frosini (ISTI - CNR) - */ -@Provider -public class AccountingServiceExceptionMapper implements ExceptionMapper { - - @Override - public Response toResponse(Exception exception) { - Status status = Status.INTERNAL_SERVER_ERROR; - String entity = exception.getMessage(); - MediaType mediaType = MediaType.TEXT_PLAIN_TYPE; - return Response.status(status).entity(entity).type(mediaType).build(); - } - -} diff --git a/src/main/java/org/gcube/data/publishing/accounting/service/resources/ResourceInsert.java b/src/main/java/org/gcube/data/publishing/accounting/service/resources/ResourceInsert.java deleted file mode 100644 index 8679c06..0000000 --- a/src/main/java/org/gcube/data/publishing/accounting/service/resources/ResourceInsert.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.gcube.data.publishing.accounting.service.resources; - -import java.util.List; - -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; - -import org.gcube.accounting.persistence.AccountingPersistence; -import org.gcube.accounting.persistence.AccountingPersistenceFactory; -import org.gcube.data.publishing.accounting.service.AccountingResource; -import org.gcube.data.publishing.accounting.service.AccountingServiceInitializer; -import org.gcube.documentstore.records.DSMapper; -import org.gcube.documentstore.records.Record; -import org.gcube.smartgears.annotations.ManagedBy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Alessandro Pieve (alessandro.pieve@isti.cnr.it) - * @author Luca Frosini (ISTI - CNR) - */ -@ManagedBy(AccountingServiceInitializer.class) -@Path(ResourceInsert.INSERT_PATH_PART) -public class ResourceInsert { - - private static final Logger log = LoggerFactory.getLogger(ResourceInsert.class); - - public static final String INSERT_PATH_PART = "insert"; - public static final String RECORD_PATH_PART = "record"; - - @POST - @Path(RECORD_PATH_PART) - @Consumes({MediaType.TEXT_PLAIN, AccountingResource.APPLICATION_JSON_CHARSET_UTF_8}) - public Response add(String json) throws Exception { - - log.debug("Going to account : {}", json); - - AccountingPersistence accountingPersistence = AccountingPersistenceFactory.getPersistence(); - - List records = DSMapper.unmarshalList(json); - for(Record record : records) { - accountingPersistence.account(record); - } - return Response.status(Status.CREATED).build(); - } - -} diff --git a/src/main/java/org/gcube/data/publishing/accounting/service/resources/ResourceQuery.java b/src/main/java/org/gcube/data/publishing/accounting/service/resources/ResourceQuery.java deleted file mode 100644 index f3493a4..0000000 --- a/src/main/java/org/gcube/data/publishing/accounting/service/resources/ResourceQuery.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.gcube.data.publishing.accounting.service.resources; - -import javax.validation.constraints.NotNull; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; - -import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery; -import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory; -import org.gcube.data.publishing.accounting.service.AccountingResource; -import org.gcube.data.publishing.accounting.service.AccountingServiceInitializer; -import org.gcube.smartgears.annotations.ManagedBy; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Alessandro Pieve (alessandro.pieve@isti.cnr.it) - * @author Luca Frosini (ISTI - CNR) - */ -@ManagedBy(AccountingServiceInitializer.class) -@Path(ResourceQuery.QUERY_PATH_PART) -public class ResourceQuery { - - private static final Logger log = LoggerFactory.getLogger(ResourceQuery.class); - - public static final String QUERY_PATH_PART = "query"; - public static final String RECORD_PATH_PART = "record"; - - public static final String TYPE_PATH_PART = "type"; - public static final String RECORD_ID_PATH_PART = "recordID"; - - @GET - @Path(RECORD_PATH_PART + "/{" + TYPE_PATH_PART + "}/{" + RECORD_ID_PATH_PART + "}/") - @Produces(AccountingResource.APPLICATION_JSON_CHARSET_UTF_8) - public Response get(@NotNull @PathParam(TYPE_PATH_PART) String type, - @NotNull @PathParam(RECORD_ID_PATH_PART) String recordId) throws Exception { - - log.debug("Requested {} having ID {}", type, recordId); - AccountingPersistenceQuery accountingPersistenceQuery = AccountingPersistenceQueryFactory.getInstance(); - - String record = accountingPersistenceQuery.getRecord(recordId, type); - return Response.status(200).entity(record).type(AccountingResource.APPLICATION_JSON_CHARSET_UTF_8).build(); - - } - -} diff --git a/src/main/java/org/gcube/data/publishing/accounting/service/resources/ServiceState.java b/src/main/java/org/gcube/data/publishing/accounting/service/resources/ServiceState.java deleted file mode 100644 index 1582f3d..0000000 --- a/src/main/java/org/gcube/data/publishing/accounting/service/resources/ServiceState.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.gcube.data.publishing.accounting.service.resources; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; - -import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery; -import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory; -import org.gcube.accounting.persistence.AccountingPersistence; -import org.gcube.accounting.persistence.AccountingPersistenceFactory; -import org.gcube.data.publishing.accounting.service.AccountingResource; -import org.gcube.data.publishing.accounting.service.AccountingServiceInitializer; -import org.gcube.smartgears.annotations.ManagedBy; -import org.json.JSONException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Alessandro Pieve (alessandro.pieve@isti.cnr.it) - * @author Luca Frosini (ISTI - CNR) - */ -@ManagedBy(AccountingServiceInitializer.class) -@Path(ServiceState.STATE_PATH_PART) -public class ServiceState { - - private static final Logger logger = LoggerFactory.getLogger(ServiceState.class); - - public static final String STATE_PATH_PART = "state"; - - public static final String SERVICE = "service"; - public static final String RUNNING = "running"; - public static final String CONTEXT = "context"; - public static final String QUERY_CONNECTION_UP = "queryConnection"; - public static final String INSERT_CONNECTION_UP = "insertConnection"; - - @GET - @Path("/") - @Produces(AccountingResource.APPLICATION_JSON_CHARSET_UTF_8) - public Response getState() throws JSONException { - String context = AccountingServiceInitializer.getCurrentContext(); - logger.debug("Getting Service Status fro context {}", context); - - JSONObject jsonObject = new JSONObject(); - jsonObject.append(SERVICE, RUNNING); - jsonObject.append(CONTEXT, context); - - Status responseStatus = Status.SERVICE_UNAVAILABLE; - - AccountingPersistence accountingPersistence = AccountingPersistenceFactory.getPersistence(); - try { - jsonObject.append(INSERT_CONNECTION_UP, accountingPersistence.isConnectionActive()); - } catch(Exception e) { - jsonObject.append(INSERT_CONNECTION_UP, false); - } - - AccountingPersistenceQuery accountingPersistenceQuery = AccountingPersistenceQueryFactory.getInstance(); - try { - jsonObject.append(QUERY_CONNECTION_UP, accountingPersistenceQuery.isConnectionActive()); - } catch(Exception e) { - jsonObject.append(QUERY_CONNECTION_UP, false); - } - - return Response.status(responseStatus).entity(jsonObject.toString()).build(); - - } - -}