Hi, I think proxies are a bit problematic. I would prefer the non-proxy version.
Regards, Thomas On 27/03/14 10:41, "Chetan Mehrotra" <chetan.mehro...@gmail.com> wrote: >On Thu, Mar 27, 2014 at 2:30 PM, Julian Reschke <julian.resc...@gmx.de> >wrote: >> I created the first one, and use it occasionally for debugging. (it's >> similar to the Logging*Wrapper. Please do not remove. > >Okie but there already one preset in Util. Are they different? If not >we should keep only one > >> Example? > >Something like >public class SynchronizedDocumentStoreWrapper2 { > > public static DocumentStore create(DocumentStore documentStore){ > return (DocumentStore) Proxy.newProxyInstance( > SynchronizedDocumentStoreWrapper2.class.getClassLoader(), > new Class[] {DocumentStore.class}, > new DocumentStoreProxy(documentStore)); > } > > private static class DocumentStoreProxy implements InvocationHandler { > private final DocumentStore delegate; > private final Object lock = new Object(); > > private DocumentStoreProxy(DocumentStore delegate) { > this.delegate = delegate; > } > > @Override > public Object invoke(Object proxy, Method method, Object[] >args) throws Throwable { > synchronized (lock){ > return method.invoke(delegate, args); > } > } > } >} > >Chetan Mehrotra