Skip to content

Commit

Permalink
Added Universal Package Api
Browse files Browse the repository at this point in the history
- Added Universal Package Api
- Change maven Enum to common PackagePromote, PackageOperation
- Added exception handling updatePackageVersions
- add comments, etc
  • Loading branch information
shblue21 committed Jun 8, 2022
1 parent 66fc597 commit a799790
Show file tree
Hide file tree
Showing 18 changed files with 810 additions and 68 deletions.
1 change: 1 addition & 0 deletions azd/src/main/java/org/azd/common/ApiVersion.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,5 @@ public abstract class ApiVersion {
public static final String WORK_ITEM_TYPES = "7.1-preview.2";
public static final String WORK_ITEM_ATTACHMENT = "7.1-preview.3";
public static final String MAVEN = "7.1-preview.1";
public static final String UPACK = "7.1-preview.1";
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
/***
* The patch operation.
*/
public enum MavenOperation {
public enum PackageOperation {
ADD, COPY, MOVE, REMOVE, REPLACE, TEST
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.azd.enums;

public enum MavenPackagePromote {
public enum PackagePromote {
RELEASE,
PRERELEASE
}
2 changes: 2 additions & 0 deletions azd/src/main/java/org/azd/interfaces/AzDClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.azd.release.ReleaseApi;
import org.azd.serviceendpoint.ServiceEndpointApi;
import org.azd.servicehooks.ServiceHooksApi;
import org.azd.upack.UPackApi;
import org.azd.wiki.WikiApi;
import org.azd.work.WorkApi;
import org.azd.workitemtracking.WorkItemTrackingApi;
Expand Down Expand Up @@ -58,4 +59,5 @@ public interface AzDClient {
PolicyApi getPolicyApi();

PipelinesApi getPipelinesApi();
UPackApi getUPackApi();
}
6 changes: 2 additions & 4 deletions azd/src/main/java/org/azd/interfaces/MavenDetails.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.azd.interfaces;

import org.azd.enums.MavenPackagePromote;
import org.azd.enums.PackagePromote;
import org.azd.enums.PackagesBatchOperation;
import org.azd.exceptions.AzDException;
import org.azd.maven.types.MavenPackageVersionDeletionState;
Expand Down Expand Up @@ -28,16 +28,14 @@ UpstreamingBehavior getUpstreamingBehavior(String feedId, String groupId, String
// throws AzDException;

void updatePackageVersion(String feedId, String groupId, String artifactId, String version,
MavenPackagePromote promote) throws AzDException;
PackagePromote promote) throws AzDException;

void updatePackageVersion(String feedId, String groupId, String artifactId, String version,
String promote) throws AzDException;

void updatePackageVersions(String feedId, String viewId, PackagesBatchOperation operation, List<Map<String, Object>> packages)
throws AzDException;

;

void updateRecycleBinPackages(String feedId, PackagesBatchOperation operation, List<Map<String, Object>> packages)
throws AzDException;

Expand Down
42 changes: 42 additions & 0 deletions azd/src/main/java/org/azd/interfaces/UpackDetails.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.azd.interfaces;

import java.util.List;
import java.util.Map;

import org.azd.enums.PackagePromote;
import org.azd.enums.PackagesBatchOperation;
import org.azd.exceptions.AzDException;
import org.azd.upack.types.Package;
import org.azd.upack.types.UPackPackageVersionDeletionState;

public interface UpackDetails {
Package getPackageVersion(String feedId, String packageName, String version) throws AzDException;

Package getPackageVersion(String feedId, String packageName, String version, boolean showDeleted)
throws AzDException;

UPackPackageVersionDeletionState getPackageVersionFromRecycleBin(String feedId, String packageName,
String version) throws AzDException;

// String downloadPackage(String feedId, String packageName,
// String version, String fileName)
// throws AzDException;

void updatePackageVersion(String feedId, String packageName, String version, PackagePromote promote)
throws AzDException;

void updatePackageVersion(String feedId, String packageName, String version, String promote)
throws AzDException;

void updatePackageVersions(String feedId, String viewId, PackagesBatchOperation operation,
List<Map<String, Object>> packages) throws AzDException;

void updateRecycleBinPackages(String feedId, PackagesBatchOperation operation,
List<Map<String, Object>> packages) throws AzDException;

void deletePackageVersion(String feedId, String packageName, String version) throws AzDException;

void deletePackageVersionFromRecycleBin(String feedId, String packageName, String version) throws AzDException;

void restorePackageVersionFromRecycleBin(String feedId, String packageName, String version) throws AzDException;
}
40 changes: 22 additions & 18 deletions azd/src/main/java/org/azd/maven/MavenApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import org.azd.common.ApiVersion;
import org.azd.connection.Connection;
import org.azd.enums.MavenOperation;
import org.azd.enums.MavenPackagePromote;
import org.azd.enums.PackageOperation;
import org.azd.enums.PackagePromote;
import org.azd.enums.PackagesBatchOperation;
import org.azd.enums.RequestMethod;
import org.azd.exceptions.AzDException;
Expand Down Expand Up @@ -66,17 +66,17 @@ public Package getPackageVersion(String feedId, String groupId, String artifactI
/***
* Get information about a package version.
*
* @param feedId Name or ID of the feed. Example: "mavenfeed".
* @param groupId Group ID of the package. Example: "com.example".
* @param artifactId Artifact ID of the package. Example: "app".
* @param version Version of the package. Example: "1.0.0".
* @param feedId Name or ID of the feed. Example: "mavenfeed".
* @param groupId Group ID of the package. Example: "com.example".
* @param artifactId Artifact ID of the package. Example: "app".
* @param version Version of the package. Example: "1.0.0".
* @param showDeleted True to show information for deleted versions
* @return Package {@link Package}
* @throws AzDException Default Api Exception handler.
*/
@Override
public Package getPackageVersion(String feedId, String groupId, String artifactId, String version,
boolean showDeleted)
throws AzDException {
boolean showDeleted) throws AzDException {
HashMap<String, Object> q = new HashMap<>() {
{
put("showDeleted", showDeleted);
Expand All @@ -103,8 +103,7 @@ public Package getPackageVersion(String feedId, String groupId, String artifactI
*/
@Override
public MavenPackageVersionDeletionState getPackageVersionFromRecycleBin(String feedId, String groupId,
String artifactId, String version)
throws AzDException {
String artifactId, String version) throws AzDException {
String r = send(RequestMethod.GET, CONNECTION, MAVEN, CONNECTION.getProject(),
AREA + "/feeds", feedId,
"maven/RecycleBin/groups/" + groupId + "/artifacts/" + artifactId + "/versions/" + version,
Expand Down Expand Up @@ -214,11 +213,12 @@ public void deletePackageVersionFromRecycleBin(String feedId, String groupId, St
* @param groupId Group ID of the package. Example: "com.example".
* @param artifactId Artifact ID of the package. Example: "app".
* @param version Version of the package. Example: "1.0.0".
* @param promote State of the package. Example: "prelease". {@link MavenPackagePromote}
* @param promote State of the package. Example: "prelease".
* {@link PackagePromote}
* @throws AzDException Default Api Exception handler.
*/
@Override
public void updatePackageVersion(String feedId, String groupId, String artifactId, String version, MavenPackagePromote promote)
public void updatePackageVersion(String feedId, String groupId, String artifactId, String version, PackagePromote promote)
throws AzDException {
updatePackageVersion(feedId, groupId, artifactId, version, promote.toString().toLowerCase());
}
Expand All @@ -230,7 +230,7 @@ public void updatePackageVersion(String feedId, String groupId, String artifactI
* @param groupId Group ID of the package. Example: "com.example".
* @param artifactId Artifact ID of the package. Example: "app".
* @param version Version of the package. Example: "1.0.0".
* @param promote State of the package. Example: "prelease".
* @param promote State of the package. Example: "prelease".
* @throws AzDException Default Api Exception handler.
*/
@Override
Expand All @@ -239,9 +239,9 @@ public void updatePackageVersion(String feedId, String groupId, String artifactI

var req = new HashMap<String, Object>() {
{
put("op", MavenOperation.ADD.toString());
put("op", PackageOperation.ADD.toString());
put("path", "/views/-");
put("value", promote.toString()); //"prmote package type"
put("value", promote.toString()); // "prmote package type"
}
};
var body = new HashMap<String, Object>() {
Expand Down Expand Up @@ -269,7 +269,9 @@ public void updatePackageVersion(String feedId, String groupId, String artifactI
*
* @param feedId Name or ID of the feed. Example: "mavenfeed".
* @param viewId Name of ID the view, packages need to be promoted to.
* @param operation Type of operation that needs to be performed on packages. {@link PackagesBatchOperation}.
* @param operation Type of operation that needs to be performed on packages.
* supports only PROMOTE or DELETE.
* {@link PackagesBatchOperation}.
* @param packages Identifies a particular Maven package versions
* @throws AzDException Default Api Exception handler.
*/
Expand All @@ -279,7 +281,9 @@ public void updatePackageVersions(String feedId, String viewId, PackagesBatchOpe
throws AzDException {
var req = new HashMap<String, Object>();
try {
req.put("data", Map.of("viewId", viewId));
if (operation == PackagesBatchOperation.PROMOTE) {
req.put("data", Map.of("viewId", viewId));
}
req.put("operation", operation.toString().toLowerCase());

List l = new ArrayList();
Expand Down Expand Up @@ -408,7 +412,7 @@ public void updateRecycleBinPackages(String feedId, PackagesBatchOperation opera
req.put("data", null);
req.put("operation", operation.toString().toLowerCase());

List l = new ArrayList();
List l = new ArrayList<Map>();
for (var pkg : packages) {
l.add(Map.of("group", pkg.get("group"), "artifact", pkg.get("artifact"), "version",
pkg.get("version")));
Expand Down
42 changes: 0 additions & 42 deletions azd/src/main/java/org/azd/maven/types/JsonPatchOperation.java

This file was deleted.

0 comments on commit a799790

Please sign in to comment.