summaryrefslogtreecommitdiffstats
path: root/java/sca
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-08-03 18:55:35 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-08-03 18:55:35 +0000
commite2cc42176cb9599dd1104739d1ecf6bd9fd967fb (patch)
tree3f55f0ba0928e00980480bd68f006ab0fe232859 /java/sca
parent1fb0be245dfdff3150b91b74a55cab17b80cbdb5 (diff)
Add a property file to hold the descriptions of the SCA assembly conformance items
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@800492 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca')
-rw-r--r--java/sca/modules/assembly/src/main/resources/assembly-conformance-messages.properties327
1 files changed, 327 insertions, 0 deletions
diff --git a/java/sca/modules/assembly/src/main/resources/assembly-conformance-messages.properties b/java/sca/modules/assembly/src/main/resources/assembly-conformance-messages.properties
new file mode 100644
index 0000000000..8ded10c9db
--- /dev/null
+++ b/java/sca/modules/assembly/src/main/resources/assembly-conformance-messages.properties
@@ -0,0 +1,327 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# C.1 Mandatory Items
+ASM13001=\
+An SCA runtime MUST reject a composite file that does not conform to the sca-core.xsd, sca-interface-wsdl.xsd, sca-implementation-composite.xsd and sca-binding-sca.xsd schema.
+ASM13002=\
+An SCA runtime MUST reject a contribution file that does not conform to the sca-contribution.xsd schema.
+ASM13003=\
+An SCA runtime MUST reject a definitions file that does not conform to the sca-definitions.xsd schema.
+ASM40001=\
+The extension of a componentType side file name MUST be .componentType.
+ASM40002=\
+If present, the @constrainingType attribute of a <componentType/> element MUST reference a <constrainingType/> element in the Domain through its QName.
+ASM40003=\
+The @name attribute of a <service/> child element of a <componentType/> MUST be unique amongst the service elements of that <componentType/>.
+ASM40004=\
+The @name attribute of a <reference/> child element of a <componentType/> MUST be unique amongst the reference elements of that <componentType/>.
+ASM40005=\
+The @name attribute of a <property/> child element of a <componentType/> MUST be unique amongst the property elements of that <componentType/>.
+ASM40006=\
+If @wiredByImpl is set to "true", then any reference targets configured for this reference MUST be ignored by the runtime.
+ASM40007=\
+The value of the property @type attribute MUST be the QName of an XML schema type.
+ASM40008=\
+The value of the property @element attribute MUST be the QName of an XSD global element.
+ASM40009=\
+The SCA runtime MUST ensure that any implementation default property value is replaced by a value for that property explicitly set by a component using that implementation.
+ASM40010=\
+A single property element MUST NOT contain both a @type attribute and an @element attribute.
+ASM40011=\
+When the componentType has @mustSupply="true" for a property element, a component using the implementation MUST supply a value for the property since the implementation has no default value for the property.
+ASM50001=\
+The @name attribute of a <component/> child element of a <composite/> MUST be unique amongst the component elements of that <composite/>
+ASM50002=\
+The @name attribute of a service element of a <component/> MUST be unique amongst the service elements of that <component/>
+ASM50003=\
+The @name attribute of a service element of a <component/> MUST match the @name attribute of a service element of the componentType of the <implementation/> child element of the component.
+ ASM50004=\
+If an interface is declared for a component service, the interface MUST provide a compatible subset of the interface declared for the equivalent service in the componentType of the implementation
+ ASM50005=\
+If no binding elements are specified for the service, then the bindings specified for the equivalent service in the componentType of the implementation MUST be used, but if the componentType also has no bindings specified, then <binding.sca/> MUST be used as the binding. If binding elements are specified for the service, then those bindings MUST be used and they override any bindings specified for the equivalent service in the componentType of the implementation.
+ASM50006=\
+If the callback element is present and contains one or more binding child elements, then those bindings MUST be used for the callback.
+ASM50007=\
+The @name attribute of a reference element of a <component/> MUST be unique amongst the reference elements of that <component/>
+
+ASM50008=\
+The @name attribute of a reference element of a <component/> MUST match the @name attribute of a reference element of the componentType of the <implementation/> child element of the component.
+ASM50009=\
+The value of multiplicity for a component reference MUST only be equal or further restrict any value for the multiplicity of the reference with the same name in the componentType of the implementation, where further restriction means 0..n to 0..1 or 1..n to 1..1.
+ASM50010=\
+If @wiredByImpl="true" is set for a reference, then the reference MUST NOT be wired statically within a composite, but left unwired.
+ ASM50011=\
+If an interface is declared for a component reference, the interface MUST provide a compatible superset of the interface declared for the equivalent reference in the componentType of the implementation.
+ASM50012=\
+If no binding elements are specified for the reference, then the bindings specified for the equivalent reference in the componentType of the implementation MUST be used. If binding elements are specified for the reference, then those bindings MUST be used and they override any bindings specified for the equivalent reference in the componentType of the implementation.
+ASM50013=\
+If @wiredByImpl="true", other methods of specifying the target service MUST NOT be used.
+ASM50014=\
+If @autowire="true", the autowire procedure MUST only be used if no target is identified by any of the other ways listed above. It is not an error if @autowire="true" and a target is also defined through some other means, however in this case the autowire procedure MUST NOT be used.
+ASM50015=\
+If a binding element has a value specified for a target service using its @uri attribute, the binding element MUST NOT identify target services using binding specific attributes or elements.
+ASM50016=\
+It is possible that a particular binding type uses more than a simple URI for the address of a target service. In cases where a reference element has a binding subelement that uses more than simple URI, the @uri attribute of the binding element MUST NOT be used to identify the target service - in this case binding specific attributes and/or child elements MUST be used.
+ASM50018=\
+A reference with multiplicity 0..1 or 0..n MAY have no target service defined.
+ASM50019=\
+A reference with multiplicity 0..1 or 1..1 MUST NOT have more that one target service defined.
+ASM50020=\
+A reference with multiplicity 1..1 or 1..n MUST have at least one target service defined.
+ASM50021=\
+A reference with multiplicity 0..n or 1..n MAY have one or more target services defined.
+ASM50022=\
+Where it is detected that the rules for the number of target services for a reference have been violated, either at deployment or at execution time, an SCA Runtime MUST raise an error no later than when the reference is invoked by the component implementation.
+ASM50025=\
+Where a component reference is promoted by a composite reference, the promotion MUST be treated from a multiplicity perspective as providing 0 or more target services for the component reference, depending upon the further configuration of the composite reference. These target services are in addition to any target services identified on the component reference itself, subject to the rules relating to multiplicity.
+ASM50026=\
+If a reference has a value specified for one or more target services in its @target attribute, there MUST NOT be any child <binding/> elements declared for that reference.
+ASM50027=\
+If the @value attribute of a component property element is declared, the type of the property MUST be an XML Schema simple type and the @value attribute MUST contain a single value of that type.
+ASM50028=\
+If the value subelement of a component property is specified, the type of the property MUST be an XML Schema simple type or an XML schema complex type.
+ASM50029=\
+If a component property value is declared using a child element of the <property/> element, the type of the property MUST be an XML Schema global element and the declared child element MUST be an instance of that global element.
+ASM50030=\
+A <component/> element MUST NOT contain two <property/> subelements with the same value of the @name attribute.
+ASM50031=\
+The @name attribute of a property element of a <component/> MUST be unique amongst the property elements of that <component/>.
+ASM50032
+If a property is single-valued, the <value/> subelement MUST NOT occur more than once.
+ASM50033=\
+A property <value/> subelement MUST NOT be used when the @value attribute is used to specify the value for that property.
+ASM50034=\
+If any <wire/> element with its @replace attribute set to "true" has a particular reference specified in its @source attribute, the value of the @target attribute for that reference MUST be ignored and MUST NOT be used to define target services for that reference.
+ASM50035=\
+A single property element MUST NOT contain both a @type attribute and an @element attribute.
+ASM50036=\
+The property type specified for the property element of a component MUST be compatible with the type of the property with the same @name declared in the component type of the implementation used by the component. If no type is declared in the component property element, the type of the property declared in the componentType of the implementation MUST be used.
+ASM50037=\
+The @name attribute of a property element of a <component/> MUST match the @name attribute of a property element of the componentType of the <implementation/> child element of the component.
+ASM50038=\
+In these cases where the types of two property elements are matched, the types declared for the two <property/> elements MUST be compatible
+ASM50039=\
+A reference with multiplicity 0..1 MUST have no more than one target service defined.
+ASM50040=\
+A reference with multiplicity 1..1 MUST have exactly one target service defined.
+ASM50041=\
+A reference with multiplicity 1..n MUST have at least one target service defined.
+ASM50042=\
+If a component reference has @multiplicity 0..1 or 1..1 and @nonOverridable==true, then the component reference MUST NOT be promoted by any composite reference.
+ASM60001=\
+A composite @name attribute value MUST be unique within the namespace of the composite.
+ASM60002=\
+@local="true" for a composite means that all the components within the composite MUST run in the same operating system process.
+ASM60003=\
+The name of a composite <service/> element MUST be unique across all the composite services in the composite.
+ASM60004=\
+A composite <service/> element's @promote attribute MUST identify one of the component services within that composite.
+ASM60005=\
+If a composite service interface is specified it MUST be the same or a compatible subset of the interface provided by the promoted component service.
+ASM60006=\
+The name of a composite <reference/> element MUST be unique across all the composite references in the composite.
+ASM60007=\
+Each of the URIs declared by a composite reference's @promote attribute MUST identify a component reference within the composite.
+ASM60008=\
+the interfaces of the component references promoted by a composite reference MUST be the same, or if the composite reference itself declares an interface then each of the component reference interfaces MUST be a compatible subset of the composite reference interface..
+ASM60009=\
+the intents declared on a composite reference and on the component references which it promoites MUST NOT be mutually exclusive.
+ASM60010=\
+If any intents in the set which apply to a composite reference are mutually exclusive then the SCA runtime MUST raise an error.
+ASM60011=\
+The value specified for the @multiplicity attribute of a composite reference MUST be compatible with the multiplicity specified on each of the component references which it promotes, i.e. the multplicity of the composite reference MUST be equal to or further restrict the multiplicity of the component reference, except for the case where all the promoted component references have at least one target declared in which case a composite reference of 0..1 is compatble with component references of 1..1 and composite reference of 0..n is compatible with component references of 1..n.
+ASM60012=\
+If a composite reference has an interface specified, it MUST provide an interface which is the same or which is a compatible superset of the interface(s) declared by the promoted component reference(s).
+ASM60013=\
+If no interface is declared on a composite reference, the interface from one of its promoted component references MUST be used for the component type associated with the composite.
+ASM60014=\
+The @name attribute of a composite property MUST be unique amongst the properties of the same composite.
+ASM60022=\
+For each component reference for which autowire is enabled, the SCA runtime MUST search within the composite for target services which have an interface that is a compatible superset of the interface of the reference.
+ASM60024=\
+The intents, and policies applied to the service MUST be compatible with those on the reference when using autowire to wire a reference - so that wiring the reference to the service will not cause an error due to policy mismatch
+ASM60025=\
+for an autowire reference with multiplicity 0..1 or 1..1, the SCA runtime MUST wire the reference to one of the set of valid target services chosen from the set in a runtime-dependent fashion
+ASM60026=\
+for an autowire reference with multiplicity 0..n or 1..n, the reference MUST be wired to all of the set of valid target services
+ASM60027=\
+for an autowire reference with multiplicity 0..1 or 0..n, if the SCA runtime finds no valid target service, there is no problem - no services are wired and the SCA runtime MUST NOT raise an error
+ASM60028=\
+for an autowire reference with multiplicity 1..1 or 1..n, if the SCA runtime finds no valid target services an error MUST be raised by the SCA runtime since the reference is intended to be wired
+ASM60030=\
+The @name attribute of an <implementation.composite/> element MUST contain the QName of a composite in the SCA Domain.
+ASM60031=\
+The SCA runtime MUST raise an error if the composite resulting from the inclusion of one composite into another is invalid.
+ASM60032=\
+For a composite used as a component implementation, each composite service offered by the composite MUST promote a component service of a component that is within the composite.
+ASM60033=\
+For a composite used as a component implementation, every component reference of components within the composite with a multiplicity of 1..1 or 1..n MUST be wired or promoted.
+ASM60034=\
+For a composite used as a component implementation, all properties of components within the composite, where the underlying component implementation specifies "mustSupply=true" for the property, MUST either specify a value for the property or source the value from a composite property.
+ASM60035=\
+All the component references promoted by a single composite reference MUST have the same value for @wiredByImpl.
+ASM60036=\
+If the @wiredByImpl attribute is not specified on the composite reference, the default value is "true" if all of the promoted component references have a wiredByImpl value of "true", and the default value is "false" if all the promoted component references have a wiredByImpl value of "false". If the @wiredByImpl attribute is specified, its value MUST be "true" if all of the promoted component references have a wiredByImpl value of "true", and its value MUST be "false" if all the promoted component references have a wiredByImpl value of "false".
+ASM60037=\
+<include/> processing MUST take place before the processing of the @promote attribute of a composite reference is performed.
+ASM60038=\
+<include/> processing MUST take place before the processing of the @promote attribute of a composite service is performed.
+ASM60039=\
+<include/> processing MUST take place before the @source and @target attributes of a wire are resolved.
+ASM60040=\
+A single property element MUST NOT contain both a @type attribute and an @element attribute.
+ASM60041=\
+If the included composite has the value true for the attribute @local then the including composite MUST have the same value for the @local attribute, else it is an error.
+ASM60042=\
+The @name attribute of an include element MUST be the QName of a composite in the SCA Domain.
+ASM60043=\
+The interface declared by the target of a wire MUST be a compatible superset of the interface declared by the source of the wire.
+ASM60044=\
+If the composite reference promotes multiple component references with different multiplicities, there is no default value for the @multiplicity attribute of the composite reference and a value for @multiplicity MUST be specified.
+ASM70001=\
+The constrainingType specifies the services, references and properties that MUST be provided by the implementation of the component to which the constrainingType is attached.
+ASM70002=\
+If the configuration of the component or its implementation does not conform to the constrainingType specified on the component element, the SCA runtime MUST raise an error.
+ASM70003=\
+The @name attribute of the constraining type MUST be unique in the SCA Domain.
+ASM70004=\
+When an implementation is constrained by a constrainingType its component type MUST contain all the services, references and properties specified in the constrainingType.
+ASM70005=\
+An implementation that is constrained by a constrainingType MUST NOT contain additional references with @multiplicity=1..1 or @multiplicity=1..n or additional properties with @mustSupply=true
+ASM70006=\
+Additional services, references and properties provided by the implementation which are not declared in the constrainingType associated with a component MUST NOT be configured in any way by the containing composite.
+ASM70007=\
+When an implementation is constrained by a constrainingType and the constrainingType declares an interface for a service or for a reference, then the component type of the implementation MUST contain a declaration of a compatiible interface for that service or reference.
+ASM80001=\
+The interface.wsdl @interface attribute MUST reference a portType of a WSDL 1.1 document.
+ASM80002=\
+Remotable service Interfaces MUST NOT make use of method or operation overloading.
+ASM80003=\
+If a remotable service is called locally or remotely, the SCA container MUST ensure sure that no modification of input messages by the service or post-invocation modifications to return messages are seen by the caller.
+ASM80004=\
+If a reference is defined using a bidirectional interface element, the client component implementation using the reference calls the referenced service using the interface. The client MUST provide an implementation of the callback interface.
+ASM80005=\
+Either both interfaces of a bidirectional service MUST be remotable, or both MUST be local. A bidirectional service MUST NOT mix local and remote services.
+ASM80008=\
+Any service or reference that uses an interface marked with intents MUST implicitly add those intents to its own @requires list.
+ASM80009=\
+In a bidirectional interface, the service interface can have more than one operation defined, and the callback interface can also have more than one operation defined. SCA runtimes MUST allow an invocation of any operation on the service interface to be followed by zero, one or many invocations of any of the operations on the callback interface.
+ASM80010=\
+Whenever an interface document declaring a callback interface is used in the declaration of an <interface/> element in SCA, it MUST be treated as being bidirectional with the declared callback interface.
+ASM80011=\
+If an <interface/> element references an interface document which declares a callback interface and also itself contains a declaration of a callback interface, the two callback interfaces MUST be compatible.
+ASM80016=\
+The interface.wsdl @callbackInterface attribute, if present, MUST reference a portType of a WSDL 1.1 document.
+ASM80017=\
+WSDL interfaces are always remotable and therefore an <interface.wsdl/> element MUST NOT contain remotable="false".
+ASM90001=\
+For a binding of a reference the @uri attribute defines the target URI of the reference. This MUST be either the componentName/serviceName for a wire to an endpoint within the SCA Domain, or the accessible address of some service endpoint either inside or outside the SCA Domain (where the addressing scheme is defined by the type of the binding).
+ASM90002=\
+When a service or reference has multiple bindings, only one binding can have the default @name value; all others MUST have a @name value specified that is unique within the service or reference.
+ASM90003=\
+If a reference has any bindings, they MUST be resolved, which means that each binding MUST include a value for the @uri attribute or MUST otherwise specify an endpoint. The reference MUST NOT be wired using other SCA mechanisms.
+ ASM90004=\
+To wire to a specific binding of a target service the syntax "componentName/serviceName/bindingName" MUST be used.
+ASM10001=\
+all of the QNames for the definitions contained in definitions.xml files MUST be unique within the Domain.
+ASM10002=\
+An SCA runtime MUST make available to the Domain all the artifacts contained within the definitions.xml files in the Domain.
+ASM10003=\
+An SCA runtime MUST reject a definitions.xml file that does not conform to the sca-definitions.xsd schema.
+ASM12001=\
+For any contribution packaging it MUST be possible to present the artifacts of the packaging to SCA as a hierarchy of resources based off of a single root
+ASM12005=\
+Where present, artifact-related or packaging-related artifact resolution mechanisms MUST be used by the SCA runtime to resolve artifact dependencies.
+ASM12006=\
+SCA requires that all runtimes MUST support the ZIP packaging format for contributions.
+ASM12009=\
+if there is ever a conflict between two indirect dependent contributions, then the conflict MUST be resolved by an explicit entry in the dependent contribution list.
+ASM12010=\
+Where present, non-SCA artifact resolution mechanisms MUST be used by the SCA runtime in precendence to the SCA mechanisms.
+ ASM12011=\
+If one of the non-SCA artifact resolution mechanisms is present, but there is a failure to find the resource indicated when using the mechanism (e.g. the URI is incorrect or invalid, say) the SCA runtime MUST raise an error and MUST NOT attempt to use SCA resolution mechanisms as an alternative.
+ASM12012=\
+The value of @autowire for the logical Domain composite MUST be autowire="false".
+ASM12013=\
+For components at the Domain level, with references for which @autowire="true" applies, the behaviour of the SCA runtime for a given Domain MUST take ONE of the 3 following forms:\
+1) The SCA runtime disallows deployment of any components with autowire references. In this case, the SCA runtime MUST raise an exception at the point where the component is deployed.\
+2) The SCA runtime evaluates the target(s) for the reference at the time that the component is deployed and does not update those targets when later deployment actions occur. \
+3) The SCA runtime re-evaluates the target(s) for the reference dynamically as later deployment actions occur resulting in updated reference targets which match the new Domain configuration. How the reconfiguration of the reference takes place is described by the relevant client and implementation specifications.
+ASM12015=\
+Where components are updated by deployment actions (their configuration is changed in some way, which includes changing the wires of component references), the new configuration MUST apply to all new instances of those components once the update is complete.
+ASM12017=\
+Where a component that is the target of a wire is removed, without the wire being changed, then future invocations of the reference that use that wire SHOULD fail with a ServiceUnavailable fault. If the wire is the result of the autowire process, the SCA runtime MUST:\
+* either cause future invocation of the target component's services to fail with a ServiceUnavailable fault\
+* or alternatively, if an alternative target component is available that satisfies the autowire process, update the reference of the source component
+ASM12020=\
+Where a component is added to the Domain that is a potential target for a domain level component reference where that reference is marked as @autowire=true, the SCA runtime MUST:\
+- either update the references for the source component once the new component is running. \
+- or alternatively, defer the updating of the references of the source component until the source component is stopped and restarted.
+ASM12021=\
+The SCA runtime MUST raise an error if an artifact cannot be resolved using these mechanisms, if present.
+ASM12022=\
+There can be multiple import declarations for a given namespace. Where multiple import declarations are made for the same namespace, all the locations specified MUST be searched in lexical order.
+ASM12023=\
+When a contribution contains a reference to an artifact from a namespace that is declared in an import statement of the contribution, if the SCA artifact resolution mechanism is used to resolve the artifact, the SCA runtime MUST resolve artifacts in the following order:\
+1. from the locations identified by the import statement(s) for the namespace. Locations MUST NOT be searched recursively in order to locate artifacts (i.e. only a one-level search is performed).\
+2. from the contents of the contribution itself.
+ASM12024=\
+The SCA runtime MUST ignore local definitions of an artifact if the artifact is found through resolving an import statement.
+ASM12025=\
+The SCA runtime MUST raise an error if an artifact cannot be resolved by using artifact-related or packaging-related artifact resolution mechanisms, if present, by searching locations identified by the import statements of the contribution, if present, and by searching the contents of the contribution.
+ASM12026=\
+An SCA runtime MUST make the <import/> and <export/> elements found in the META-INF/sca-contribution.xml and META-INF/sca-contribution-generated.xml files available for the SCA artifact resolution process.
+ASM12027=\
+An SCA runtime MUST reject files that do not conform to the schema declared in sca-contribution.xsd.
+ASM12028=\
+An SCA runtime MUST merge the contents of sca-contribution-generated.xml into the contents of sca-contribution.xml, with the entries in sca-contribution.xml taking priority if there are any conflicting declarations.
+ASM12031=\
+When a contribution uses an artifact contained in another contribution through SCA artifact resolution, if that artifact itself has dependencies on other artifacts, the SCA runtime MUST resolve these dependencies in the context of the contribution containing the artifact, not in the context of the original contribution.
+ASM14003=\
+Where errors are only detected at runtime, when the error is detected an error MUST be raised to the component that is attempting the activity concerned with the error.
+
+# C.2 Non-mandatory Items
+ASM60021=\
+For the case of an un-wired reference with multiplicity 1..1 or 1..n the deployment process provided by an SCA runtime SHOULD issue a warning.
+ASM12002=\
+Within any contribution packaging A directory resource SHOULD exist at the root of the hierarchy named META-INF
+ASM12003=\
+Within any contribution packaging a document SHOULD exist directly under the META-INF directory named sca-contribution.xml which lists the SCA Composites within the contribution that are runnable.
+ASM12007=\
+Implementations of SCA MAY also raise an error if there are conflicting names exported from multiple contributions.
+ASM12008=\
+An SCA runtime MAY provide the contribution operation functions (install Contribution, update Contribution, add Deployment Composite, update Deployment Composite, remove Contribution).
+ASM12014=\
+Where <wire/> elements are added, removed or replaced by deployment actions, the components whose references are affected by those deployment actions MAY have their references updated by the SCA runtime dynamically without the need to stop and start those components.
+ASM12016=\
+An SCA runtime MAY choose to maintain existing instances with the old configuration of components updated by deployment actions, but an SCA runtime MAY choose to stop and discard existing instances of those components.
+ASM12018=\
+Where a component that is the target of a wire is updated, future invocations of that reference SHOULD use the updated component.
+ASM12029=\
+An SCA runtime MAY deploy the composites in <deployable/> elements found in the META-INF/sca-contribution.xml and META-INF/sca-contribution-generated.xml files.
+ASM12030=\
+For XML definitions, which are identified by QNames, the @namespace attribute of the export element SHOULD be the namespace URI for the exported definitions.
+ASM14001=\
+An SCA runtime SHOULD detect errors at deployment time where those errors can be found through static analysis.
+ASM14002=\
+The SCA runtime SHOULD prevent deployment of contributions that are in error, and raise the error to the process performing the deployment (e.g. write a message to an interactive console or write a message to a log file).
+ASM14004=\
+When an error that could have been detected through static analysis is detected and raised at runtime for a component, the component SHOULD NOT be run until the error is fixed.