+
+ /**
+ * We store a map of unique ids of invocation handlers to thread local storage of the
+ * service. In this way, serialiability of the generated proxy is obtained (required by
+ * framweorks such as wicket). Also, different factories will still be separate and never
+ * use the same threadlocal storage.
+ */
+ private static Map<String,ThreadLocal> STORAGE =
+ initializeThreadLocal();
+
+ private static class ThreadSpecificInvocationHandler<T> implements InvocationHandler, Serializable {
+
+ private String id;
+ private Class clazz;
+
+ public ThreadSpecificInvocationHandler(String aId, Class aClass) {
+ id = aId;
+ clazz = aClass;
+ }