Skip to content

Protect shared values in the AADL Property Values view 馃 - #3241

Merged
lwrage merged 2 commits into
masterfrom
3235_protect_shared_property_values
Sep 17, 2026
Merged

lwrage merged 2 commits into
masterfrom
3235_protect_shared_property_values

Conversation

@lwrage

@lwrage lwrage commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Fixes #3235

Removing a shared contained property value from one subcomponent deleted the whole association, including the value on other subcomponents. Use the same association-status calculation for the status column and editability checks, returning LOCAL_SHARED when an association has multiple applies to targets. Remove and value editing are now disabled for shared values and their nested entries; Make Local and Make Local Contained remain available.

Issue3235Test imports a separate, validated AADL model with two children sharing scalar, record, list, and range values. Seven UI regressions cover sibling-value preservation, shared-value status and rendering, removal enablement, and safe removal after either localization action. The existing context-menu characterization now expects Remove to be disabled. The UI test runtime also includes the EMV2 UI bundle, which supplies the resource service provider needed when property lookup loads contributed EMV2 libraries.

Validation

  • Before the fix, five new regressions failed, including the second child's value becoming empty after Remove on the first child. Both localization regressions and all 12 existing context-menu tests passed.

  • After the fix, all seven new regressions passed:

    mvn -o -T5 -s releng/osate.releng/settings.xml -Plocal,with-ui-tests \
      -pl :org.osate.xtext.aadl2.ui,:org.osate.core.feature,:org.osate.ui.tests \
      -Dtycho.localArtifacts=default -Dpr.build=true -Dsign=false \
      -Dspotbugs=false -Dcodecoverage=false -Djavadoc=false \
      -Dtest=Issue3235Test -DfailIfNoTests=false clean verify
  • The clean 144-module root reactor passed 1,696 tests, including 59 UI tests, with no failures, errors, or skips:

    mvn -o -T5 -s releng/osate.releng/settings.xml -Plocal,with-ui-tests \
      -Dtycho.localArtifacts=ignore -Dpr.build=true -Dsign=false \
      -Dspotbugs=false -Dcodecoverage=false -Djavadoc=false \
      -DfailIfNoTests=false clean install

No dependencies on unmerged PRs. The regression commit precedes the production-fix commit. Residual risk is limited to property-view status, rendering, and action enablement; the existing UI suite covers local, inherited, default, modal, and nested property values.

Exercise shared contained property values through the AADL Property Values view using a separate, validated AADL model project. Verify sibling-value preservation, shared scalar and nested-value editability, and safe removal after Make Local or Make Local Contained.

Include the EMV2 UI service provider in the UI test runtime so property lookup can load contributed libraries. Before the fix, five of the seven new tests fail, including the loss of the unselected child value; both localization tests and all twelve existing context-menu tests pass.
Use one association-status calculation for the property status column and editability checks. Classify contained associations with multiple applies-to targets as LOCAL_SHARED so Remove and value editing remain disabled for their scalar and nested values.

Update the existing context-menu characterization to require localization before removal. All seven Issue3235Test regressions pass, including sibling preservation after both localization actions.
@lwrage
lwrage merged commit 6661315 into master Sep 17, 2026
1 check passed
@lwrage
lwrage deleted the 3235_protect_shared_property_values branch September 17, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove in the AADL Property Values view deletes a shared contained property value from other elements 馃

2 participants