Skip to content
Snippets Groups Projects
Commit ce8679b9 authored by Martin Lowe's avatar Martin Lowe :flag_ca:
Browse files

Merge branch 'malowe/main/18' into 'main'

fix: Update how we handle packages in releases to be less strict

Closes #18

See merge request !56
parents 682cf85e adad4d15
No related branches found
No related tags found
1 merge request!56fix: Update how we handle packages in releases to be less strict
Pipeline #68238 passed
......@@ -11,8 +11,10 @@
*/
package org.eclipsefoundation.downloads.api;
import java.util.Map;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import org.eclipsefoundation.downloads.models.ReleaseVersionPackages.ReleaseTrackerPackages;
import org.eclipsefoundation.downloads.models.ReleaseVersionPackages.ReleaseTrackerPackage;
import org.eclipsefoundation.downloads.models.TrackedReleases;
import jakarta.ws.rs.GET;
......@@ -43,5 +45,5 @@ public interface DrupalAPI {
*/
@GET
@Path("downloads/packages/admin/release_tracker/json/{releaseName}%20{version}/all")
ReleaseTrackerPackages get(@PathParam("releaseName") String releaseName, @PathParam("version") String version);
Map<String, ReleaseTrackerPackage> get(@PathParam("releaseName") String releaseName, @PathParam("version") String version);
}
......@@ -12,16 +12,15 @@
package org.eclipsefoundation.downloads.models;
import java.util.List;
import java.util.Map;
import jakarta.annotation.Nullable;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import com.google.auto.value.AutoValue;
import jakarta.annotation.Nullable;
/**
* Serialization for input/output of the release version packages.
*
......@@ -35,7 +34,7 @@ public abstract class ReleaseVersionPackages {
public abstract String getReleaseVersion();
public abstract ReleaseTrackerPackages getPackages();
public abstract Map<String, ReleaseTrackerPackage> getPackages();
public static Builder builder() {
return new AutoValue_ReleaseVersionPackages.Builder();
......@@ -48,103 +47,11 @@ public abstract class ReleaseVersionPackages {
public abstract Builder setReleaseVersion(String releaseVersion);
public abstract Builder setPackages(ReleaseTrackerPackages packages);
public abstract Builder setPackages(Map<String, ReleaseTrackerPackage> packages);
public abstract ReleaseVersionPackages build();
}
@AutoValue
@JsonDeserialize(builder = AutoValue_ReleaseVersionPackages_ReleaseTrackerPackages.Builder.class)
public abstract static class ReleaseTrackerPackages {
@Nullable
@JsonProperty("java-package")
public abstract ReleaseTrackerPackage getJavaPackage();
@Nullable
@JsonProperty("jee-package")
public abstract ReleaseTrackerPackage getJEEPackage();
@Nullable
@JsonProperty("cpp-package")
public abstract ReleaseTrackerPackage getCPPPackage();
@Nullable
@JsonProperty("committers-package")
public abstract ReleaseTrackerPackage getCommittersPackage();
@Nullable
@JsonProperty("php-package")
public abstract ReleaseTrackerPackage getPHPPackage();
@Nullable
@JsonProperty("dsl-package")
public abstract ReleaseTrackerPackage getDSLPackage();
@Nullable
@JsonProperty("embedcpp-package")
public abstract ReleaseTrackerPackage getEmbeddedCPPPackage();
@Nullable
@JsonProperty("modeling-package")
public abstract ReleaseTrackerPackage getModelingPackage();
@Nullable
@JsonProperty("rcp-package")
public abstract ReleaseTrackerPackage getRCPPackage();
@JsonInclude(Include.NON_NULL)
@Nullable
@JsonProperty("parallel-package")
public abstract ReleaseTrackerPackage getParallelPackage();
@Nullable
@JsonProperty("scout-package")
public abstract ReleaseTrackerPackage getScoutPackage();
public static Builder builder() {
return new AutoValue_ReleaseVersionPackages_ReleaseTrackerPackages.Builder();
}
@AutoValue.Builder
@JsonPOJOBuilder(withPrefix = "set")
public abstract static class Builder {
@JsonProperty("java-package")
public abstract Builder setJavaPackage(@Nullable ReleaseTrackerPackage javaPackage);
@JsonProperty("jee-package")
public abstract Builder setJEEPackage(@Nullable ReleaseTrackerPackage jeePackage);
@JsonProperty("cpp-package")
public abstract Builder setCPPPackage(@Nullable ReleaseTrackerPackage cppPackage);
@JsonProperty("committers-package")
public abstract Builder setCommittersPackage(@Nullable ReleaseTrackerPackage committersPackage);
@JsonProperty("php-package")
public abstract Builder setPHPPackage(@Nullable ReleaseTrackerPackage phpPackage);
@JsonProperty("dsl-package")
public abstract Builder setDSLPackage(@Nullable ReleaseTrackerPackage dslPackage);
@JsonProperty("embedcpp-package")
public abstract Builder setEmbeddedCPPPackage(@Nullable ReleaseTrackerPackage embeddedCPPPackage);
@JsonProperty("modeling-package")
public abstract Builder setModelingPackage(@Nullable ReleaseTrackerPackage modelingPackage);
@JsonProperty("rcp-package")
public abstract Builder setRCPPackage(@Nullable ReleaseTrackerPackage rcpPackage);
@JsonProperty("parallel-package")
public abstract Builder setParallelPackage(@Nullable ReleaseTrackerPackage parallelPackage);
@JsonProperty("scout-package")
public abstract Builder setScoutPackage(@Nullable ReleaseTrackerPackage scoutPackage);
public abstract ReleaseTrackerPackages build();
}
}
@AutoValue
@JsonDeserialize(builder = AutoValue_ReleaseVersionPackages_ReleaseTrackerPackage.Builder.class)
public abstract static class ReleaseTrackerPackage {
......
......@@ -13,6 +13,7 @@
package org.eclipsefoundation.downloads.resources;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.function.Supplier;
......@@ -24,7 +25,7 @@ import org.eclipsefoundation.caching.service.CachingService;
import org.eclipsefoundation.downloads.api.DrupalAPI;
import org.eclipsefoundation.downloads.dto.DownloadFileIndex;
import org.eclipsefoundation.downloads.models.ReleaseVersionPackages;
import org.eclipsefoundation.downloads.models.ReleaseVersionPackages.ReleaseTrackerPackages;
import org.eclipsefoundation.downloads.models.ReleaseVersionPackages.ReleaseTrackerPackage;
import org.eclipsefoundation.downloads.models.TrackedReleases.Release;
import org.eclipsefoundation.downloads.models.TrackedReleases.ReleaseVersion;
import org.eclipsefoundation.downloads.namespaces.DownloadsUrlParameterNames;
......@@ -244,7 +245,7 @@ public class DownloadsResource {
}
// get the release package from the Drupal API
Optional<ReleaseTrackerPackages> rtp = getVersionPackages(releaseName, releaseVersion);
Optional<Map<String, ReleaseTrackerPackage>> rtp = getVersionPackages(releaseName, releaseVersion);
if (rtp.isEmpty()) {
String message = String
.format("Could not find package definitions for release '%s', version '%s'", releaseName, releaseVersion);
......@@ -307,9 +308,9 @@ public class DownloadsResource {
* @param version the version name of the specific release
* @return
*/
private Optional<ReleaseTrackerPackages> getVersionPackages(String releaseName, String releaseVersion) {
private Optional<Map<String, ReleaseTrackerPackage>> getVersionPackages(String releaseName, String releaseVersion) {
return cache
.get(releaseName + releaseVersion, new MultivaluedHashMap<>(), ReleaseTrackerPackages.class,
.get(releaseName + releaseVersion, new MultivaluedHashMap<>(), Map.class,
() -> api.get(releaseName, releaseVersion))
.data();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment