Context-Aware Adaptation in an Ecology of Applications