diff --git a/changelog.md b/changelog.md index 3ac74faf..03139f0a 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,7 @@ ## 3.2.0 (unreleased) - structurizr-dsl: Adds support for `element!=` expressions. +- structurizr-dsl: `!elements` and `!relationships` now work inside deployment environment blocks. ## 3.1.0 (4th November 2024) diff --git a/structurizr-dsl/src/main/java/com/structurizr/dsl/StructurizrDslParser.java b/structurizr-dsl/src/main/java/com/structurizr/dsl/StructurizrDslParser.java index 9581c6d5..9f6d4af2 100644 --- a/structurizr-dsl/src/main/java/com/structurizr/dsl/StructurizrDslParser.java +++ b/structurizr-dsl/src/main/java/com/structurizr/dsl/StructurizrDslParser.java @@ -383,14 +383,14 @@ void parse(List lines, File dslFile, boolean fragment, boolean includeIn } } - } else if (FIND_ELEMENTS_TOKEN.equalsIgnoreCase(firstToken) && (inContext(ModelDslContext.class) || inContext(ElementDslContext.class))) { + } else if (FIND_ELEMENTS_TOKEN.equalsIgnoreCase(firstToken) && (inContext(ModelDslContext.class) || inContext(DeploymentEnvironmentDslContext.class) || inContext(ElementDslContext.class))) { Set elements = new FindElementsParser().parse(getContext(), tokens.withoutContextStartToken()); if (shouldStartContext(tokens)) { startContext(new ElementsDslContext(getContext(), elements)); } - } else if (FIND_RELATIONSHIPS_TOKEN.equalsIgnoreCase(firstToken) && (inContext(ModelDslContext.class) || inContext(ElementDslContext.class))) { + } else if (FIND_RELATIONSHIPS_TOKEN.equalsIgnoreCase(firstToken) && (inContext(ModelDslContext.class) || inContext(DeploymentEnvironmentDslContext.class) || inContext(ElementDslContext.class))) { Set relationships = new FindRelationshipsParser().parse(getContext(), tokens.withoutContextStartToken()); if (shouldStartContext(tokens)) {