Context-aware services need to acquire context information from heterogeneous context sources. The diversity of service requirements posts challenges on context provisioning systems as well as their programming models. This paper proposes COPAL (COntext Provisioning for ALl) - an adaptive approach to context provisioning. COPAL is at first a runtime middleware, which provides loose-coupling between context and its processing. The component architecture of COPAL ensures that new context processing functions can be added dynamically. A set of context processing patterns are proposed to customize context attributes and compose context provisioning schemes. The COPAL components and models are reflected in a Domain Specific Language (DSL), which can further reduce the development efforts of context provisioning using automatic code generation. A motivating scenario is used throughout the paper to illustrate COPAL approach.