Contribution Preparation
Description:
Helps prepare contributions/composites for running across the nodes in a domain. Steps here could all be done manually by editing of the individual composite files.
input:
run the workplace
add contributions
steps:
- add/list/remove contributions/composites/nodes
- analyze/resolve/validate contributions and their dependencies
- include composite (from the contributions above) in a domain
- A matter of selecting which composites will be top level composites in the domain
- associate composites with nodes/apply physical binding defaults/propagate physical addresses based on domain level wiring
- Get contributions - hoping this is all done by previous steps
- For each contribution included
- Find all artifacts in the contribution
- Read each artifact and create a model (apart from composites which are done later)
- Enhance model with policy information
- resolve models against artifacts from contribution and its dependencies (not sure I need this)
- Read in node model - which provides
- Mapping of composite to node
- Default configuration of bindings at that node, e.g. the root URL required for binding.ws
- Get contributions - hoping this is all done by previous steps
- read/compile-build/write composites without requiring a runtime
output:
contributions/composites configured for running on nodes
Node Start
input:
run the node.exe
steps:
Load extensions
create runtime artifacts (builders, activators etc)
Load definitions.xml
output
running node awaiting contribution/composite to run
Process Contribution
input:
a contribution jar or file system directory
steps:
Contribution Read
- Find all artifacts in the contribution
- Read each artifact and create a model (apart from composites which are done later)
- Aggregate all definitions.xml files
- Read composites
- Enhance composite with policy sets based on appliesTo information
- For each composite file read the xml content first...
- For each policyset in the domain...
- Extract the value of 'appliesTo' attribute with is an xpath expression
- Evaluate this expression against the composite xml
- For each node that results out of the above evaluation
- if the node contains an attribute named 'applicablePolicySets'
- concatenate to its value, the name of the PolicySet
- else
- create an attribute named 'applicablePolicySet' and set its value to the name of the PolicySet
- if the node contains an attribute named 'applicablePolicySets'
- For each policyset in the domain...
- For each composite file read the xml content first...
- Wherever applicable the composite's elements will have the additional attribute name 'applicablePolicySets'.
- Parse composites into in memory assembly model
Contribution Resolution
- resolve the contribution models against the physical artifacts available in the contribution.
output:
a contribution model in memory containing composite assembly models in memory