-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Spec
-
Labels:None
-
Proposal:
-
Resolution:
As of PR2, CAMP is silent about any characteristics that might appear in the 'characteristics' array of a ServiceSpecification. Although we can't know all the aspects that might be used to characterize various services, we do know that all services have a version and that this version is usually important to consumers of that service. Experience has shown that Consumers often want to specify things like "this artifact requires version 2.3 of this service or greater" or "this artifact works with any 2.x version (but not 1.x nor 3.x)". If we force every CAMP Provider to independently implement versions themselves, the chance of any two Providers implementing the same syntax and semantic is small. This guarantees that Plans will not be portable across CAMP implementations.
Maven's version ranges are suitable for matching and well proven.
http://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html
<major_version>.<minor_version>.<fix_version>[.<qualifier>[-<build_version] ]
• major_version: is a required integer value greater than or equal to 0 (zero)
• minor_version: is a required integer value greater than or equal to 0 (zero).
• fix_version: is a required integer value greater than or equal to 0 (zero).
• qualifier: is an optional string that indicates a named, pre-release version of the associated code that has been derived from the version of the code identified by the combination major_version, minor_version and fix_version numbers.
• build_version: is an optional integer value greater than or equal to 0 (zero) that can be used to further qualify different build versions of the code that has the same qualifer_string.