issue of ImplementationArtifact without operationName definition

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major
    • None
    • Affects Version/s: CSD05
    • Component/s: None
    • None
    • Hide

      My suggestion is to make some modification to the overriding rules for Implementation Artifact as the following.
      If an implementation artifact defined by the Node Type under definition has the same operation name and type as an implementation artifact of the Node Type derived from, the former implementation artifact substitutes the latter one. If an implementation artifact defined by the Node Type under definition has the same type as an implementation artifact of the Node Type derived from and both of them have no operation name specified, the former implementation artifact substitutes the latter one.
      With the above rules, for Case 1, the implementation artifact "X" can be substituted by the implementation artifact "Y", since they are of the same type and both of them have no operation name.

      Show
      My suggestion is to make some modification to the overriding rules for Implementation Artifact as the following. If an implementation artifact defined by the Node Type under definition has the same operation name and type as an implementation artifact of the Node Type derived from, the former implementation artifact substitutes the latter one. If an implementation artifact defined by the Node Type under definition has the same type as an implementation artifact of the Node Type derived from and both of them have no operation name specified, the former implementation artifact substitutes the latter one. With the above rules, for Case 1, the implementation artifact "X" can be substituted by the implementation artifact "Y", since they are of the same type and both of them have no operation name.

      The ImplementationArtifact element has an OPTIONAL attribute called operationName. According to the specification (Line 968), if this attribute is not specified, the implementation artifact is assumed to provide the implementation for all operations defined within the containing interface. Here is a scenario that current overriding rules can not cover.
      Consider a Node Type "A1" defining two operations within one interface. The Node Type "A1" also defines an implementation artifact "X" in the interface with no operation name specified (for example, the implementation artifact "X" is a war and operations are REST operations). This means both operations take "X" as their implementation artifacts. Developers define the Node Type "B" derived from Node Type "A1" and they want to use a new implementation artifact "Y" for both operations to substitute the implementation artifact "X". According to the current overriding rules, if an implementation artifact defined by the Node Type under definition has the same operation name and type as an implementation artifact of the Node Type derived from, the former implementation artifact substitutes the latter one. In this case, the implementation artifact "X" cannot be substituted because it has no operation name specified.

            Assignee:
            Unassigned
            Reporter:
            Paul Zhang (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated: