Skip to content

Commit a3af931

Browse files
Fixes an issue extending relationship archetypes.
1 parent d9a6f1c commit a3af931

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

structurizr-dsl/src/main/java/com/structurizr/dsl/StructurizrDslParser.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,12 +1361,11 @@ private Archetype getArchetype(String archetypeType, String archetypeName) {
13611361

13621362
private void extendArchetype(Archetype archetype, String archetypeName) {
13631363
archetypeName = archetypeName.toLowerCase();
1364-
Archetype parentArchetype = archetypes.get(archetype.getType()).get(archetypeName);
1365-
if (parentArchetype != null) {
1366-
archetype.setDescription(parentArchetype.getDescription());
1367-
archetype.setTechnology(parentArchetype.getTechnology());
1368-
archetype.addTags(parentArchetype.getTags().toArray(new String[0]));
1369-
}
1364+
Archetype parentArchetype = getArchetype(archetype.getType(), archetypeName);
1365+
1366+
archetype.setDescription(parentArchetype.getDescription());
1367+
archetype.setTechnology(parentArchetype.getTechnology());
1368+
archetype.addTags(parentArchetype.getTags().toArray(new String[0]));
13701369
}
13711370

13721371
/**

structurizr-dsl/src/test/java/com/structurizr/dsl/DslTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1537,6 +1537,7 @@ void test_archetypesForExtension() throws Exception {
15371537
assertEquals("Makes API calls to", r.getDescription());
15381538
assertEquals("HTTPS", r.getTechnology());
15391539
assertTrue(r.hasTag("Default Tag"));
1540+
assertTrue(r.hasTag("Synchronous"));
15401541
assertTrue(r.hasTag("HTTPS"));
15411542
}
15421543

structurizr-dsl/src/test/resources/dsl/archetypes-for-extension.dsl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ workspace {
1515
tag "Default Tag"
1616
}
1717

18-
https = -> {
18+
sync = -> {
19+
tag "Synchronous"
20+
}
21+
22+
https = --sync-> {
1923
technology "HTTPS"
2024
tag "HTTPS"
2125
}

0 commit comments

Comments
 (0)