osate / osate2

Open Source AADL2 Tool Environment
http://osate.org
Eclipse Public License 2.0
36 stars 8 forks source link

Error markers when creating a flow path implementation that includes refined connections #1831

Closed dblouin closed 5 years ago

dblouin commented 5 years ago

Summary

In the following AADL model, a flow path implementation is specified that uses refined connections. The connections in the flow path are shown as errors in the AADL text editor.

AADL code to reproduce the problem

package issue_flow_refined_conn
public

    abstract Test_Component
        features
            in_feature: in feature;
            out_feature: out feature;
        flows
            process_flow: flow path in_feature -> out_feature;
        properties
            Classifier_Substitution_Rule => Type_Extension;
    end Test_Component;

    abstract Test_Subcompo
        features
            in_feature: in feature;
            out_feature: out feature;
        flows
            process_flow: flow path in_feature -> out_feature;
    end Test_Subcompo;

    abstract implementation Test_Component.basic
        subcomponents
            subcompo_1: abstract Test_Subcompo;
            subcompo_2: abstract Test_Subcompo;
        connections
            conn_1: feature in_feature -> subcompo_1.in_feature;
            conn_2: feature subcompo_1.out_feature -> subcompo_2.in_feature;
            conn_3: feature subcompo_2.out_feature -> out_feature;
        flows
            process_flow: flow path in_feature -> conn_1 -> subcompo_1.process_flow -> conn_2 -> subcompo_2.process_flow -> conn_3 -> out_feature;
    end Test_Component.basic;

    system Test_System extends Test_Component
        features
            in_feature: refined to in data port;
            out_feature: refined to out data port;
        flows
            problem_flow: flow path in_feature -> out_feature;
    end Test_System;

    system Test_Subcompo_System extends Test_Subcompo
        features
            in_feature: refined to in data port;
            out_feature: refined to out data port;
    end Test_Subcompo_System;

    system implementation Test_System.basic extends Test_Component.basic
        subcomponents
            subcompo_1: refined to system Test_Subcompo_System;
            subcompo_2: refined to system Test_Subcompo_System;
        connections
            conn_1: refined to port;
            conn_2: refined to port;
            conn_3: refined to port;
        flows
            problem_flow: flow path in_feature -> conn_1 -> subcompo_1.process_flow -> conn_2 -> subcompo_2.process_flow -> conn_3 -> out_feature;
    end Test_System.basic;

end issue_flow_refined_conn;

Environment

Version: 2.5.0.vfinal -- Build id: 2019-05-17 Operating system: Windows 7

lwrage commented 5 years ago

Looks like a validation issue.

paolo-crisafulli commented 5 years ago

:+1: