X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fgeneral%2FThreadSpecificProxyFactory.java;h=db51ba1c84f5733865a76507a8606434f7f2f70a;hb=26805fc0810098c4bd8009a35c8719478e74153e;hp=ce912ef37b53b6c54dd8a51717f6cced462991e5;hpb=cf27297e26634b35e87563e7794f9d76d730833a;p=utils diff --git a/support/general/src/main/java/org/wamblee/general/ThreadSpecificProxyFactory.java b/support/general/src/main/java/org/wamblee/general/ThreadSpecificProxyFactory.java index ce912ef3..db51ba1c 100644 --- a/support/general/src/main/java/org/wamblee/general/ThreadSpecificProxyFactory.java +++ b/support/general/src/main/java/org/wamblee/general/ThreadSpecificProxyFactory.java @@ -19,24 +19,34 @@ import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; /** + *

* Thread-specific proxy is used to create implementations of interfaces that * delegate to a thread-specific implementation of the service. + *

* + *

* It can be used for instance to create a contextual reference to an entity * manager that delegates to a thread-specific instance. + *

* + *

* The {@link #set(Object)} method sets the current service instance for the * current thread. The {@link #get()} method gets the current service instance * for the current thread. The {@link #getProxy()} method gets a proxy that will * delegate at runtime to the thread-specific instance. The result from this * method can be passed at construction of an object that will be used by * multiple threads. + *

* + *

* This class is mostly used by infrastructure code (utilities) and test tools. + *

* + *

* Care has been taken so that the invocation handler is serializable. However, * it is only serializable within one virtual machine. It cannot be used in a * distributed context where it can be sent to another JVM. + *

* * @param T * Interface to proxy. @@ -76,8 +86,8 @@ public class ThreadSpecificProxyFactory { } /** - * Constructs the factory with a callback to create thread-specific objects - * automatically. + * Constructs the factory with a callback to create thread-specific objects + * automatically. * * @param aClass * Interface class of the service to proxy. @@ -94,10 +104,10 @@ public class ThreadSpecificProxyFactory { svc = new ThreadLocal() { @Override protected T initialValue() { - if ( aCallback != null ) { + if (aCallback != null) { return aCallback.create(); } - return null; + return null; } }; clazz = aClass;