The SDO spec makes extensive use of INSTANCE static fields on the helper interfaces which results in a solution that is complex to use and error prone in any environment where more than one ClassLoader is involved.
We should work with the spec group to formulate a model that is easier for people to use in today's more complex environments (including build frameworks like Maven and Ant, IDE environments like Eclipse, server environments like Tomcat and Geronimo, application frameworks like Spring, etc. etc.). I will open a sub-task specfically for this.
We should also ensure that the Tuscany implementation of SDO is easy to use in these environments irrespective of what the spec says. We need to define a set of APIs that make it easy to handle multiple type spaces in the same JVM and/or ClassLoader without requiring the user to play tricks with the Thread's context classloader (which they may not even have permission to do). We should also ensure any usage of SDO by the SCA runtime uses these APIs, reserving the default SDO type space for user applications.