Skip to content

Commit 2e999cb

Browse files
authored
Remove project name validation (#741)
1 parent e77946e commit 2e999cb

File tree

3 files changed

+6
-43
lines changed

3 files changed

+6
-43
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
type: improvement
2+
improvement:
3+
description: Project names are no longer validation. Any value can be used for a
4+
project name.
5+
links:
6+
- https://github.com/palantir/docker-compose-rule/pull/741

docker-compose-rule-core/src/main/java/com/palantir/docker/compose/configuration/ProjectName.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,10 @@
1515
*/
1616
package com.palantir.docker.compose.configuration;
1717

18-
import static com.google.common.base.Preconditions.checkState;
19-
2018
import com.google.common.collect.ImmutableList;
2119
import java.util.List;
2220
import java.util.Optional;
2321
import java.util.UUID;
24-
import java.util.function.Predicate;
25-
import java.util.regex.Pattern;
26-
import org.immutables.value.Value.Check;
2722
import org.immutables.value.Value.Immutable;
2823
import org.immutables.value.Value.Parameter;
2924

@@ -35,29 +30,6 @@ public abstract class ProjectName {
3530
@Parameter
3631
protected abstract Optional<String> projectName();
3732

38-
@Check
39-
protected void validate() {
40-
if (!projectName().isPresent()) {
41-
return;
42-
}
43-
44-
checkState(
45-
projectName().get().trim().length() > 0,
46-
"ProjectName must not be blank. If you want to omit the project name, use ProjectName.omit()");
47-
48-
checkState(
49-
validCharacters(projectName().get()),
50-
"ProjectName '%s' not allowed, please use lowercase letters and numbers only.",
51-
projectName().get());
52-
}
53-
54-
// Only allows strings that docker-compose-cli would not modify
55-
// https://github.com/docker/compose/blob/85e2fb63b3309280a602f1f76d77d3a82e53b6c2/compose/cli/command.py#L84
56-
protected boolean validCharacters(String projectName) {
57-
Predicate<String> illegalCharacters = Pattern.compile("[^a-z0-9]").asPredicate();
58-
return !illegalCharacters.test(projectName);
59-
}
60-
6133
public String asString() {
6234
return projectName()
6335
.orElseThrow(() -> new IllegalStateException(

docker-compose-rule-core/src/test/java/com/palantir/docker/compose/configuration/ProjectNameShould.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,6 @@ public void return_empty_command_when_omitted() {
6767
assertThat(command).isEmpty();
6868
}
6969

70-
@Test
71-
public void reject_blanks_in_from_string() {
72-
exception.expect(IllegalStateException.class);
73-
exception.expectMessage("ProjectName must not be blank.");
74-
ProjectName.fromString(" ");
75-
}
76-
77-
@Test
78-
public void match_validation_behavior_of_docker_compose_cli() {
79-
exception.expect(IllegalStateException.class);
80-
exception.expectMessage(
81-
"ProjectName 'Crazy#Proj ect!Name' not allowed, please use lowercase letters and numbers only.");
82-
ProjectName.fromString("Crazy#Proj ect!Name");
83-
}
84-
8570
@Test
8671
public void should_return_the_project_name_when_asString_called() {
8772
String projectName = ProjectName.fromString("projectname").asString();

0 commit comments

Comments
 (0)