diff --git a/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java b/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java index d5a056e16f..776bd99548 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java @@ -73,9 +73,9 @@ public abstract class AbstractRepositoryHandler * @param storeFactory */ protected AbstractRepositoryHandler(ConfigurationStoreFactory storeFactory) { - this.store = storeFactory. - forType(getConfigClass()) + this.store = storeFactory .withName(getType().getName()) + .withType(getConfigClass()) .build(); } diff --git a/scm-core/src/main/java/sonia/scm/store/StoreFactory.java b/scm-core/src/main/java/sonia/scm/store/StoreFactory.java index aae11bb201..012c334983 100644 --- a/scm-core/src/main/java/sonia/scm/store/StoreFactory.java +++ b/scm-core/src/main/java/sonia/scm/store/StoreFactory.java @@ -6,8 +6,8 @@ public interface StoreFactory { STORE getStore(final StoreParameters storeParameters); - default FloatingStoreParameters.WithType forType(Class type) { - return new FloatingStoreParameters<>(this).new WithType(type); + default FloatingStoreParameters.Builder withName(String name) { + return new FloatingStoreParameters<>(this).new Builder(name); } } @@ -35,36 +35,22 @@ final class FloatingStoreParameters implements StoreParameters { return repository; } - public class WithType { + public class Builder { - WithType(Class type) { - FloatingStoreParameters.this.type = type; - } - - public FloatingStoreParameters.WithTypeAndName withName(String name){ - return new WithTypeAndName(name); - } - - } - public class WithTypeAndName { - - private WithTypeAndName(String name) { + Builder(String name) { FloatingStoreParameters.this.name = name; } - public FloatingStoreParameters.WithTypeNameAndRepository forRepository(Repository repository){ - return new WithTypeNameAndRepository(repository); + public FloatingStoreParameters.Builder withType(Class type) { + FloatingStoreParameters.this.type = type; + return this; } - public STORE build(){ - return factory.getStore(FloatingStoreParameters.this); - } - } - public class WithTypeNameAndRepository { - - private WithTypeNameAndRepository(Repository repository) { + public FloatingStoreParameters.Builder forRepository(Repository repository) { FloatingStoreParameters.this.repository = repository; + return this; } + public STORE build(){ return factory.getStore(FloatingStoreParameters.this); } diff --git a/scm-dao-xml/src/main/java/sonia/scm/group/xml/XmlGroupDAO.java b/scm-dao-xml/src/main/java/sonia/scm/group/xml/XmlGroupDAO.java index 0afc34e9c2..02ea2bd248 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/group/xml/XmlGroupDAO.java +++ b/scm-dao-xml/src/main/java/sonia/scm/group/xml/XmlGroupDAO.java @@ -65,10 +65,10 @@ public class XmlGroupDAO extends AbstractXmlDAO */ @Inject public XmlGroupDAO(ConfigurationStoreFactory storeFactory) { - super(storeFactory. - forType(XmlGroupDatabase.class) - .withName(STORE_NAME) - .build()); + super(storeFactory + .withName(STORE_NAME) + .withType(XmlGroupDatabase.class) + .build()); } //~--- methods -------------------------------------------------------------- diff --git a/scm-dao-xml/src/main/java/sonia/scm/user/xml/XmlUserDAO.java b/scm-dao-xml/src/main/java/sonia/scm/user/xml/XmlUserDAO.java index 2b97afc3ce..ca6d393a28 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/user/xml/XmlUserDAO.java +++ b/scm-dao-xml/src/main/java/sonia/scm/user/xml/XmlUserDAO.java @@ -64,9 +64,10 @@ public class XmlUserDAO extends AbstractXmlDAO @Inject public XmlUserDAO(ConfigurationStoreFactory storeFactory) { - super(storeFactory.forType(XmlUserDatabase.class) - .withName(STORE_NAME) - .build()); + super(storeFactory + .withName(STORE_NAME) + .withType(XmlUserDatabase.class) + .build()); } //~--- methods -------------------------------------------------------------- diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java index 5f78eb75a3..e58afe5e86 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java @@ -65,11 +65,11 @@ public class FileBlobStoreTest extends BlobStoreTestBase @Test @SuppressWarnings("unchecked") public void shouldStoreAndLoadInRepository() { - BlobStore store = createBlobStoreFactory(). - forType(StoreObject.class) - .withName("test") - .forRepository(new Repository("id", "git", "ns", "n")) - .build(); + BlobStore store = createBlobStoreFactory() + .withName("test") + .withType(StoreObject.class) + .forRepository(new Repository("id", "git", "ns", "n")) + .build(); Blob createdBlob = store.create("abc"); List storedBlobs = store.getAll(); @@ -78,6 +78,6 @@ public class FileBlobStoreTest extends BlobStoreTestBase assertThat(storedBlobs) .isNotNull() .hasSize(1) - .usingElementComparatorOnFields("id").containsExactly(createdBlob); + .usingElementComparatorOnFields("id").containsExactly(createdBlob); } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java index a5c8049096..e130b0d205 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java @@ -132,10 +132,10 @@ public class JAXBConfigurationEntryStoreTest ConfigurationEntryStore store = createPermissionStore(RESOURCE_FIXED, name); store.put("a45", new AssignedPermission("tuser4", "repository:create")); - store = createConfigurationStoreFactory(). - forType(AssignedPermission.class) - .withName(name) - .build(); + store = createConfigurationStoreFactory() + .withName(name) + .withType(AssignedPermission.class) + .build(); AssignedPermission ap = store.get("a45"); @@ -231,9 +231,9 @@ public class JAXBConfigurationEntryStoreTest } copy(resource, name); - return createConfigurationStoreFactory(). - forType(AssignedPermission.class) - .withName(name) - .build(); + return createConfigurationStoreFactory() + .withName(name) + .withType(AssignedPermission.class) + .build(); } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java index 4760f2b0fc..4e3dc29faa 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java @@ -56,11 +56,11 @@ public class JAXBConfigurationStoreTest extends StoreTestBase { @SuppressWarnings("unchecked") public void shouldStoreAndLoadInRepository() { - ConfigurationStore store = createStoreFactory(). - forType(StoreObject.class) - .withName("test") - .forRepository(new Repository("id", "git", "ns", "n")) - .build(); + ConfigurationStore store = createStoreFactory() + .withName("test") + .withType(StoreObject.class) + .forRepository(new Repository("id", "git", "ns", "n")) + .build(); store.set(new StoreObject("value")); StoreObject storeObject = store.get(); diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java index e3df72c2e7..b06f06fb9c 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java @@ -61,16 +61,18 @@ public class JAXBDataStoreTest extends DataStoreTestBase { @Override protected DataStore getDataStore(Class type, Repository repository) { - return createDataStoreFactory().forType(type) + return createDataStoreFactory() .withName("test") + .withType(type) .forRepository(repository) .build(); } @Override protected DataStore getDataStore(Class type) { - return createDataStoreFactory().forType(type) + return createDataStoreFactory() .withName("test") + .withType(type) .build(); } diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/LfsBlobStoreFactory.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/LfsBlobStoreFactory.java index 59fff8cd2f..84733b9ea3 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/LfsBlobStoreFactory.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/lfs/LfsBlobStoreFactory.java @@ -76,7 +76,7 @@ public class LfsBlobStoreFactory { */ @SuppressWarnings("unchecked") public BlobStore getLfsBlobStore(Repository repository) { - return blobStoreFactory.forType(String.class) + return blobStoreFactory .withName(repository.getId() + GIT_LFS_REPOSITORY_POSTFIX) .forRepository(repository) .build(); diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java index ed25dc2f6b..bc4c702320 100644 --- a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java +++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/repository/GitRepositoryHandlerTest.java @@ -86,7 +86,7 @@ public class GitRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Before public void initFactory() { - when(factory.forType(any())).thenCallRealMethod(); + when(factory.withName(any())).thenCallRealMethod(); } @Override diff --git a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/web/lfs/LfsBlobStoreFactoryTest.java b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/web/lfs/LfsBlobStoreFactoryTest.java index 23077a9f5f..93eadf8935 100644 --- a/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/web/lfs/LfsBlobStoreFactoryTest.java +++ b/scm-plugins/scm-git-plugin/src/test/java/sonia/scm/web/lfs/LfsBlobStoreFactoryTest.java @@ -63,7 +63,7 @@ public class LfsBlobStoreFactoryTest { @Test public void getBlobStore() { - when(blobStoreFactory.forType(any())).thenCallRealMethod(); + when(blobStoreFactory.withName(any())).thenCallRealMethod(); Repository repository = new Repository("the-id", "GIT", "space", "the-name"); lfsBlobStoreFactory.getLfsBlobStore(repository); diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java index 9f351ba9e1..7e534e3453 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/HgRepositoryHandlerTest.java @@ -72,7 +72,7 @@ public class HgRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Before public void initFactory() { - when(factory.forType(any())).thenCallRealMethod(); + when(factory.withName(any())).thenCallRealMethod(); } @Override diff --git a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java index 4b7f6486b4..8f366b2ec3 100644 --- a/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java +++ b/scm-plugins/scm-svn-plugin/src/test/java/sonia/scm/repository/SvnRepositoryHandlerTest.java @@ -107,7 +107,7 @@ public class SvnRepositoryHandlerTest extends SimpleRepositoryHandlerTestBase { @Test public void getDirectory() { - when(factory.forType(any())).thenCallRealMethod(); + when(factory.withName(any())).thenCallRealMethod(); SvnRepositoryHandler repositoryHandler = new SvnRepositoryHandler(factory, facade, locationResolver); diff --git a/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java b/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java index c9355da37d..f3f252053d 100644 --- a/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java @@ -69,11 +69,10 @@ public abstract class BlobStoreTestBase extends AbstractTestBase @Before public void createBlobStore() { - store = createBlobStoreFactory(). - forType(Blob.class) - .withName("test") - .forRepository(RepositoryTestData.createHeartOfGold()) - .build(); + store = createBlobStoreFactory() + .withName("test") + .forRepository(RepositoryTestData.createHeartOfGold()) + .build(); store.clear(); } diff --git a/scm-test/src/main/java/sonia/scm/store/ConfigurationEntryStoreTestBase.java b/scm-test/src/main/java/sonia/scm/store/ConfigurationEntryStoreTestBase.java index 961ad92a70..8ed7e33eb8 100644 --- a/scm-test/src/main/java/sonia/scm/store/ConfigurationEntryStoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/ConfigurationEntryStoreTestBase.java @@ -51,15 +51,17 @@ public abstract class ConfigurationEntryStoreTestBase extends KeyValueStoreTestB //~--- get methods ---------------------------------------------------------- @Override protected ConfigurationEntryStore getDataStore(Class type) { - return this.createConfigurationStoreFactory().forType(type) + return this.createConfigurationStoreFactory() .withName(storeName) + .withType(type) .build(); } @Override protected ConfigurationEntryStore getDataStore(Class type, Repository repository) { - return this.createConfigurationStoreFactory().forType(type) + return this.createConfigurationStoreFactory() .withName(repoStoreName) + .withType(type) .forRepository(repository) .build(); } diff --git a/scm-test/src/main/java/sonia/scm/store/DataStoreTestBase.java b/scm-test/src/main/java/sonia/scm/store/DataStoreTestBase.java index 71525a8352..ce00290ee5 100644 --- a/scm-test/src/main/java/sonia/scm/store/DataStoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/DataStoreTestBase.java @@ -69,8 +69,9 @@ public abstract class DataStoreTestBase extends KeyValueStoreTestBase StoreObject obj = new StoreObject("test-1"); Repository repository = RepositoryTestData.createHeartOfGold(); - DataStore store = dataStoreFactory.forType(StoreObject.class) + DataStore store = dataStoreFactory .withName("test") + .withType(StoreObject.class) .forRepository(repository) .build(); diff --git a/scm-test/src/main/java/sonia/scm/store/StoreTestBase.java b/scm-test/src/main/java/sonia/scm/store/StoreTestBase.java index 7e03e51bdc..41acb043a7 100644 --- a/scm-test/src/main/java/sonia/scm/store/StoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/StoreTestBase.java @@ -66,7 +66,7 @@ public abstract class StoreTestBase extends AbstractTestBase @Test public void testGet() { - ConfigurationStore store = createStoreFactory().forType(StoreObject.class).withName("test").build(); + ConfigurationStore store = createStoreFactory().withName("test").withType(StoreObject.class).build(); assertNotNull(store); @@ -82,7 +82,7 @@ public abstract class StoreTestBase extends AbstractTestBase @Test public void testSet() { - ConfigurationStore store = createStoreFactory().forType(StoreObject.class).withName("test").build(); + ConfigurationStore store = createStoreFactory().withName("test").withType(StoreObject.class).build(); assertNotNull(store); diff --git a/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java b/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java index 7a8c3e2afd..1a1b1c2985 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java +++ b/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java @@ -111,10 +111,10 @@ public class DefaultSecuritySystem implements SecuritySystem @SuppressWarnings("unchecked") public DefaultSecuritySystem(ConfigurationEntryStoreFactory storeFactory) { - store = storeFactory. - forType(AssignedPermission.class) - .withName(NAME) - .build(); + store = storeFactory + .withName(NAME) + .withType(AssignedPermission.class) + .build(); readAvailablePermissions(); } diff --git a/scm-webapp/src/main/java/sonia/scm/security/SecureKeyResolver.java b/scm-webapp/src/main/java/sonia/scm/security/SecureKeyResolver.java index d4a2331088..700870db7c 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/SecureKeyResolver.java +++ b/scm-webapp/src/main/java/sonia/scm/security/SecureKeyResolver.java @@ -90,10 +90,10 @@ public class SecureKeyResolver extends SigningKeyResolverAdapter @SuppressWarnings("unchecked") public SecureKeyResolver(ConfigurationEntryStoreFactory storeFactory) { - store = storeFactory. - forType(SecureKey.class) - .withName(STORE_NAME) - .build(); + store = storeFactory + .withName(STORE_NAME) + .withType(SecureKey.class) + .build(); } //~--- methods -------------------------------------------------------------- diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AutoCompleteResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AutoCompleteResourceTest.java index 604d3a70e2..435997633b 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AutoCompleteResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/AutoCompleteResourceTest.java @@ -67,7 +67,7 @@ public class AutoCompleteResourceTest { xmlDB = mock(XmlDatabase.class); when(storeConfig.get()).thenReturn(xmlDB); when(storeFactory.getStore(any())).thenReturn(storeConfig); - when(storeFactory.forType(any())).thenCallRealMethod(); + when(storeFactory.withName(any())).thenCallRealMethod(); XmlUserDAO userDao = new XmlUserDAO(storeFactory); this.userDao = spy(userDao); XmlGroupDAO groupDAO = new XmlGroupDAO(storeFactory); diff --git a/scm-webapp/src/test/java/sonia/scm/security/SecureKeyResolverTest.java b/scm-webapp/src/test/java/sonia/scm/security/SecureKeyResolverTest.java index 8be2b4c831..7609fd69a9 100644 --- a/scm-webapp/src/test/java/sonia/scm/security/SecureKeyResolverTest.java +++ b/scm-webapp/src/test/java/sonia/scm/security/SecureKeyResolverTest.java @@ -126,7 +126,7 @@ public class SecureKeyResolverTest { ConfigurationEntryStoreFactory factory = mock(ConfigurationEntryStoreFactory.class); - when(factory.forType(any())).thenCallRealMethod(); + when(factory.withName(any())).thenCallRealMethod(); when(factory.getStore(argThat(storeParameters -> { assertThat(storeParameters.getName()).isEqualTo(SecureKeyResolver.STORE_NAME); assertThat(storeParameters.getType()).isEqualTo(SecureKey.class);