mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 22:45:45 +01:00
use simplename of namespace strategy, to simplify i18n
This commit is contained in:
@@ -185,7 +185,7 @@ public class ScmConfiguration implements Configuration {
|
||||
private boolean enabledXsrfProtection = true;
|
||||
|
||||
@XmlElement(name = "default-namespace-strategy")
|
||||
private String defaultNamespaceStrategy = "sonia.scm.repository.UsernameNamespaceStrategy";
|
||||
private String defaultNamespaceStrategy = "UsernameNamespaceStrategy";
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,7 +59,7 @@ public class NamespaceStrategyResource {
|
||||
}
|
||||
|
||||
private String strategyAsString(NamespaceStrategy namespaceStrategy) {
|
||||
return namespaceStrategy.getClass().getName();
|
||||
return namespaceStrategy.getClass().getSimpleName();
|
||||
}
|
||||
|
||||
private List<String> collectStrategyNames() {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package sonia.scm.repository;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import sonia.scm.config.ScmConfiguration;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -8,6 +10,8 @@ import java.util.Set;
|
||||
|
||||
public class NamespaceStrategyProvider implements Provider<NamespaceStrategy> {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(NamespaceStrategyProvider.class);
|
||||
|
||||
private final Set<NamespaceStrategy> strategies;
|
||||
private final ScmConfiguration scmConfiguration;
|
||||
|
||||
@@ -22,11 +26,13 @@ public class NamespaceStrategyProvider implements Provider<NamespaceStrategy> {
|
||||
String namespaceStrategy = scmConfiguration.getDefaultNamespaceStrategy();
|
||||
|
||||
for (NamespaceStrategy s : this.strategies) {
|
||||
if (s.getClass().getCanonicalName().equals(namespaceStrategy)) {
|
||||
if (s.getClass().getSimpleName().equals(namespaceStrategy)) {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
LOG.warn("could not find namespace strategy {}, using default strategy", namespaceStrategy);
|
||||
return new UsernameNamespaceStrategy();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -143,5 +143,11 @@
|
||||
"displayName": "Ungültige Eingabe",
|
||||
"description": "Die eingegebenen Daten konnten nicht validiert werden. Bitte korrigieren Sie die Eingaben und senden Sie sie erneut."
|
||||
}
|
||||
},
|
||||
"namespaceStrategies": {
|
||||
"sonia.scm.repository.UsernameNamespaceStrategy": "Benutzername",
|
||||
"sonia.scm.repository.CustomNamespaceStrategy": "Benutzerdefiniert",
|
||||
"sonia.scm.repository.CurrentYearNamespaceStrategy": "Aktuelles Jahr",
|
||||
"sonia.scm.repository.RepositoryTypeNamespaceStrategy": "Repository Typ"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,5 +143,11 @@
|
||||
"displayName": "Illegal input",
|
||||
"description": "The values could not be validated. Please correct your input and try again."
|
||||
}
|
||||
},
|
||||
"namespaceStrategies": {
|
||||
"UsernameNamespaceStrategy": "Username",
|
||||
"CustomNamespaceStrategy": "Custom",
|
||||
"CurrentYearNamespaceStrategy": "Current year",
|
||||
"RepositoryTypeNamespaceStrategy": "Repository type"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,11 +34,11 @@ class NamespaceStrategyResourceTest {
|
||||
NamespaceStrategyResource resource = new NamespaceStrategyResource(namespaceStrategies, current);
|
||||
|
||||
NamespaceStrategiesDto dto = resource.get(uriInfo);
|
||||
assertThat(dto.getCurrent()).isEqualTo(MegaNamespaceStrategy.class.getName());
|
||||
assertThat(dto.getCurrent()).isEqualTo(MegaNamespaceStrategy.class.getSimpleName());
|
||||
assertThat(dto.getAvailable()).contains(
|
||||
AwesomeNamespaceStrategy.class.getName(),
|
||||
SuperNamespaceStrategy.class.getName(),
|
||||
MegaNamespaceStrategy.class.getName()
|
||||
AwesomeNamespaceStrategy.class.getSimpleName(),
|
||||
SuperNamespaceStrategy.class.getSimpleName(),
|
||||
MegaNamespaceStrategy.class.getSimpleName()
|
||||
);
|
||||
assertThat(dto.getLinks().getLinkBy("self").get().getHref()).isEqualTo("/namespace-strategies");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package sonia.scm.repository;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import sonia.scm.config.ScmConfiguration;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class NamespaceStrategyProviderTest {
|
||||
|
||||
@Test
|
||||
void shouldReturnConfiguredStrategy() {
|
||||
Set<NamespaceStrategy> strategies = allStrategiesAsSet();
|
||||
|
||||
ScmConfiguration configuration = new ScmConfiguration();
|
||||
configuration.setDefaultNamespaceStrategy("Arthur");
|
||||
|
||||
NamespaceStrategyProvider provider = new NamespaceStrategyProvider(strategies, configuration);
|
||||
NamespaceStrategy strategy = provider.get();
|
||||
|
||||
assertThat(strategy).isInstanceOf(Arthur.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnUsernameStrategyForUnknown() {
|
||||
Set<NamespaceStrategy> strategies = Collections.emptySet();
|
||||
|
||||
ScmConfiguration configuration = new ScmConfiguration();
|
||||
configuration.setDefaultNamespaceStrategy("Arthur");
|
||||
|
||||
NamespaceStrategyProvider provider = new NamespaceStrategyProvider(strategies, configuration);
|
||||
NamespaceStrategy strategy = provider.get();
|
||||
|
||||
assertThat(strategy).isInstanceOf(UsernameNamespaceStrategy.class);
|
||||
}
|
||||
|
||||
private LinkedHashSet<NamespaceStrategy> allStrategiesAsSet() {
|
||||
return new LinkedHashSet<>(Arrays.asList(new Trillian(), new Zaphod(), new Arthur()));
|
||||
}
|
||||
|
||||
private static class Trillian implements NamespaceStrategy{
|
||||
|
||||
@Override
|
||||
public String createNamespace(Repository repository) {
|
||||
return "trillian";
|
||||
}
|
||||
}
|
||||
|
||||
private static class Zaphod implements NamespaceStrategy {
|
||||
|
||||
@Override
|
||||
public String createNamespace(Repository repository) {
|
||||
return "zaphod";
|
||||
}
|
||||
}
|
||||
|
||||
private static class Arthur implements NamespaceStrategy {
|
||||
|
||||
@Override
|
||||
public String createNamespace(Repository repository) {
|
||||
return "arthur";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user