Skip to content

Commit

Permalink
Merge pull request #237 from mbeddr/feature/enable_specification_of_f…
Browse files Browse the repository at this point in the history
…orbidden_dependencies

feature/enable specification of forbidden dependencies
  • Loading branch information
danielratiu authored Nov 13, 2024
2 parents e3a30eb + ef52789 commit 84974d1
Show file tree
Hide file tree
Showing 12 changed files with 385 additions and 0 deletions.
1 change: 1 addition & 0 deletions code/languages/org.mpsqa.arch/.mps/modules.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.baselang/test.org.mpsqa.arch.baselang.mpl" folder="test" />
<modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.ext.ext/test.org.mpsqa.arch.ext.ext.mpl" folder="test" />
<modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.ext/test.org.mpsqa.arch.ext.mpl" folder="test" />
<modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/test.org.mpsqa.arch.language_no_other_shall_depend_upon.mpl" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/org.mpsqa.arch.sandbox/org.mpsqa.arch.sandbox.msd" folder="" />
<modulePath path="$PROJECT_DIR$/solutions/test.org.mpsqa.arch.testdata/test.org.mpsqa.arch.testdata.msd" folder="test" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1169,5 +1169,23 @@
</node>
<node concept="22hDWj" id="Te1zv$IzfP" role="22hAXT" />
</node>
<node concept="24kQdi" id="yxqw$qsTSZ">
<property role="3GE5qa" value="dependencies" />
<ref role="1XX52x" to="ryx8:yxqw$qsTSY" resolve="ForbiddenDependency" />
<node concept="3EZMnI" id="yxqw$qsTT1" role="2wV5jI">
<node concept="3F0ifn" id="yxqw$qsTT2" role="3EZMnx">
<property role="3F0ifm" value="forbidden dependency:" />
<node concept="VechU" id="yxqw$qsU2l" role="3F10Kt">
<property role="Vb096" value="fLwANPn/red" />
</node>
</node>
<node concept="3F2HdR" id="yxqw$qsTT3" role="3EZMnx">
<property role="2czwfO" value="," />
<ref role="1NtTu8" to="ryx8:6MUZd5UjK7L" resolve="dependsOn" />
<node concept="2iRfu4" id="yxqw$qsTT4" role="2czzBx" />
</node>
<node concept="2iRfu4" id="yxqw$qsTT5" role="2iSdaV" />
</node>
</node>
</model>

Original file line number Diff line number Diff line change
Expand Up @@ -264,5 +264,13 @@
<property role="TrG5h" value="NODE_LOCK" />
</node>
</node>
<node concept="1TIwiD" id="yxqw$qsTSY">
<property role="EcuMT" value="621894810884873790" />
<property role="3GE5qa" value="dependencies" />
<property role="TrG5h" value="ForbiddenDependency" />
<property role="34LRSv" value="forbidden dependency" />
<property role="R4oN_" value="a dependency which is forbidden" />
<ref role="1TJDcQ" node="6MUZd5Uj9MQ" resolve="ComponentDependency" />
</node>
</model>

