Skip to content

Commit

Permalink
Merge pull request #53 from FC4E-WP5/devel
Browse files Browse the repository at this point in the history
Version 2.0.0
  • Loading branch information
themiszamani authored Mar 8, 2024
2 parents bb89123 + c83b674 commit 12e7840
Show file tree
Hide file tree
Showing 79 changed files with 1,015 additions and 444 deletions.
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Changelog

---

All notable changes to this project will be documented in this file.

According to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) , the `Unreleased` section serves the following purposes:

- People can see what changes they might expect in upcoming releases.
- At release time, you can move the `Unreleased` section changes into a new release version section.

## Types of changes

---

- `Added` for new features.
- `Changed` for changes in existing functionality.
- `Removed` for now removed features.
- `Fixed` for any bug fixes.
- `Security` in case of vulnerabilities.
- `Deprecated` for soon-to-be removed features.

## Unreleased

---

## 2.0.0 - 2024-03-07

---

### Added

- [#45](https://github.com/FC4E-WP5/fc4eosc-PIDMR-api/pull/45) - PIDMR-117 Batch request for resolution.
- [#46](https://github.com/FC4E-WP5/fc4eosc-PIDMR-api/pull/46) - PIDMR-118 Batch request for identify.
- [#47](https://github.com/FC4E-WP5/fc4eosc-PIDMR-api/pull/47) - PIDMR-98 Connect pidmr with GRNET postgresql.
- [#48](https://github.com/FC4E-WP5/fc4eosc-PIDMR-api/pull/47) - PIDMR-140 Trim PID Before Resolution.

### Changed

- [#46](https://github.com/FC4E-WP5/fc4eosc-PIDMR-api/pull/46) - PIDMR-136 Pending pid entries seem to be used in identification.
8 changes: 6 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.grnet</groupId>
<artifactId>pid-meta-resolver</artifactId>
<version>1.0.0</version>
<version>2.0.0</version>
<properties>
<compiler-plugin.version>3.10.1</compiler-plugin.version>
<maven.compiler.release>11</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
<quarkus.platform.version>2.16.4.Final</quarkus.platform.version>
<quarkus.platform.version>3.6.0</quarkus.platform.version>
<type.tools.version>0.6.3</type.tools.version>
<lombok.version>1.18.26</lombok.version>
<mapstruct.version>1.5.3.Final</mapstruct.version>
Expand Down Expand Up @@ -117,6 +117,10 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-mysql</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-orm-panache</artifactId>
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/org/grnet/pidmr/client/AAIProxyClient.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package org.grnet.pidmr.client;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

import javax.enterprise.context.ApplicationScoped;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

@Path("/.well-known")
@RegisterRestClient
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package org.grnet.pidmr.constraints;


import javax.validation.Constraint;
import javax.validation.Payload;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package org.grnet.pidmr.constraints;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.grnet.pidmr.dto;

import jakarta.validation.constraints.NotEmpty;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.util.HashSet;
import java.util.Set;

@Schema(name="PidIdentificationBatchRequest", description="A batch request containing multiple PID identification requests.")
public class PidIdentificationBatchRequest {

@Schema(
type = SchemaType.ARRAY,
implementation = String.class,
required = true,
description = "Each item in the list corresponds to a single PID identification request.",
example = "ark:",
minItems = 1
)
@NotEmpty(message = "data should have at least one entry.")
public Set<@NotEmpty(message = "text to be identified may not be empty.") String> data = new HashSet<>();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.grnet.pidmr.dto;

import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.util.HashMap;
import java.util.Map;

@Schema(name="PidIdentificationBatchResponse", description="A batch response containing multiple PID identification results.")
public class PidIdentificationBatchResponse {

@Schema(
type = SchemaType.ARRAY,
implementation = PidResolutionResponse.class,
description = "Each item in the list corresponds to the result of a single PID identification request in the batch."
)
public Map<String, Identification> data = new HashMap<>();
}
21 changes: 21 additions & 0 deletions src/main/java/org/grnet/pidmr/dto/PidIdentificationRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.grnet.pidmr.dto;

import jakarta.validation.constraints.NotEmpty;
import lombok.EqualsAndHashCode;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

@Schema(name="PidIdentificationRequest", description="Request object for PID identification.")
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class PidIdentificationRequest {

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "Text to be identified.",
example = "ark:"
)
@NotEmpty(message = "text may not be empty.")
@EqualsAndHashCode.Include
public String text;
}
22 changes: 22 additions & 0 deletions src/main/java/org/grnet/pidmr/dto/PidResolutionBatchRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.grnet.pidmr.dto;

import jakarta.validation.constraints.NotEmpty;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.util.HashSet;
import java.util.Set;

@Schema(name="PidResolutionBatchRequest", description="A batch request containing multiple PID resolution requests.")
public class PidResolutionBatchRequest {

@Schema(
type = SchemaType.ARRAY,
implementation = PidResolutionRequest.class,
required = true,
description = "Each item in the list corresponds to a single PID resolution request.",
minItems = 1
)
@NotEmpty(message = "data should have at least one entry.")
public Set<PidResolutionRequest> data = new HashSet<>();
}
18 changes: 18 additions & 0 deletions src/main/java/org/grnet/pidmr/dto/PidResolutionBatchResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.grnet.pidmr.dto;

import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import java.util.HashSet;
import java.util.Set;

@Schema(name="PidResolutionBatchResponse", description="A batch response containing multiple PID resolution results.")
public class PidResolutionBatchResponse {

@Schema(
type = SchemaType.ARRAY,
implementation = PidResolutionResponse.class,
description = "Each item in the list corresponds to the result of a single PID resolution request in the batch."
)
public Set<PidResolutionResponse> data = new HashSet<>();
}
28 changes: 28 additions & 0 deletions src/main/java/org/grnet/pidmr/dto/PidResolutionRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.grnet.pidmr.dto;

import lombok.EqualsAndHashCode;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

@Schema(name="PidResolutionRequest", description="Request object for resolving PIDs with optional modes.")
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class PidResolutionRequest {

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "The PID to resolve.",
example = "ark:/13030/tf5p30086k"
)
@EqualsAndHashCode.Include
public String pid;

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "The mode of the PID to resolve.",
example = "metadata"
)
@EqualsAndHashCode.Include
public String mode;
}
49 changes: 49 additions & 0 deletions src/main/java/org/grnet/pidmr/dto/PidResolutionResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package org.grnet.pidmr.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

@Schema(name="PidResolutionResponse", description="Response object containing information about the resolution of a PID.")
public class PidResolutionResponse {

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "The PID that was resolved.",
example = "ark:/13030/tf5p30086k"
)
public String pid;

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "The mode of the resolved PID, if applicable.",
example = "metadata"
)
public String mode;

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "The resolved URL associated with the PID.",
example = "https://oac.cdlib.org/ark:/13030/tf5p30086k/"
)
public String url;

@Schema(
type = SchemaType.BOOLEAN,
implementation = Boolean.class,
description = "Indicates whether the resolution was successful (true) or not (false).",
example = "false"
)
public Boolean success;

@Schema(
type = SchemaType.STRING,
implementation = String.class,
description = "Descriptive message in case of failure, providing more information about the reason for failure.",
example = "Descriptive message in case of failure."
)
public String message;
}
2 changes: 1 addition & 1 deletion src/main/java/org/grnet/pidmr/dto/ProviderRequest.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.grnet.pidmr.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotEmpty;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;

