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 567d2a6e84..e22b51789c 100644 --- a/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java +++ b/scm-core/src/main/java/sonia/scm/repository/AbstractRepositoryHandler.java @@ -48,7 +48,8 @@ import java.io.File; import java.io.IOException; import sonia.scm.store.ConfigurationStore; import sonia.scm.store.ConfigurationStoreFactory; -import sonia.scm.store.StoreParameters; + +import static sonia.scm.store.StoreParameters.forType; /** @@ -74,10 +75,10 @@ public abstract class AbstractRepositoryHandler * @param storeFactory */ protected AbstractRepositoryHandler(ConfigurationStoreFactory storeFactory) { - this.store = storeFactory.getStore(new StoreParameters() - .withType(getConfigClass()) - .withName(getType().getName()) - .build() + this.store = storeFactory.getStore( + forType(getConfigClass()) + .withName(getType().getName()) + .build() ); } diff --git a/scm-core/src/main/java/sonia/scm/store/StoreParameters.java b/scm-core/src/main/java/sonia/scm/store/StoreParameters.java index b625004d42..7d3aca8aba 100644 --- a/scm-core/src/main/java/sonia/scm/store/StoreParameters.java +++ b/scm-core/src/main/java/sonia/scm/store/StoreParameters.java @@ -26,8 +26,8 @@ public class StoreParameters { return repository; } - public WithType withType(Class type){ - return new WithType(type); + public static WithType forType(Class type){ + return new StoreParameters().new WithType(type); } public class WithType { 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 2b416cf53a..5236f9d7e7 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 @@ -39,11 +39,12 @@ import com.google.inject.Singleton; import sonia.scm.group.Group; import sonia.scm.group.GroupDAO; -import sonia.scm.store.StoreParameters; import sonia.scm.xml.AbstractXmlDAO; import sonia.scm.store.ConfigurationStoreFactory; +import static sonia.scm.store.StoreParameters.forType; + /** * * @author Sebastian Sdorra @@ -66,10 +67,10 @@ public class XmlGroupDAO extends AbstractXmlDAO */ @Inject public XmlGroupDAO(ConfigurationStoreFactory storeFactory) { - super(storeFactory.getStore(new StoreParameters() - .withType(XmlGroupDatabase.class) - .withName(STORE_NAME) - .build())); + super(storeFactory.getStore( + forType(XmlGroupDatabase.class) + .withName(STORE_NAME) + .build())); } //~--- methods -------------------------------------------------------------- diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java index 23a4348d88..dfb7bd5d38 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java @@ -73,10 +73,10 @@ public abstract class FileBasedStoreFactory { protected File getStoreLocation(String name, Class type, Repository repository) { if (storeDirectory == null) { if (repository != null) { - LOG.debug("create store with type :{}, name:{} and repository {}", type, name, repository.getNamespaceAndName()); + LOG.debug("create store with type: {}, name: {} and repository: {}", type, name, repository.getNamespaceAndName()); storeDirectory = this.getStoreDirectory(store, repository); } else { - LOG.debug("create store with type :{} and name:{} ", type, name); + LOG.debug("create store with type: {} and name: {} ", type, name); storeDirectory = this.getStoreDirectory(store); } IOUtil.mkdirs(storeDirectory); @@ -91,7 +91,7 @@ public abstract class FileBasedStoreFactory { * @return the store directory of a specific repository */ private File getStoreDirectory(Store store, Repository repository) { - return new File (repositoryLocationResolver.getPath(repository.getId()).toFile(), store.getRepositoryStoreDirectory()); + return new File(repositoryLocationResolver.getPath(repository.getId()).toFile(), store.getRepositoryStoreDirectory()); } /** 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 5f84aeb3a8..7f580c9945 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 @@ -36,12 +36,12 @@ package sonia.scm.user.xml; import com.google.inject.Inject; import com.google.inject.Singleton; - -import sonia.scm.store.StoreParameters; +import sonia.scm.store.ConfigurationStoreFactory; import sonia.scm.user.User; import sonia.scm.user.UserDAO; import sonia.scm.xml.AbstractXmlDAO; -import sonia.scm.store.ConfigurationStoreFactory; + +import static sonia.scm.store.StoreParameters.forType; /** * @@ -66,10 +66,10 @@ public class XmlUserDAO extends AbstractXmlDAO @Inject public XmlUserDAO(ConfigurationStoreFactory storeFactory) { - super(storeFactory.getStore(new StoreParameters() - .withType(XmlUserDatabase.class) - .withName(STORE_NAME) - .build())); + super(storeFactory.getStore( + forType(XmlUserDatabase.class) + .withName(STORE_NAME) + .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 51d2d63a5e..ef694c23ac 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 @@ -42,6 +42,7 @@ import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertNotNull; +import static sonia.scm.store.StoreParameters.forType; /** * @@ -65,11 +66,11 @@ public class FileBlobStoreTest extends BlobStoreTestBase @Test @SuppressWarnings("unchecked") public void shouldStoreAndLoadInRepository() { - BlobStore store = createBlobStoreFactory().getStore(new StoreParameters() - .withType(StoreObject.class) - .withName("test") - .forRepository(new Repository("id", "git", "ns", "n")) - .build()); + BlobStore store = createBlobStoreFactory().getStore( + forType(StoreObject.class) + .withName("test") + .forRepository(new Repository("id", "git", "ns", "n")) + .build()); Blob createdBlob = store.create("abc"); List storedBlobs = store.getAll(); 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 81a8f4c340..408318777e 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 @@ -50,6 +50,7 @@ import java.util.UUID; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static sonia.scm.store.StoreParameters.forType; //~--- JDK imports ------------------------------------------------------------ @@ -132,10 +133,10 @@ public class JAXBConfigurationEntryStoreTest ConfigurationEntryStore store = createPermissionStore(RESOURCE_FIXED, name); store.put("a45", new AssignedPermission("tuser4", "repository:create")); - store = createConfigurationStoreFactory().getStore(new StoreParameters() - .withType(AssignedPermission.class) - .withName(name) - .build()); + store = createConfigurationStoreFactory().getStore( + forType(AssignedPermission.class) + .withName(name) + .build()); AssignedPermission ap = store.get("a45"); @@ -231,9 +232,9 @@ public class JAXBConfigurationEntryStoreTest } copy(resource, name); - return createConfigurationStoreFactory().getStore(new StoreParameters() - .withType(AssignedPermission.class) - .withName(name) - .build()); + return createConfigurationStoreFactory().getStore( + forType(AssignedPermission.class) + .withName(name) + .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 ba2527b4ba..ace6cb39c4 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 @@ -39,6 +39,7 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static sonia.scm.store.StoreParameters.forType; /** * Unit tests for {@link JAXBConfigurationStore}. @@ -58,11 +59,11 @@ public class JAXBConfigurationStoreTest extends StoreTestBase { @SuppressWarnings("unchecked") public void shouldStoreAndLoadInRepository() throws IOException { - ConfigurationStore store = createStoreFactory().getStore(new StoreParameters() - .withType(StoreObject.class) - .withName("test") - .forRepository(new Repository("id", "git", "ns", "n")) - .build()); + ConfigurationStore store = createStoreFactory().getStore( + forType(StoreObject.class) + .withName("test") + .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 f42a0cd242..bd4ccedb66 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 @@ -38,10 +38,9 @@ import org.junit.Test; import sonia.scm.repository.Repository; import sonia.scm.security.UUIDKeyGenerator; -import java.io.IOException; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static sonia.scm.store.StoreParameters.forType; /** * @@ -63,25 +62,21 @@ public class JAXBDataStoreTest extends DataStoreTestBase { @Override protected DataStore getDataStore(Class type, Repository repository) { - StoreParameters params = new StoreParameters() - .withType(type) + return createDataStoreFactory().getStore(forType(type) .withName("test") .forRepository(repository) - .build(); - return createDataStoreFactory().getStore(params); + .build()); } @Override protected DataStore getDataStore(Class type) { - StoreParameters params = new StoreParameters() - .withType(type) + return createDataStoreFactory().getStore(forType(type) .withName("test") - .build(); - return createDataStoreFactory().getStore(params); + .build()); } @Test - public void shouldStoreAndLoadInRepository() throws IOException + public void shouldStoreAndLoadInRepository() { repoStore.put("abc", new StoreObject("abc_value")); StoreObject storeObject = repoStore.get("abc"); 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 3e4ba67e0f..a03868505f 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 @@ -35,10 +35,10 @@ package sonia.scm.web.lfs; import com.google.inject.Inject; import com.google.inject.Singleton; import sonia.scm.repository.Repository; -import sonia.scm.store.Blob; import sonia.scm.store.BlobStore; import sonia.scm.store.BlobStoreFactory; -import sonia.scm.store.StoreParameters; + +import static sonia.scm.store.StoreParameters.forType; /** * Creates {@link BlobStore} objects to store lfs objects. @@ -78,11 +78,11 @@ public class LfsBlobStoreFactory { */ @SuppressWarnings("unchecked") public BlobStore getLfsBlobStore(Repository repository) { - return blobStoreFactory.getStore(new StoreParameters() - .withType(Blob.class) - .withName(repository.getId() + GIT_LFS_REPOSITORY_POSTFIX) - .forRepository(repository) - .build() + return blobStoreFactory.getStore( + forType(String.class) + .withName(repository.getId() + GIT_LFS_REPOSITORY_POSTFIX) + .forRepository(repository) + .build() ); } } 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 e30fa4de33..3c029bc781 100644 --- a/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java @@ -50,6 +50,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static sonia.scm.store.StoreParameters.forType; //~--- JDK imports ------------------------------------------------------------ @@ -69,11 +70,11 @@ public abstract class BlobStoreTestBase extends AbstractTestBase @Before public void createBlobStore() { - store = createBlobStoreFactory().getStore(new StoreParameters() - .withType(Blob.class) - .withName("test") - .forRepository(RepositoryTestData.createHeartOfGold()) - .build() + store = createBlobStoreFactory().getStore( + forType(Blob.class) + .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 9a99a78f69..df08a98f60 100644 --- a/scm-test/src/main/java/sonia/scm/store/ConfigurationEntryStoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/ConfigurationEntryStoreTestBase.java @@ -34,6 +34,8 @@ package sonia.scm.store; import sonia.scm.repository.Repository; +import static sonia.scm.store.StoreParameters.forType; + /** * * @author Sebastian Sdorra @@ -51,8 +53,7 @@ public abstract class ConfigurationEntryStoreTestBase extends KeyValueStoreTestB //~--- get methods ---------------------------------------------------------- @Override protected ConfigurationEntryStore getDataStore(Class type) { - StoreParameters params = new StoreParameters() - .withType(type) + StoreParameters params = forType(type) .withName(storeName) .build(); return this.createConfigurationStoreFactory().getStore(params); @@ -60,8 +61,7 @@ public abstract class ConfigurationEntryStoreTestBase extends KeyValueStoreTestB @Override protected ConfigurationEntryStore getDataStore(Class type, Repository repository) { - StoreParameters params = new StoreParameters() - .withType(type) + StoreParameters params = forType(type) .withName(repoStoreName) .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 839baaa616..b1d1b49ebb 100644 --- a/scm-test/src/main/java/sonia/scm/store/DataStoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/DataStoreTestBase.java @@ -39,6 +39,7 @@ import sonia.scm.repository.RepositoryTestData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static sonia.scm.store.StoreParameters.forType; /** * @@ -56,9 +57,8 @@ public abstract class DataStoreTestBase extends KeyValueStoreTestBase protected abstract DataStoreFactory createDataStoreFactory(); - protected StoreParameters getStoreParametersWithRepository(Repository repository) { - return new StoreParameters() - .withType(StoreObject.class) + protected StoreParameters getStoreParametersWithRepository(Repository repository) { + return forType(StoreObject.class) .withName("test") .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 fd9afaff08..5bd665582a 100644 --- a/scm-test/src/main/java/sonia/scm/store/StoreTestBase.java +++ b/scm-test/src/main/java/sonia/scm/store/StoreTestBase.java @@ -36,11 +36,11 @@ package sonia.scm.store; import org.junit.Test; import sonia.scm.AbstractTestBase; -import sonia.scm.repository.Repository; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static sonia.scm.store.StoreParameters.forType; //~--- JDK imports ------------------------------------------------------------ @@ -60,13 +60,6 @@ public abstract class StoreTestBase extends AbstractTestBase */ protected abstract ConfigurationStoreFactory createStoreFactory(); - protected StoreParameters getStoreParameters() { - return new StoreParameters() - .withType(StoreObject.class) - .withName("test") - .build(); - } - /** * Method description * @@ -74,7 +67,7 @@ public abstract class StoreTestBase extends AbstractTestBase @Test public void testGet() { - ConfigurationStore store = createStoreFactory().getStore(getStoreParameters()); + ConfigurationStore store = createStoreFactory().getStore(forType(StoreObject.class).withName("test").build()); assertNotNull(store); @@ -90,7 +83,7 @@ public abstract class StoreTestBase extends AbstractTestBase @Test public void testSet() { - ConfigurationStore store = createStoreFactory().getStore(getStoreParameters()); + ConfigurationStore store = createStoreFactory().getStore(forType(StoreObject.class).withName("test").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 afbe3e00d3..9f2bb86365 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java +++ b/scm-webapp/src/main/java/sonia/scm/security/DefaultSecuritySystem.java @@ -77,6 +77,8 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import static sonia.scm.store.StoreParameters.forType; + /** * TODO add events * @@ -112,10 +114,10 @@ public class DefaultSecuritySystem implements SecuritySystem @SuppressWarnings("unchecked") public DefaultSecuritySystem(ConfigurationEntryStoreFactory storeFactory) { - store = storeFactory.getStore(new StoreParameters() - .withType(AssignedPermission.class) - .withName(NAME) - .build()); + store = storeFactory.getStore( + forType(AssignedPermission.class) + .withName(NAME) + .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 31556afef4..72a7751515 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/SecureKeyResolver.java +++ b/scm-webapp/src/main/java/sonia/scm/security/SecureKeyResolver.java @@ -45,9 +45,9 @@ import org.slf4j.LoggerFactory; import sonia.scm.store.ConfigurationEntryStore; import sonia.scm.store.ConfigurationEntryStoreFactory; -import sonia.scm.store.StoreParameters; import static com.google.common.base.Preconditions.*; +import static sonia.scm.store.StoreParameters.forType; //~--- JDK imports ------------------------------------------------------------ @@ -91,10 +91,10 @@ public class SecureKeyResolver extends SigningKeyResolverAdapter @SuppressWarnings("unchecked") public SecureKeyResolver(ConfigurationEntryStoreFactory storeFactory) { - store = storeFactory.getStore(new StoreParameters() - .withType(SecureKey.class) - .withName(STORE_NAME) - .build()); + store = storeFactory.getStore( + forType(SecureKey.class) + .withName(STORE_NAME) + .build()); } //~--- methods --------------------------------------------------------------