Skip to content

Commit b7ab39f

Browse files
committed
feat: domain-api
1 parent 985165e commit b7ab39f

File tree

11 files changed

+115
-67
lines changed

11 files changed

+115
-67
lines changed

.github/workflows/scaffold.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ jobs:
3535
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
3636
restore-keys: ${{ runner.os }}-m2
3737
- name: Build with Maven
38-
run: cd sample && mvn clean install -ntp
38+
run: cd cart-service && mvn clean install -ntp

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33
*.iml
44

55
# The default sample project
6-
sample
6+
cart-service
7+
8+
target

cookiecutter.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
22
"app_name": "{{cookiecutter.app_name}}",
3-
"app_name_lower": "{{cookiecutter.app_name.lower()}}",
43
"app_title": "{{cookiecutter.app_name.capitalize()}}",
5-
"group_id": "org.dfm.{{cookiecutter.app_name_lower}}",
6-
"artifact_id": "{{cookiecutter.app_name_lower}}"
4+
"domain": "{{cookiecutter.domain}}",
5+
"domain_capitalized": "{{cookiecutter.domain.capitalize()}}",
6+
"domain_plural": "{%- if cookiecutter.app_name.endswith('y') -%}{{cookiecutter.domain.replace('y','')}}ies{% else %}{{cookiecutter.domain.lower()}}s{% endif %}",
7+
"domain_plural_capitalized": "{{cookiecutter.domain_plural.capitalize()}}",
8+
"group_id": "org.{{cookiecutter.domain}}",
9+
"artifact_id": "{{cookiecutter.domain}}",
10+
"package_name": "{{cookiecutter.domain}}"
711
}

