From 3e2c8b7c4b7a241fb8ab092a0734d56d328e47fc Mon Sep 17 00:00:00 2001 From: Rene Pfeuffer Date: Tue, 20 Aug 2019 14:23:52 +0200 Subject: [PATCH] Remove archive flag --- .../sonia/scm/config/ScmConfiguration.java | 16 -- .../java/sonia/scm/repository/Repository.java | 26 +-- .../RepositoryIsNotArchivedException.java | 48 ----- .../sonia/scm/store/repositoryDaoMetadata.xml | 1 - .../java/sonia/scm/it/utils/TestData.java | 1 - .../packages/ui-types/src/Config.js | 1 - scm-ui/public/locales/de/config.json | 2 - scm-ui/public/locales/en/config.json | 2 - .../src/admin/components/form/ConfigForm.js | 4 +- .../admin/components/form/GeneralSettings.js | 1 - scm-ui/src/admin/modules/config.test.js | 2 - scm-ui/src/repos/modules/repos.test.js | 1 - .../sonia/scm/api/v2/resources/ConfigDto.java | 1 - .../api/v2/resources/RepositoryResource.java | 11 +- .../SingleResourceManagerAdapter.java | 31 +-- .../repository/DefaultRepositoryManager.java | 3 - .../AuthorizationChangedEventProducer.java | 3 +- .../MigrateVerbsToPermissionRoles.java | 1 - ...ConfigDtoToScmConfigurationMapperTest.java | 2 - .../resources/RepositoryRootResourceTest.java | 16 -- ...ScmConfigurationToConfigDtoMapperTest.java | 2 - .../sonia/scm/it/RepositoryArchiveITCase.java | 181 ------------------ .../sonia/scm/update/security/config.xml | 1 - 23 files changed, 8 insertions(+), 349 deletions(-) delete mode 100644 scm-core/src/main/java/sonia/scm/repository/RepositoryIsNotArchivedException.java delete mode 100644 scm-webapp/src/test/java/sonia/scm/it/RepositoryArchiveITCase.java diff --git a/scm-core/src/main/java/sonia/scm/config/ScmConfiguration.java b/scm-core/src/main/java/sonia/scm/config/ScmConfiguration.java index 95deebfd60..4afbb6a895 100644 --- a/scm-core/src/main/java/sonia/scm/config/ScmConfiguration.java +++ b/scm-core/src/main/java/sonia/scm/config/ScmConfiguration.java @@ -161,7 +161,6 @@ public class ScmConfiguration implements Configuration { * Authentication realm for basic authentication. */ private String realmDescription = HttpUtil.AUTHENTICATION_REALM; - private boolean enableRepositoryArchive = false; private boolean disableGroupingGrid = false; /** * JavaScript date format from moment.js @@ -218,7 +217,6 @@ public class ScmConfiguration implements Configuration { this.forceBaseUrl = other.forceBaseUrl; this.baseUrl = other.baseUrl; this.disableGroupingGrid = other.disableGroupingGrid; - this.enableRepositoryArchive = other.enableRepositoryArchive; this.skipFailedAuthenticators = other.skipFailedAuthenticators; this.loginAttemptLimit = other.loginAttemptLimit; this.loginAttemptLimitTimeout = other.loginAttemptLimitTimeout; @@ -343,10 +341,6 @@ public class ScmConfiguration implements Configuration { return enableProxy; } - public boolean isEnableRepositoryArchive() { - return enableRepositoryArchive; - } - public boolean isForceBaseUrl() { return forceBaseUrl; } @@ -393,16 +387,6 @@ public class ScmConfiguration implements Configuration { this.enableProxy = enableProxy; } - /** - * Enable or disable the repository archive. Default is disabled. - * - * @param enableRepositoryArchive true to disable the repository archive - * @since 1.14 - */ - public void setEnableRepositoryArchive(boolean enableRepositoryArchive) { - this.enableRepositoryArchive = enableRepositoryArchive; - } - public void setForceBaseUrl(boolean forceBaseUrl) { this.forceBaseUrl = forceBaseUrl; } diff --git a/scm-core/src/main/java/sonia/scm/repository/Repository.java b/scm-core/src/main/java/sonia/scm/repository/Repository.java index 8c7000c25a..463085a7ea 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Repository.java +++ b/scm-core/src/main/java/sonia/scm/repository/Repository.java @@ -85,7 +85,6 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per private Set permissions = new HashSet<>(); @XmlElement(name = "public") private boolean publicReadable = false; - private boolean archived = false; private String type; @@ -216,16 +215,6 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per return type; } - /** - * Returns true if the repository is archived. - * - * @return true if the repository is archived - * @since 1.14 - */ - public boolean isArchived() { - return archived; - } - /** * Returns {@code true} if the repository is healthy. * @@ -264,16 +253,6 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per && ((Util.isEmpty(contact)) || ValidationUtil.isMailAddressValid(contact)); } - /** - * Archive or un archive this repository. - * - * @param archived true to enable archive - * @since 1.14 - */ - public void setArchived(boolean archived) { - this.archived = archived; - } - public void setContact(String contact) { this.contact = contact; } @@ -354,7 +333,6 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per repository.setDescription(description); repository.setPermissions(permissions); repository.setPublicReadable(publicReadable); - repository.setArchived(archived); // do not copy health check results } @@ -383,7 +361,6 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per && Objects.equal(contact, other.contact) && Objects.equal(description, other.description) && Objects.equal(publicReadable, other.publicReadable) - && Objects.equal(archived, other.archived) && Objects.equal(permissions, other.permissions) && Objects.equal(type, other.type) && Objects.equal(creationDate, other.creationDate) @@ -395,7 +372,7 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per @Override public int hashCode() { return Objects.hashCode(id, namespace, name, contact, description, publicReadable, - archived, permissions, type, creationDate, lastModified, properties, + permissions, type, creationDate, lastModified, properties, healthCheckFailures); } @@ -408,7 +385,6 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per .add("contact", contact) .add("description", description) .add("publicReadable", publicReadable) - .add("archived", archived) .add("permissions", permissions) .add("type", type) .add("lastModified", lastModified) diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryIsNotArchivedException.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryIsNotArchivedException.java deleted file mode 100644 index a427050633..0000000000 --- a/scm-core/src/main/java/sonia/scm/repository/RepositoryIsNotArchivedException.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - -package sonia.scm.repository; - -/** - * - * @author Sebastian Sdorra - * - * @since 1.14 - */ -public class RepositoryIsNotArchivedException extends RuntimeException { - - private static final long serialVersionUID = 7728748133123987511L; - - public RepositoryIsNotArchivedException() { - super("Repository could not be deleted, because it is not archived."); - } -} diff --git a/scm-dao-xml/src/test/resources/sonia/scm/store/repositoryDaoMetadata.xml b/scm-dao-xml/src/test/resources/sonia/scm/store/repositoryDaoMetadata.xml index 87aa3775ea..a9e84994dc 100644 --- a/scm-dao-xml/src/test/resources/sonia/scm/store/repositoryDaoMetadata.xml +++ b/scm-dao-xml/src/test/resources/sonia/scm/store/repositoryDaoMetadata.xml @@ -5,6 +5,5 @@ space existing false - false xml diff --git a/scm-it/src/test/java/sonia/scm/it/utils/TestData.java b/scm-it/src/test/java/sonia/scm/it/utils/TestData.java index d632f13f60..c7d97a6891 100644 --- a/scm-it/src/test/java/sonia/scm/it/utils/TestData.java +++ b/scm-it/src/test/java/sonia/scm/it/utils/TestData.java @@ -228,7 +228,6 @@ public class TestData { .add("contact", "zaphod.beeblebrox@hitchhiker.com") .add("description", "Heart of Gold") .add("name", getDefaultRepoName(repositoryType)) - .add("archived", false) .add("type", repositoryType) .build().toString(); } diff --git a/scm-ui-components/packages/ui-types/src/Config.js b/scm-ui-components/packages/ui-types/src/Config.js index 5a9522585f..fcd650a3dc 100644 --- a/scm-ui-components/packages/ui-types/src/Config.js +++ b/scm-ui-components/packages/ui-types/src/Config.js @@ -8,7 +8,6 @@ export type Config = { proxyUser: string | null, enableProxy: boolean, realmDescription: string, - enableRepositoryArchive: boolean, disableGroupingGrid: boolean, dateFormat: string, anonymousAccessEnabled: boolean, diff --git a/scm-ui/public/locales/de/config.json b/scm-ui/public/locales/de/config.json index 0bc220515a..5f598cebbe 100644 --- a/scm-ui/public/locales/de/config.json +++ b/scm-ui/public/locales/de/config.json @@ -36,7 +36,6 @@ }, "general-settings": { "realm-description": "Realm Beschreibung", - "enable-repository-archive": "Repository Archiv aktivieren", "disable-grouping-grid": "Gruppen deaktivieren", "date-format": "Datumsformat", "anonymous-access-enabled": "Anonyme Zugriffe erlauben", @@ -57,7 +56,6 @@ "dateFormatHelpText": "Moments Datumsformat. Zulässige Formate sind in der MomentJS Dokumentation beschrieben.", "pluginUrlHelpText": "Die URL der Plugin Center API. Beschreibung der Platzhalter: version = SCM-Manager Version; os = Betriebssystem; arch = Architektur", "enableForwardingHelpText": "mod_proxy Port Weiterleitung aktivieren.", - "enableRepositoryArchiveHelpText": "Repository Archive aktivieren. Nach einer Änderung an dieser Einstellung muss die Seite komplett neu geladen werden.", "disableGroupingGridHelpText": "Repository Gruppen deaktivieren. Nach einer Änderung an dieser Einstellung muss die Seite komplett neu geladen werden.", "allowAnonymousAccessHelpText": "Anonyme Benutzer haben Zugriff auf öffentliche Repositories.", "skipFailedAuthenticatorsHelpText": "Die Kette der Authentifikatoren wird nicht beendet, wenn ein Authentifikator einen Benutzer findet, ihn aber nicht erfolgreich authentifizieren kann.", diff --git a/scm-ui/public/locales/en/config.json b/scm-ui/public/locales/en/config.json index ce0f7252df..6b602a17be 100644 --- a/scm-ui/public/locales/en/config.json +++ b/scm-ui/public/locales/en/config.json @@ -36,7 +36,6 @@ }, "general-settings": { "realm-description": "Realm Description", - "enable-repository-archive": "Enable Repository Archive", "disable-grouping-grid": "Disable Grouping Grid", "date-format": "Date Format", "anonymous-access-enabled": "Anonymous Access Enabled", @@ -57,7 +56,6 @@ "dateFormatHelpText": "Moments date format. Please have a look at the MomentJS documentation.", "pluginUrlHelpText": "The url of the Plugin Center API. Explanation of the placeholders: version = SCM-Manager Version; os = Operation System; arch = Architecture", "enableForwardingHelpText": "Enable mod_proxy port forwarding.", - "enableRepositoryArchiveHelpText": "Enable repository archives. A complete page reload is required after a change of this value.", "disableGroupingGridHelpText": "Disable repository Groups. A complete page reload is required after a change of this value.", "allowAnonymousAccessHelpText": "Anonymous users have read access on public repositories.", "skipFailedAuthenticatorsHelpText": "Do not stop the authentication chain, if an authenticator finds the user but fails to authenticate the user.", diff --git a/scm-ui/src/admin/components/form/ConfigForm.js b/scm-ui/src/admin/components/form/ConfigForm.js index 25a24c4d28..fbabcf197d 100644 --- a/scm-ui/src/admin/components/form/ConfigForm.js +++ b/scm-ui/src/admin/components/form/ConfigForm.js @@ -16,7 +16,7 @@ type Props = { configUpdatePermission: boolean, namespaceStrategies?: NamespaceStrategies, // context props - t: string => string, + t: string => string }; type State = { @@ -41,7 +41,6 @@ class ConfigForm extends React.Component { proxyUser: null, enableProxy: false, realmDescription: "", - enableRepositoryArchive: false, disableGroupingGrid: false, dateFormat: "", anonymousAccessEnabled: false, @@ -122,7 +121,6 @@ class ConfigForm extends React.Component { namespaceStrategies={namespaceStrategies} loginInfoUrl={config.loginInfoUrl} realmDescription={config.realmDescription} - enableRepositoryArchive={config.enableRepositoryArchive} disableGroupingGrid={config.disableGroupingGrid} dateFormat={config.dateFormat} anonymousAccessEnabled={config.anonymousAccessEnabled} diff --git a/scm-ui/src/admin/components/form/GeneralSettings.js b/scm-ui/src/admin/components/form/GeneralSettings.js index 842d0ed7f4..91354badf1 100644 --- a/scm-ui/src/admin/components/form/GeneralSettings.js +++ b/scm-ui/src/admin/components/form/GeneralSettings.js @@ -8,7 +8,6 @@ import NamespaceStrategySelect from "./NamespaceStrategySelect"; type Props = { realmDescription: string, loginInfoUrl: string, - enableRepositoryArchive: boolean, disableGroupingGrid: boolean, dateFormat: string, anonymousAccessEnabled: boolean, diff --git a/scm-ui/src/admin/modules/config.test.js b/scm-ui/src/admin/modules/config.test.js index 23f58c61ac..b580256a94 100644 --- a/scm-ui/src/admin/modules/config.test.js +++ b/scm-ui/src/admin/modules/config.test.js @@ -35,7 +35,6 @@ const config = { proxyUser: null, enableProxy: false, realmDescription: "SONIA :: SCM Manager", - enableRepositoryArchive: false, disableGroupingGrid: false, dateFormat: "YYYY-MM-DD HH:mm:ss", anonymousAccessEnabled: false, @@ -64,7 +63,6 @@ const configWithNullValues = { proxyUser: null, enableProxy: false, realmDescription: "SONIA :: SCM Manager", - enableRepositoryArchive: false, disableGroupingGrid: false, dateFormat: "YYYY-MM-DD HH:mm:ss", anonymousAccessEnabled: false, diff --git a/scm-ui/src/repos/modules/repos.test.js b/scm-ui/src/repos/modules/repos.test.js index ca4b6802b8..31dfc2286c 100644 --- a/scm-ui/src/repos/modules/repos.test.js +++ b/scm-ui/src/repos/modules/repos.test.js @@ -96,7 +96,6 @@ const hitchhikerRestatend: Repository = { description: "restaurant at the end of the universe", namespace: "hitchhiker", name: "restatend", - archived: false, type: "git", _links: { self: { diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigDto.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigDto.java index 30d936d4c5..36abd239dd 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigDto.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigDto.java @@ -19,7 +19,6 @@ public class ConfigDto extends HalRepresentation { private String proxyUser; private boolean enableProxy; private String realmDescription; - private boolean enableRepositoryArchive; private boolean disableGroupingGrid; private String dateFormat; private boolean anonymousAccessEnabled; diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java index 5bca6a6e16..1cfc8b332b 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java @@ -5,7 +5,6 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes; import com.webcohesion.enunciate.metadata.rs.TypeHint; import sonia.scm.repository.NamespaceAndName; import sonia.scm.repository.Repository; -import sonia.scm.repository.RepositoryIsNotArchivedException; import sonia.scm.repository.RepositoryManager; import sonia.scm.web.VndMediaType; @@ -63,7 +62,7 @@ public class RepositoryResource { this.dtoToRepositoryMapper = dtoToRepositoryMapper; this.manager = manager; this.repositoryToDtoMapper = repositoryToDtoMapper; - this.adapter = new SingleResourceManagerAdapter<>(manager, Repository.class, this::handleNotArchived); + this.adapter = new SingleResourceManagerAdapter<>(manager, Repository.class); this.tagRootResource = tagRootResource; this.branchRootResource = branchRootResource; this.changesetRootResource = changesetRootResource; @@ -212,14 +211,6 @@ public class RepositoryResource { @Path("merge/") public MergeResource merge() {return mergeResource.get(); } - private Optional handleNotArchived(Throwable throwable) { - if (throwable instanceof RepositoryIsNotArchivedException) { - return Optional.of(Response.status(Response.Status.PRECONDITION_FAILED).build()); - } else { - return Optional.empty(); - } - } - private Supplier loadBy(String namespace, String name) { NamespaceAndName namespaceAndName = new NamespaceAndName(namespace, name); return () -> Optional.ofNullable(manager.get(namespaceAndName)).orElseThrow(() -> notFound(entity(namespaceAndName))); diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/SingleResourceManagerAdapter.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/SingleResourceManagerAdapter.java index 9c6c0300d6..a7b9146d00 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/SingleResourceManagerAdapter.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/SingleResourceManagerAdapter.java @@ -7,7 +7,6 @@ import sonia.scm.ModelObject; import sonia.scm.NotFoundException; import javax.ws.rs.core.Response; -import java.util.Optional; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; @@ -28,20 +27,11 @@ import static javax.ws.rs.core.Response.Status.BAD_REQUEST; class SingleResourceManagerAdapter { - private final Function> errorHandler; protected final Manager manager; protected final Class type; SingleResourceManagerAdapter(Manager manager, Class type) { - this(manager, type, e -> Optional.empty()); - } - - SingleResourceManagerAdapter( - Manager manager, - Class type, - Function> errorHandler) { this.manager = manager; - this.errorHandler = errorHandler; this.type = type; } @@ -74,12 +64,8 @@ class SingleResourceManagerAdapter throwable); - } - protected String getId(MODEL_OBJECT item) { return item.getId(); } diff --git a/scm-webapp/src/main/java/sonia/scm/repository/DefaultRepositoryManager.java b/scm-webapp/src/main/java/sonia/scm/repository/DefaultRepositoryManager.java index 1bcd877620..836d95bf42 100644 --- a/scm-webapp/src/main/java/sonia/scm/repository/DefaultRepositoryManager.java +++ b/scm-webapp/src/main/java/sonia/scm/repository/DefaultRepositoryManager.java @@ -172,9 +172,6 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager { } private void preDelete(Repository toDelete) { - if (configuration.isEnableRepositoryArchive() && !toDelete.isArchived()) { - throw new RepositoryIsNotArchivedException(); - } fireEvent(HandlerEventType.BEFORE_DELETE, toDelete); getHandler(toDelete).delete(toDelete); } diff --git a/scm-webapp/src/main/java/sonia/scm/security/AuthorizationChangedEventProducer.java b/scm-webapp/src/main/java/sonia/scm/security/AuthorizationChangedEventProducer.java index 3f81377992..fc653efa52 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/AuthorizationChangedEventProducer.java +++ b/scm-webapp/src/main/java/sonia/scm/security/AuthorizationChangedEventProducer.java @@ -168,8 +168,7 @@ public class AuthorizationChangedEventProducer { } private boolean isAuthorizationDataModified(Repository repository, Repository beforeModification) { - return repository.isArchived() != beforeModification.isArchived() - || repository.isPublicReadable() != beforeModification.isPublicReadable() + return repository.isPublicReadable() != beforeModification.isPublicReadable() || !(repository.getPermissions().containsAll(beforeModification.getPermissions()) && beforeModification.getPermissions().containsAll(repository.getPermissions())); } diff --git a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java index 0b96a58385..be40ab3a6d 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java +++ b/scm-webapp/src/main/java/sonia/scm/update/repository/MigrateVerbsToPermissionRoles.java @@ -91,7 +91,6 @@ public class MigrateVerbsToPermissionRoles implements UpdateStep { repository.setHealthCheckFailures(oldRepository.healthCheckFailures); repository.setLastModified(oldRepository.lastModified); repository.setPublicReadable(oldRepository.publicReadable); - repository.setArchived(oldRepository.archived); return repository; } diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigDtoToScmConfigurationMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigDtoToScmConfigurationMapperTest.java index e7ae446185..4ec30ca1c3 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigDtoToScmConfigurationMapperTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigDtoToScmConfigurationMapperTest.java @@ -37,7 +37,6 @@ public class ConfigDtoToScmConfigurationMapperTest { assertEquals("user" , config.getProxyUser()); assertTrue(config.isEnableProxy()); assertEquals("realm" , config.getRealmDescription()); - assertTrue(config.isEnableRepositoryArchive()); assertTrue(config.isDisableGroupingGrid()); assertEquals("yyyy" , config.getDateFormat()); assertTrue(config.isAnonymousAccessEnabled()); @@ -61,7 +60,6 @@ public class ConfigDtoToScmConfigurationMapperTest { configDto.setProxyUser("user"); configDto.setEnableProxy(true); configDto.setRealmDescription("realm"); - configDto.setEnableRepositoryArchive(true); configDto.setDisableGroupingGrid(true); configDto.setDateFormat("yyyy"); configDto.setAnonymousAccessEnabled(true); diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java index c47250470d..af1e91344a 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java @@ -19,7 +19,6 @@ import org.mockito.Mock; import sonia.scm.PageResult; import sonia.scm.repository.NamespaceAndName; import sonia.scm.repository.Repository; -import sonia.scm.repository.RepositoryIsNotArchivedException; import sonia.scm.repository.RepositoryManager; import sonia.scm.repository.api.RepositoryService; import sonia.scm.repository.api.RepositoryServiceFactory; @@ -41,7 +40,6 @@ import static javax.servlet.http.HttpServletResponse.SC_CONFLICT; import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND; import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT; import static javax.servlet.http.HttpServletResponse.SC_OK; -import static javax.servlet.http.HttpServletResponse.SC_PRECONDITION_FAILED; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -270,20 +268,6 @@ public class RepositoryRootResourceTest extends RepositoryTestBase { verify(repositoryManager).delete(anyObject()); } - @Test - public void shouldHandleDeleteIsNotArchivedException() throws Exception { - mockRepository("space", "repo"); - - doThrow(RepositoryIsNotArchivedException.class).when(repositoryManager).delete(anyObject()); - - MockHttpRequest request = MockHttpRequest.delete("/" + RepositoryRootResource.REPOSITORIES_PATH_V2 + "space/repo"); - MockHttpResponse response = new MockHttpResponse(); - - dispatcher.invoke(request, response); - - assertEquals(SC_PRECONDITION_FAILED, response.getStatus()); - } - @Test public void shouldCreateNewRepositoryInCorrectNamespace() throws Exception { when(repositoryManager.create(any())).thenAnswer(invocation -> { diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ScmConfigurationToConfigDtoMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ScmConfigurationToConfigDtoMapperTest.java index 6ae6d5d2f1..2637b20a2f 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ScmConfigurationToConfigDtoMapperTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ScmConfigurationToConfigDtoMapperTest.java @@ -67,7 +67,6 @@ public class ScmConfigurationToConfigDtoMapperTest { assertEquals("trillian" , dto.getProxyUser()); assertTrue(dto.isEnableProxy()); assertEquals("description" , dto.getRealmDescription()); - assertTrue(dto.isEnableRepositoryArchive()); assertTrue(dto.isDisableGroupingGrid()); assertEquals("dd" , dto.getDateFormat()); assertTrue(dto.isAnonymousAccessEnabled()); @@ -106,7 +105,6 @@ public class ScmConfigurationToConfigDtoMapperTest { config.setProxyUser("trillian"); config.setEnableProxy(true); config.setRealmDescription("description"); - config.setEnableRepositoryArchive(true); config.setDisableGroupingGrid(true); config.setDateFormat("dd"); config.setAnonymousAccessEnabled(true); diff --git a/scm-webapp/src/test/java/sonia/scm/it/RepositoryArchiveITCase.java b/scm-webapp/src/test/java/sonia/scm/it/RepositoryArchiveITCase.java deleted file mode 100644 index bc79b9fa20..0000000000 --- a/scm-webapp/src/test/java/sonia/scm/it/RepositoryArchiveITCase.java +++ /dev/null @@ -1,181 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - - -package sonia.scm.it; - - -import com.sun.jersey.api.client.ClientResponse; -import com.sun.jersey.api.client.WebResource; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import sonia.scm.api.v2.resources.ConfigDto; -import sonia.scm.api.v2.resources.RepositoryDto; -import sonia.scm.web.VndMediaType; - -import javax.ws.rs.core.MediaType; -import java.net.URI; -import java.util.Collection; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static sonia.scm.it.IntegrationTestUtil.createAdminClient; -import static sonia.scm.it.IntegrationTestUtil.createResource; -import static sonia.scm.it.IntegrationTestUtil.getLink; -import static sonia.scm.it.IntegrationTestUtil.readJson; -import static sonia.scm.it.IntegrationTestUtil.serialize; -import static sonia.scm.it.RepositoryITUtil.createRepository; -import static sonia.scm.it.RepositoryITUtil.deleteRepository; - -/** - * - * @author Sebastian Sdorra - */ -@RunWith(Parameterized.class) -public class RepositoryArchiveITCase -{ - - /** - * Constructs ... - * - * - * @param type - */ - public RepositoryArchiveITCase(String type) - { - this.type = type; - } - - //~--- methods -------------------------------------------------------------- - - @Parameterized.Parameters(name = "{0}") - public static Collection createParameters() { - return IntegrationTestUtil.createRepositoryTypeParameters(); - } - - /** - * Method description - * - */ - @Before - public void createTestRepository() { - client = createAdminClient(); - repository = createRepository(client, readJson("repository-" + type + ".json")); - } - - /** - * Method description - * - */ - @After - public void deleteTestRepository() - { - setArchiveMode(false); - - if (repository != null) - { - deleteRepository(client, repository); - } - } - - /** - * Method description - * - */ - @Test - public void testDeleteAllowed() { - setArchiveMode(true); - - repository.setArchived(true); - - ClientResponse response = createResource(client, - "repositories/" + repository.getNamespace() + "/" + repository.getName()) - .type(VndMediaType.REPOSITORY).put(ClientResponse.class, serialize(repository)); - - assertNotNull(response); - assertEquals(204, response.getStatus()); - response = createResource(client, - "repositories/" + repository.getNamespace() + "/" + repository.getName()).delete(ClientResponse.class); - assertNotNull(response); - assertEquals(204, response.getStatus()); - repository = null; - } - - /** - * Method description - * - */ - @Test - public void testDeleteDenied() - { - setArchiveMode(true); - - URI deleteUrl = getLink(repository, "delete"); - ClientResponse response = createResource(client, deleteUrl).delete(ClientResponse.class); - - assertNotNull(response); - assertEquals(412, response.getStatus()); - response.close(); - } - - /** - * Method description - * - * - * @param archive - */ - private void setArchiveMode(boolean archive) - { - WebResource.Builder resource = createResource(client, "config").type(MediaType.APPLICATION_JSON); - ConfigDto config = resource.get(ConfigDto.class); - - assertNotNull(config); - config.setEnableRepositoryArchive(archive); - - ClientResponse resp = createResource(client, "config").type(VndMediaType.CONFIG).put(ClientResponse.class, config); - - assertNotNull(resp); - assertEquals(204, resp.getStatus()); - } - - /** Field description */ - private ScmClient client; - - /** Field description */ - private RepositoryDto repository; - - /** Field description */ - private String type; -} diff --git a/scm-webapp/src/test/resources/sonia/scm/update/security/config.xml b/scm-webapp/src/test/resources/sonia/scm/update/security/config.xml index a87e80859e..4af47193d9 100644 --- a/scm-webapp/src/test/resources/sonia/scm/update/security/config.xml +++ b/scm-webapp/src/test/resources/sonia/scm/update/security/config.xml @@ -13,7 +13,6 @@ false false 8181 - false false Y-m-d H:i:s false