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;
|
private boolean enabledXsrfProtection = true;
|
||||||
|
|
||||||
@XmlElement(name = "default-namespace-strategy")
|
@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) {
|
private String strategyAsString(NamespaceStrategy namespaceStrategy) {
|
||||||
return namespaceStrategy.getClass().getName();
|
return namespaceStrategy.getClass().getSimpleName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> collectStrategyNames() {
|
private List<String> collectStrategyNames() {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package sonia.scm.repository;
|
package sonia.scm.repository;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import sonia.scm.config.ScmConfiguration;
|
import sonia.scm.config.ScmConfiguration;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -8,6 +10,8 @@ import java.util.Set;
|
|||||||
|
|
||||||
public class NamespaceStrategyProvider implements Provider<NamespaceStrategy> {
|
public class NamespaceStrategyProvider implements Provider<NamespaceStrategy> {
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(NamespaceStrategyProvider.class);
|
||||||
|
|
||||||
private final Set<NamespaceStrategy> strategies;
|
private final Set<NamespaceStrategy> strategies;
|
||||||
private final ScmConfiguration scmConfiguration;
|
private final ScmConfiguration scmConfiguration;
|
||||||
|
|
||||||
@@ -22,11 +26,13 @@ public class NamespaceStrategyProvider implements Provider<NamespaceStrategy> {
|
|||||||
String namespaceStrategy = scmConfiguration.getDefaultNamespaceStrategy();
|
String namespaceStrategy = scmConfiguration.getDefaultNamespaceStrategy();
|
||||||
|
|
||||||
for (NamespaceStrategy s : this.strategies) {
|
for (NamespaceStrategy s : this.strategies) {
|
||||||
if (s.getClass().getCanonicalName().equals(namespaceStrategy)) {
|
if (s.getClass().getSimpleName().equals(namespaceStrategy)) {
|
||||||
return s;
|
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",
|
"displayName": "Ungültige Eingabe",
|
||||||
"description": "Die eingegebenen Daten konnten nicht validiert werden. Bitte korrigieren Sie die Eingaben und senden Sie sie erneut."
|
"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",
|
"displayName": "Illegal input",
|
||||||
"description": "The values could not be validated. Please correct your input and try again."
|
"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);
|
NamespaceStrategyResource resource = new NamespaceStrategyResource(namespaceStrategies, current);
|
||||||
|
|
||||||
NamespaceStrategiesDto dto = resource.get(uriInfo);
|
NamespaceStrategiesDto dto = resource.get(uriInfo);
|
||||||
assertThat(dto.getCurrent()).isEqualTo(MegaNamespaceStrategy.class.getName());
|
assertThat(dto.getCurrent()).isEqualTo(MegaNamespaceStrategy.class.getSimpleName());
|
||||||
assertThat(dto.getAvailable()).contains(
|
assertThat(dto.getAvailable()).contains(
|
||||||
AwesomeNamespaceStrategy.class.getName(),
|
AwesomeNamespaceStrategy.class.getSimpleName(),
|
||||||
SuperNamespaceStrategy.class.getName(),
|
SuperNamespaceStrategy.class.getSimpleName(),
|
||||||
MegaNamespaceStrategy.class.getName()
|
MegaNamespaceStrategy.class.getSimpleName()
|
||||||
);
|
);
|
||||||
assertThat(dto.getLinks().getLinkBy("self").get().getHref()).isEqualTo("/namespace-strategies");
|
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