test-config.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
default_context:
2-
app_name: "sample"
3-
group_id: "org.example.sample"
4-
artifact_id: "sample"
2+
app_name: "cart-service"
3+
domain: "cart"
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<groupId>{{cookiecutter.group_id}}</groupId>
7+
<artifactId>{{cookiecutter.artifact_id}}-parent</artifactId>
8+
<version>1.0-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
<artifactId>domain-api</artifactId>
12+
<build>
13+
<plugins>
14+
<plugin>
15+
<groupId>com.societegenerale.commons</groupId>
16+
<artifactId>arch-unit-maven-plugin</artifactId>
17+
<configuration>
18+
<rules>
19+
<preConfiguredRules>
20+
<rule>com.societegenerale.commons.plugin.rules.NoStandardStreamRuleTest</rule>
21+
<rule>com.societegenerale.commons.plugin.rules.NoJodaTimeRuleTest</rule>
22+
<rule>com.societegenerale.commons.plugin.rules.NoJavaUtilDateRuleTest</rule>
23+
<rule>com.societegenerale.commons.plugin.rules.NoPrefixForInterfacesRuleTest</rule>
24+
<rule>com.societegenerale.commons.plugin.rules.NoPublicFieldRuleTest</rule>
25+
<rule>com.societegenerale.commons.plugin.rules.NoInjectedFieldTest</rule>
26+
<rule>com.societegenerale.commons.plugin.rules.NoAutowiredFieldTest</rule>
27+
</preConfiguredRules>
28+
</rules>
29+
</configuration>
30+
</plugin>
31+
</plugins>
32+
</build>
33+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package {{cookiecutter.package_name}}.domain.exception;
2+
3+
public class {{cookiecutter.domain_capitalized}}NotFoundException extends RuntimeException {
4+
5+
public {{cookiecutter.domain_capitalized}}NotFoundException(Long id) {
6+
super("{{cookiecutter.domain_capitalized}} with code " + id + " does not exist");
7+
}
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package {{cookiecutter.package_name}}.domain.model;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
@Data
9+
@Builder
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
public class {{cookiecutter.domain_capitalized}} {
13+
14+
private Long code;
15+
private String description;
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package {{cookiecutter.package_name}}.domain.port;
2+
3+
import java.util.List;
4+
import java.util.Optional;
5+
import lombok.NonNull;
6+
import {{cookiecutter.package_name}}.domain.model.{{cookiecutter.domain_capitalized}};
7+
8+
public interface Obtain{{cookiecutter.domain_capitalized}} {
9+
10+
default List<{{cookiecutter.domain_capitalized}}> getAll{{cookiecutter.domain_plural_capitalized}}() {
11+
{{cookiecutter.domain_capitalized}} {{cookiecutter.domain}} =
12+
{{cookiecutter.domain_capitalized}}.builder()
13+
.code(1L)
14+
.description(
15+
"If you could read a leaf or tree\r\nyoud have no need of books.\r\n-- Alistair Cockburn (1987)")
16+
.build();
17+
return List.of({{cookiecutter.domain}});
18+
}
19+
20+
default Optional<{{cookiecutter.domain_capitalized}}> get{{cookiecutter.domain_capitalized}}ByCode(@NonNull Long code) {
21+
return Optional.of(
22+
{{cookiecutter.domain_capitalized}}.builder()
23+
.code(1L)
24+
.description(
25+
"If you could read a leaf or tree\r\nyoud have no need of books.\r\n-- Alistair Cockburn (1987)")
26+
.build());
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package {{cookiecutter.package_name}}.domain.port;
2+
3+
import java.util.List;
4+
import lombok.NonNull;
5+
import {{cookiecutter.package_name}}.domain.model.{{cookiecutter.domain_capitalized}};
6+
7+
public interface Request{{cookiecutter.domain_capitalized}} {
8+
9+
List<{{cookiecutter.domain_capitalized}}> get{{cookiecutter.domain_capitalized}}s();
10+
11+
{{cookiecutter.domain_capitalized}} get{{cookiecutter.domain_capitalized}}ByCode(@NonNull Long code);
12+
}

{{cookiecutter.app_name_lower}}/pom.xml renamed to {{cookiecutter.app_name}}/pom.xml

Lines changed: 5 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>{{cookiecutter.group_id}}</groupId>
7-
<artifactId>{{cookiecutter.artifact_id}}</artifactId>
7+
<artifactId>{{cookiecutter.artifact_id}}-parent</artifactId>
88
<packaging>pom</packaging>
99
<version>1.0-SNAPSHOT</version>
1010
<properties>
@@ -33,14 +33,14 @@
3333
<pitest-maven-plugin.version>1.17.1</pitest-maven-plugin.version>
3434
<pitest-junit5-plugin.version>1.2.1</pitest-junit5-plugin.version>
3535
</properties>
36-
<!--<modules>
37-
<module>domain</module>
36+
<modules>
3837
<module>domain-api</module>
38+
<!--<module>domain</module>
3939
<module>rest-adapter</module>
4040
<module>jpa-adapter</module>
4141
<module>bootstrap</module>
42-
<module>acceptance-test</module>
43-
</modules>-->
42+
<module>acceptance-test</module>-->
43+
</modules>
4444
<dependencyManagement>
4545
<dependencies>
4646
<!-- Frameworks & Libraries -->
@@ -169,60 +169,6 @@
169169
</execution>
170170
</executions>
171171
</plugin>
172-
<plugin>
173-
<groupId>com.cosium.code</groupId>
174-
<artifactId>git-code-format-maven-plugin</artifactId>
175-
<version>${git-code-format-maven-plugin.version}</version>
176-
<executions>
177-
<!-- On commit, format the modified java files -->
178-
<execution>
179-
<id>install-formatter-hook</id>
180-
<goals>
181-
<goal>install-hooks</goal>
182-
</goals>
183-
</execution>
184-
<!-- On Maven verify phase, fail if any file
185-
(including unmodified) is badly formatted -->
186-
<execution>
187-
<id>validate-code-format</id>
188-
<goals>
189-
<goal>validate-code-format</goal>
190-
</goals>
191-
</execution>
192-
</executions>
193-
<dependencies>
194-
<!-- Enable https://github.com/google/google-java-format -->
195-
<dependency>
196-
<groupId>com.cosium.code</groupId>
197-
<artifactId>google-java-format</artifactId>
198-
<version>${git-code-format-maven-plugin.version}</version>
199-
</dependency>
200-
</dependencies>
201-
</plugin>
202-
<plugin>
203-
<groupId>io.github.phillipuniverse</groupId>
204-
<artifactId>githook-maven-plugin</artifactId>
205-
<version>${githook-maven-plugin.version}</version>
206-
<executions>
207-
<execution>
208-
<goals>
209-
<goal>install</goal>
210-
</goals>
211-
<configuration>
212-
<hooks>
213-
<pre-commit>
214-
echo "Validating..."
215-
exec mvn test
216-
echo "Formatting code..."
217-
exec mvn git-code-format:format-code
218-
echo "Validating format..."
219-
exec mvn git-code-format:validate-code-format
220-
</pre-commit>
221-
</hooks>
222-
</configuration>
223-
</execution>
224-
</executions>
225-
</plugin>
226172
</plugins>
227173
<pluginManagement>
228174
<plugins>

0 commit comments

Comments
 (0)