A Component-Based Planning Framework for Adaptive Systems