import javax.validation.constraints.NotEmpty;
import java.util.Set;

@Schema(name="ProviderRequest", description="Request to create/modify a Provider.")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.grnet.pidmr.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotEmpty;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
import org.eclipse.microprofile.openapi.annotations.media.Schema;
import org.grnet.pidmr.constraints.StringEnumeration;
import org.grnet.pidmr.enums.ProviderStatus;

import javax.validation.constraints.NotEmpty;

@Schema(name="UpdateProviderStatus", description="Request to update the Provider status.")
public class UpdateProviderStatus {
Expand Down
40 changes: 20 additions & 20 deletions src/main/java/org/grnet/pidmr/endpoint/AdminEndpoint.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@

import io.quarkus.arc.ArcUndeclaredThrowableException;
import io.quarkus.security.Authenticated;
import jakarta.inject.Inject;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.DefaultValue;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.PATCH;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.ServerErrorException;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.UriInfo;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
Expand All @@ -28,26 +48,6 @@
import org.grnet.pidmr.validator.constraints.NotFoundEntity;
import org.hibernate.exception.ConstraintViolationException;

import javax.inject.Inject;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.PATCH;
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.ServerErrorException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.util.List;
import java.util.Objects;

Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/grnet/pidmr/endpoint/InformationEndpoint.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package org.grnet.pidmr.endpoint;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.enums.SchemaType;
Expand All @@ -10,11 +15,6 @@
import org.grnet.pidmr.dto.InformativeResponse;
import org.grnet.pidmr.dto.VersionDto;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("v1")
public class InformationEndpoint {
Expand Down
Loading

0 comments on commit 12e7840

Please sign in to comment.