Original file line number Diff line number Diff line change
Expand Up @@ -2738,5 +2738,84 @@
</node>
</node>
</node>
<node concept="18kY7G" id="yxqw$qsU2m">
<property role="TrG5h" value="check_ForbiddenDependency" />
<property role="3GE5qa" value="dependencies" />
<node concept="3clFbS" id="yxqw$qsU2n" role="18ibNy">
<node concept="2Gpval" id="yxqw$qsU35" role="3cqZAp">
<node concept="2GrKxI" id="yxqw$qsU36" role="2Gsz3X">
<property role="TrG5h" value="dep" />
</node>
<node concept="2OqwBi" id="yxqw$qsUey" role="2GsD0m">
<node concept="1YBJjd" id="yxqw$qsU3t" role="2Oq$k0">
<ref role="1YBMHb" node="yxqw$qsU2p" resolve="forbiddenDependency" />
</node>
<node concept="3Tsc0h" id="yxqw$qsW4s" role="2OqNvi">
<ref role="3TtcxE" to="ryx8:6MUZd5UjK7L" resolve="dependsOn" />
</node>
</node>
<node concept="3clFbS" id="yxqw$qsU38" role="2LFqv$">
<node concept="3clFbJ" id="yxqw$qsW8U" role="3cqZAp">
<node concept="3fqX7Q" id="yxqw$qsXb7" role="3clFbw">
<node concept="2OqwBi" id="yxqw$qsXb9" role="3fr31v">
<node concept="2OqwBi" id="yxqw$qsXba" role="2Oq$k0">
<node concept="2GrUjf" id="yxqw$qsXbb" role="2Oq$k0">
<ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
</node>
<node concept="3TrcHB" id="yxqw$qsXbc" role="2OqNvi">
<ref role="3TsBF5" to="ryx8:Te1zv$_jA0" resolve="lock" />
</node>
</node>
<node concept="21noJN" id="yxqw$qsXbd" role="2OqNvi">
<node concept="21nZrQ" id="yxqw$qsXbe" role="21noJM">
<ref role="21nZrZ" to="ryx8:GdL2WcU97I" resolve="NODE_LOCK" />
</node>
</node>
</node>
</node>
<node concept="3clFbS" id="yxqw$qsW8W" role="3clFbx">
<node concept="2MkqsV" id="yxqw$qsZgg" role="3cqZAp">
<node concept="Xl_RD" id="yxqw$qsZgp" role="2MkJ7o">
<property role="Xl_RC" value="all forbidden dependencies shall be NODE locked" />
</node>
<node concept="2GrUjf" id="yxqw$qsZhX" role="1urrMF">
<ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="yxqw$qsZip" role="3cqZAp">
<node concept="3fqX7Q" id="yxqw$qsZiq" role="3clFbw">
<node concept="2OqwBi" id="yxqw$qsZir" role="3fr31v">
<node concept="2OqwBi" id="yxqw$qsZis" role="2Oq$k0">
<node concept="2GrUjf" id="yxqw$qsZit" role="2Oq$k0">
<ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
</node>
<node concept="3Tsc0h" id="yxqw$qsZVM" role="2OqNvi">
<ref role="3TtcxE" to="ryx8:Te1zv$_lYI" resolve="whitelist" />
</node>
</node>
<node concept="1v1jN8" id="yxqw$qt3Ao" role="2OqNvi" />
</node>
</node>
<node concept="3clFbS" id="yxqw$qsZix" role="3clFbx">
<node concept="2MkqsV" id="yxqw$qsZiy" role="3cqZAp">
<node concept="Xl_RD" id="yxqw$qsZiz" role="2MkJ7o">
<property role="Xl_RC" value="all forbidden dependencies shall have empty whitelists" />
</node>
<node concept="2GrUjf" id="yxqw$qsZi$" role="1urrMF">
<ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1YaCAy" id="yxqw$qsU2p" role="1YuTPh">
<property role="TrG5h" value="forbiddenDependency" />
<ref role="1YaFvo" to="ryx8:yxqw$qsTSY" resolve="ForbiddenDependency" />
</node>
</node>
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:1d2b0346-8bd9-4284-8203-23dd29045b0b(test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator.templates@generator)">
<persistence version="9" />
<languages>
<devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
</languages>
<imports>
<import index="adb4" ref="r:5b9b96ac-6395-4a4e-8264-c09584d90f97(test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure)" />
</imports>
<registry>
<language id="b401a680-8325-4110-8fd3-84331ff25bef" name="jetbrains.mps.lang.generator">
<concept id="1095416546421" name="jetbrains.mps.lang.generator.structure.MappingConfiguration" flags="ig" index="bUwia" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
</registry>
<node concept="bUwia" id="yxqw$qurrl">
<property role="TrG5h" value="main" />
</node>
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:62fb1273-e73d-4d2c-881e-81ffd6eac472(test.org.mpsqa.arch.language_no_other_shall_depend_upon.behavior)">
<persistence version="9" />
<languages>
<use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
<use id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior" version="2" />
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
</languages>
<imports />
<registry />
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:6acd3eeb-ab34-4f7d-bb21-d1cbefbb3286(test.org.mpsqa.arch.language_no_other_shall_depend_upon.constraints)">
<persistence version="9" />
<languages>
<use id="5dae8159-ab99-46bb-a40d-0cee30ee7018" name="jetbrains.mps.lang.constraints.rules.kinds" version="0" />
<use id="ea3159bf-f48e-4720-bde2-86dba75f0d34" name="jetbrains.mps.lang.context.defs" version="0" />
<use id="e51810c5-7308-4642-bcb6-469e61b5dd18" name="jetbrains.mps.lang.constraints.msg.specification" version="0" />
<use id="134c38d4-e3af-4d9e-b069-1c7df0a4005d" name="jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
<use id="b3551702-269c-4f05-ba61-58060cef4292" name="jetbrains.mps.lang.rulesAndMessages" version="0" />
<use id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints" version="6" />
<use id="13744753-c81f-424a-9c1b-cf8943bf4e86" name="jetbrains.mps.lang.sharedConcepts" version="0" />
<use id="3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7" name="jetbrains.mps.lang.context" version="0" />
<use id="ad93155d-79b2-4759-b10c-55123e763903" name="jetbrains.mps.lang.messages" version="0" />
<devkit ref="00000000-0000-4000-0000-5604ebd4f22c(jetbrains.mps.devkit.aspect.constraints)" />
</languages>
<imports />
<registry />
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:7ae90d27-c607-4f55-b718-2b24949b4a84(test.org.mpsqa.arch.language_no_other_shall_depend_upon.editor)">
<persistence version="9" />
<languages>
<use id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor" version="14" />
<use id="aee9cad2-acd4-4608-aef2-0004f6a1cdbd" name="jetbrains.mps.lang.actions" version="4" />
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
</languages>
<imports />
<registry />
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:5b9b96ac-6395-4a4e-8264-c09584d90f97(test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure)">
<persistence version="9" />
<languages>
<devkit ref="78434eb8-b0e5-444b-850d-e7c4ad2da9ab(jetbrains.mps.devkit.aspect.structure)" />
</languages>
<imports />
<registry />
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:f8151e4e-2bf4-4877-ad12-16fb878936d2(test.org.mpsqa.arch.language_no_other_shall_depend_upon.typesystem)">
<persistence version="9" />
<languages>
<use id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem" version="5" />
<devkit ref="00000000-0000-4000-0000-1de82b3a4936(jetbrains.mps.devkit.aspect.typesystem)" />
</languages>
<imports />
<registry />
</model>

Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<language namespace="test.org.mpsqa.arch.language_no_other_shall_depend_upon" uuid="c07bf2c7-3019-438f-9e89-c561747b91bf" languageVersion="0" moduleVersion="0">
<models>
<modelRoot type="default" contentPath="${module}">
<sourceRoot location="models" />
</modelRoot>
</models>
<facets>
<facet compile="mps" classes="mps" ext="yes" type="java">
<classes generated="true" path="${module}/classes_gen" />
</facet>
</facets>
<accessoryModels />
<generators>
<generator alias="main" namespace="test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator" uuid="dd8ec257-a132-43aa-b9ae-bf3a7b51d502">
<models>
<modelRoot type="default" contentPath="${module}/generator">
<sourceRoot location="templates" />
</modelRoot>
</models>
<facets>
<facet compile="mps" classes="mps" ext="no" type="java">
<classes generated="true" path="${module}/generator/classes_gen" />
</facet>
</facets>
<external-templates />
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="2" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:b401a680-8325-4110-8fd3-84331ff25bef:jetbrains.mps.lang.generator" version="4" />
<language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="2" />
<language slang="l:289fcc83-6543-41e8-a5ca-768235715ce4:jetbrains.mps.lang.generator.generationParameters" version="0" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="5" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="19" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="c07bf2c7-3019-438f-9e89-c561747b91bf(test.org.mpsqa.arch.language_no_other_shall_depend_upon)" version="0" />
<module reference="dd8ec257-a132-43aa-b9ae-bf3a7b51d502(test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator)" version="0" />
</dependencyVersions>
<mapping-priorities />
</generator>
</generators>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
<language slang="l:443f4c36-fcf5-4eb6-9500-8d06ed259e3e:jetbrains.mps.baseLanguage.classifiers" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="2" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:aee9cad2-acd4-4608-aef2-0004f6a1cdbd:jetbrains.mps.lang.actions" version="4" />
<language slang="l:af65afd8-f0dd-4942-87d9-63a55f2a9db1:jetbrains.mps.lang.behavior" version="2" />
<language slang="l:3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1:jetbrains.mps.lang.constraints" version="6" />
<language slang="l:e51810c5-7308-4642-bcb6-469e61b5dd18:jetbrains.mps.lang.constraints.msg.specification" version="0" />
<language slang="l:47257bf3-78d3-470b-89d9-8c3261a61d15:jetbrains.mps.lang.constraints.rules" version="0" />
<language slang="l:5dae8159-ab99-46bb-a40d-0cee30ee7018:jetbrains.mps.lang.constraints.rules.kinds" version="0" />
<language slang="l:134c38d4-e3af-4d9e-b069-1c7df0a4005d:jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
<language slang="l:3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7:jetbrains.mps.lang.context" version="0" />
<language slang="l:ea3159bf-f48e-4720-bde2-86dba75f0d34:jetbrains.mps.lang.context.defs" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:f4ad079d-bc71-4ffb-9600-9328705cf998:jetbrains.mps.lang.descriptor" version="0" />
<language slang="l:18bc6592-03a6-4e29-a83a-7ff23bde13ba:jetbrains.mps.lang.editor" version="14" />
<language slang="l:ad93155d-79b2-4759-b10c-55123e763903:jetbrains.mps.lang.messages" version="0" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:d4615e3b-d671-4ba9-af01-2b78369b0ba7:jetbrains.mps.lang.pattern" version="2" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="5" />
<language slang="l:982eb8df-2c96-4bd7-9963-11712ea622e5:jetbrains.mps.lang.resources" version="2" />
<language slang="l:b3551702-269c-4f05-ba61-58060cef4292:jetbrains.mps.lang.rulesAndMessages" version="0" />
<language slang="l:d8f591ec-4d86-4af2-9f92-a9e93c803ffa:jetbrains.mps.lang.scopes" version="0" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="19" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="9" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:7a5dda62-9140-4668-ab76-d5ed1746f2b2:jetbrains.mps.lang.typesystem" version="5" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="a9e4c532-c5f5-4bb7-99ef-42abb73bbb70(jetbrains.mps.lang.descriptor.aspects)" version="0" />
<module reference="c07bf2c7-3019-438f-9e89-c561747b91bf(test.org.mpsqa.arch.language_no_other_shall_depend_upon)" version="0" />
</dependencyVersions>
<extendedLanguages />
</language>

Loading

0 comments on commit 84974d1

Please sign in to comment.