You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MergeRepositoriesService.java 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package org.apache.archiva.rest.api.services;
  2. /*
  3. * Licensed to the Apache Software Foundation (ASF) under one
  4. * or more contributor license agreements. See the NOTICE file
  5. * distributed with this work for additional information
  6. * regarding copyright ownership. The ASF licenses this file
  7. * to you under the Apache License, Version 2.0 (the
  8. * "License"); you may not use this file except in compliance
  9. * with the License. You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing,
  14. * software distributed under the License is distributed on an
  15. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16. * KIND, either express or implied. See the License for the
  17. * specific language governing permissions and limitations
  18. * under the License.
  19. */
  20. import io.swagger.v3.oas.annotations.tags.Tag;
  21. import org.apache.archiva.maven2.model.Artifact;
  22. import org.apache.archiva.redback.authorization.RedbackAuthorization;
  23. import org.apache.archiva.security.common.ArchivaRoleConstants;
  24. import javax.ws.rs.GET;
  25. import javax.ws.rs.Path;
  26. import javax.ws.rs.PathParam;
  27. import javax.ws.rs.Produces;
  28. import javax.ws.rs.core.MediaType;
  29. import java.util.List;
  30. /**
  31. * provide REST services on the top of stage merge repository plugin
  32. *
  33. * @author Olivier Lamy
  34. * @since 1.4-M3
  35. */
  36. @Path ("/mergeRepositoriesService/")
  37. @Tag(name="RepositoryMerge", description = "Merging repositories")
  38. public interface MergeRepositoriesService
  39. {
  40. /**
  41. * <b>permissions are checked in impl</b>
  42. * @since 1.4-M3
  43. */
  44. @Path ("mergeConflictedArtifacts/{sourceRepositoryId}/{targetRepositoryId}")
  45. @GET
  46. @Produces ({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
  47. @RedbackAuthorization (permissions = ArchivaRoleConstants.OPERATION_MERGE_REPOSITORY, resource = "{sourceRepositoryId}")
  48. List<Artifact> getMergeConflictedArtifacts( @PathParam ("sourceRepositoryId") String sourceRepositoryId,
  49. @PathParam ("targetRepositoryId") String targetRepositoryId )
  50. throws ArchivaRestServiceException;
  51. /**
  52. * <b>permissions are checked in impl</b>
  53. * @since 1.4-M3
  54. */
  55. @Path ("mergeRepositories/{sourceRepositoryId}/{targetRepositoryId}/{skipConflicts}")
  56. @GET
  57. @RedbackAuthorization (permissions = ArchivaRoleConstants.OPERATION_MERGE_REPOSITORY, resource = "{sourceRepositoryId}")
  58. void mergeRepositories( @PathParam ("sourceRepositoryId") String sourceRepositoryId,
  59. @PathParam ("targetRepositoryId") String targetRepositoryId,
  60. @PathParam ("skipConflicts") boolean skipConflicts )
  61. throws ArchivaRestServiceException;
  62. }