svn commit: r1520882 - /commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/AbstractProxyFactoryTestCase.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 17:21:25 2013
New Revision: 1520882

URL: http://svn.apache.org/r1520882
Log:
generics

Modified:

commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/AbstractProxyFactoryTestCase.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/AbstractProxyFactoryTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/AbstractProxyFactoryTestCase.java?rev=1520882&r1=1520881&r2=1520882&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/AbstractProxyFactoryTestCase.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/AbstractProxyFactoryTestCase.java
 Sun Sep  8 17:21:25 2013
@@ -226,11 +226,10 @@ public abstract class AbstractProxyFacto
 proxy.illegalArgument();
 }
 
-@SuppressWarnings("unchecked")
 @Test
 public void testInterfaceHierarchies()
 {
-final SortedSet set = factory.createDelegatorProxy(new 
ConstantProvider(new TreeSet()), SortedSet.class);
+final SortedSet set = factory.createDelegatorProxy(new 
ConstantProvider>(new TreeSet()), SortedSet.class);
 set.add("Hello");
 }
 




svn commit: r1520883 - in /commons/proper/proxy/branches/version-2.0-work/core/src: main/java/org/apache/commons/proxy2/interceptor/ test/java/org/apache/commons/proxy2/interceptor/

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 17:34:06 2013
New Revision: 1520883

URL: http://svn.apache.org/r1520883
Log:
warnings

Modified:

commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ObjectProviderInterceptor.java

commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ThrowingInterceptor.java

commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/interceptor/InterceptorUtilsTest.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ObjectProviderInterceptor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ObjectProviderInterceptor.java?rev=1520883&r1=1520882&r2=1520883&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ObjectProviderInterceptor.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ObjectProviderInterceptor.java
 Sun Sep  8 17:34:06 2013
@@ -28,11 +28,13 @@ import org.apache.commons.proxy2.ObjectP
  */
 public class ObjectProviderInterceptor implements Interceptor
 {
+   private static final long serialVersionUID = 1L;
+
 
//--
 // Fields
 
//--
 
-private final ObjectProvider provider;
+   private final ObjectProvider provider;
 
 
//--
 // Constructors

Modified: 
commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ThrowingInterceptor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ThrowingInterceptor.java?rev=1520883&r1=1520882&r2=1520883&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ThrowingInterceptor.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/core/src/main/java/org/apache/commons/proxy2/interceptor/ThrowingInterceptor.java
 Sun Sep  8 17:34:06 2013
@@ -23,11 +23,13 @@ import org.apache.commons.proxy2.ObjectP
 
 public class ThrowingInterceptor implements Interceptor
 {
+   private static final long serialVersionUID = 1L;
+
 
//--
 // Fields
 
//--
 
-private final ObjectProvider provider;
+   private final ObjectProvider provider;
 
 
//--
 // Constructors

Modified: 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/interceptor/InterceptorUtilsTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/interceptor/InterceptorUtilsTest.java?rev=1520883&r1=1520882&r2=1520883&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/interceptor/InterceptorUtilsTest.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/interceptor/InterceptorUtilsTest.java
 Sun Sep  8 17:34:06 2013
@@ -22,11 +22,8 @@ import org.apache.commons.proxy2.Invocat
 import org.apache.commons.proxy2.provider.ObjectProviderUtils;
 import org.apache.commons.proxy2.util.AbstractTestCase;
 import org.apache.commons.proxy2.util.Echo;
-import org.apache.commons.proxy2.util.MockInvocation;
 import org.junit.Test;
 
-import java.lang.reflect.Method;
-
 import static org.junit.Assert.*;
 
 public class InterceptorUtilsTest extends AbstractTestCase




svn commit: r1520884 - /commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 17:34:37 2013
New Revision: 1520884

URL: http://svn.apache.org/r1520884
Log:
reenable StubInterceptorBuilderTest

Modified:

commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java?rev=1520884&r1=1520883&r2=1520884&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/stub/src/test/java/org/apache/commons/proxy2/stub/StubInterceptorBuilderTest.java
 Sun Sep  8 17:34:37 2013
@@ -18,14 +18,12 @@
 package org.apache.commons.proxy2.stub;
 
 import org.apache.commons.proxy2.Interceptor;
-import org.apache.commons.proxy2.ProxyFactory;
-import org.apache.commons.proxy2.cglib.CglibProxyFactory;
 import org.apache.commons.proxy2.invoker.NullInvoker;
-import org.apache.commons.proxy2.provider.ObjectProviderUtils;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.Arrays;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 
 import static org.junit.Assert.*;
 
@@ -57,43 +55,43 @@ public class StubInterceptorBuilderTest 
 StubInterface.class);
 }
 
-//@Test
-//public void testWithNestedAnnotations()
-//{
-//Interceptor interceptor = builder.trainFor(RetentionWrapper.class, 
new Trainer()
-//{
-//@Override
-//protected void train(RetentionWrapper trainee)
-//{
-//
-//when(trainee.value()).thenStub(new Trainer()
-//{
-//@Override
-//protected void train(Retention trainee)
-//{
-//
when(trainee.value()).thenReturn(RetentionPolicy.RUNTIME);
-//}
-//});
-//}
-//}).build();
-//RetentionWrapper wrapper = 
proxyFactory.createInterceptorProxy(proxyFactory.createInvokerProxy(NullInvoker.INSTANCE),
 interceptor, RetentionWrapper.class);
-//assertNotNull(wrapper.value());
-//assertEquals(RetentionPolicy.RUNTIME, wrapper.value().value());
-//}
-//
-//@Test
-//public void testWithSimpleAnnotations()
-//{
-//Interceptor interceptor = builder.trainFor(Retention.class, new 
Trainer()
-//{
-//@Override
-//protected void train(Retention trainee)
-//{
-//when(trainee.value()).thenReturn(RetentionPolicy.RUNTIME);
-//}
-//}).build();
-//Retention wrapper = 
proxyFactory.createInterceptorProxy(proxyFactory.createInvokerProxy(NullInvoker.INSTANCE),
 interceptor, Retention.class);
-//assertEquals(RetentionPolicy.RUNTIME, wrapper.value());
-//}
+@Test
+public void testWithNestedAnnotations()
+{
+Interceptor interceptor = builder.train(new Trainer()
+{
+@Override
+protected void train(RetentionWrapper trainee)
+{
+
+when(trainee.value()).thenStub(new Trainer()
+{
+@Override
+protected void train(Retention trainee)
+{
+
when(trainee.value()).thenReturn(RetentionPolicy.RUNTIME);
+}
+});
+}
+}).build();
+RetentionWrapper wrapper = 
proxyFactory.createInterceptorProxy(proxyFactory.createInvokerProxy(NullInvoker.INSTANCE),
 interceptor, RetentionWrapper.class);
+assertNotNull(wrapper.value());
+assertEquals(RetentionPolicy.RUNTIME, wrapper.value().value());
+}
+
+@Test
+public void testWithSimpleAnnotations()
+{
+Interceptor interceptor = builder.train(new Trainer()
+{
+@Override
+protected void train(Retention trainee)
+{
+when(trainee.value()).thenReturn(RetentionPolicy.RUNTIME);
+}
+}).build();
+Retention wrapper = 
proxyFactory.createInterceptorProxy(proxyFactory.createInvokerProxy(NullInvoker.INSTANCE),
 interceptor, Retention.class);
+assertEquals(RetentionPolicy.RUNTIME, wrapper.value());
+}
 
 }




svn commit: r1520885 - /commons/proper/proxy/branches/version-2.0-work/pom.xml

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 17:38:50 2013
New Revision: 1520885

URL: http://svn.apache.org/r1520885
Log:
developers/contributors

Modified:
commons/proper/proxy/branches/version-2.0-work/pom.xml

Modified: commons/proper/proxy/branches/version-2.0-work/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/pom.xml?rev=1520885&r1=1520884&r2=1520885&view=diff
==
--- commons/proper/proxy/branches/version-2.0-work/pom.xml (original)
+++ commons/proper/proxy/branches/version-2.0-work/pom.xml Sun Sep  8 17:38:50 
2013
@@ -84,28 +84,28 @@
 Matt Benson
 mben...@apache.org
 
-Claim-jumper
+developer
 
 
 
 
 
 
-Jörg Schaible
-joerg.schai...@gmx.de
+Howard M. Lewis Ship
+hls...@apache.org
 
 
 advisor
 
+http://www.howardlewisship.com/
 
 
-Howard M. Lewis Ship
-hls...@apache.org
+Jörg Schaible
+joerg.schai...@gmx.de
 
 
 advisor
 
-http://www.howardlewisship.com/
 
 
 




svn commit: r1520886 - in /commons/proper/proxy/branches/version-2.0-work: ./ asm4/ asm4/src/ asm4/src/main/ asm4/src/main/java/ asm4/src/main/java/org/ asm4/src/main/java/org/apache/ asm4/src/main/ja

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 17:45:33 2013
New Revision: 1520886

URL: http://svn.apache.org/r1520886
Log:
[PROXY-22] Provide an ASM-based ProxyFactory implementation

Added:
commons/proper/proxy/branches/version-2.0-work/asm4/   (with props)
commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml
commons/proper/proxy/branches/version-2.0-work/asm4/src/
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/resources/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/resources/META-INF/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/resources/META-INF/services/

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory
commons/proper/proxy/branches/version-2.0-work/asm4/src/test/
commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/
commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/org/

commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/org/apache/

commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/org/apache/commons/

commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/org/apache/commons/proxy2/

commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/org/apache/commons/proxy2/asm4/

commons/proper/proxy/branches/version-2.0-work/asm4/src/test/java/org/apache/commons/proxy2/asm4/TestAsm4ProxyFactory.java
Modified:
commons/proper/proxy/branches/version-2.0-work/pom.xml

Propchange: commons/proper/proxy/branches/version-2.0-work/asm4/
--
--- svn:ignore (added)
+++ svn:ignore Sun Sep  8 17:45:33 2013
@@ -0,0 +1,4 @@
+.classpath
+.project
+.settings
+target

Added: commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml?rev=1520886&view=auto
==
--- commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml (added)
+++ commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml Sun Sep  8 
17:45:33 2013
@@ -0,0 +1,54 @@
+
+
+
+http://maven.apache.org/POM/4.0.0";
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+commons-proxy2-parent
+org.apache.commons
+2.0-SNAPSHOT
+
+4.0.0
+
+commons-proxy2-asm4
+Commons Proxy ASM4 Proxies Module
+
+
+${project.groupId}
+commons-proxy2
+${project.version}
+
+
+org.apache.xbean
+xbean-asm4-shaded
+
+
+${project.groupId}
+commons-proxy2
+${project.version}
+test-jar
+test
+
+
+junit
+junit
+test
+
+
+

Added: 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520886&view=auto
==
--- 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 (added)
+++ 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 Sun Sep  8 17:45:33 2013
@@ -0,0 +1,1084 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicabl

svn commit: r1520887 - in /commons/proper/proxy/branches/version-2.0-work: asm4/pom.xml build-tools/pom.xml cglib/pom.xml core/pom.xml javassist/pom.xml jdk/pom.xml pom.xml stub/pom.xml test/pom.xml

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 17:46:34 2013
New Revision: 1520887

URL: http://svn.apache.org/r1520887
Log:
mimetypes

Modified:
commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml   (props 
changed)
commons/proper/proxy/branches/version-2.0-work/build-tools/pom.xml   (props 
changed)
commons/proper/proxy/branches/version-2.0-work/cglib/pom.xml   (props 
changed)
commons/proper/proxy/branches/version-2.0-work/core/pom.xml   (props 
changed)
commons/proper/proxy/branches/version-2.0-work/javassist/pom.xml   (props 
changed)
commons/proper/proxy/branches/version-2.0-work/jdk/pom.xml   (props changed)
commons/proper/proxy/branches/version-2.0-work/pom.xml   (props changed)
commons/proper/proxy/branches/version-2.0-work/stub/pom.xml   (props 
changed)
commons/proper/proxy/branches/version-2.0-work/test/pom.xml   (props 
changed)

Propchange: commons/proper/proxy/branches/version-2.0-work/asm4/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/build-tools/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/cglib/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/core/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/javassist/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/jdk/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/stub/pom.xml
--
svn:mime-type = text/xml

Propchange: commons/proper/proxy/branches/version-2.0-work/test/pom.xml
--
svn:mime-type = text/xml




svn commit: r1520889 - /commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 18:09:03 2013
New Revision: 1520889

URL: http://svn.apache.org/r1520889
Log:
use numbered classnames instead of superclass-based ones

Modified:

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520889&r1=1520888&r2=1520889&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 Sun Sep  8 18:09:03 2013
@@ -45,6 +45,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantLock;
 
 public class ASM4ProxyFactory extends AbstractSubclassingProxyFactory
@@ -69,6 +70,8 @@ public class ASM4ProxyFactory extends Ab
 
 private static class ProxyGenerator extends AbstractProxyClassGenerator 
implements Opcodes
 {
+private static final AtomicInteger CLASS_NUMBER = new AtomicInteger(0);
+private static final String CLASSNAME_PREFIX = "CommonsProxyASM4_";
 private static final String HANDLER_NAME = "__handler";
 private static final ReentrantLock LOCK = new ReentrantLock();
 
@@ -153,17 +156,7 @@ public class ASM4ProxyFactory extends Ab
 
 public static Class createProxy(final Class classToProxy, final 
ClassLoader cl, final Method[] methods, final Class... interfaces)
 {
-return createProxy(classToProxy, cl, 
proxyName(classToProxy.getName()), methods, interfaces);
-}
-
-private static String proxyName(final String name)
-{
-final String proxy = name + "$$CommonsProxy";
-if (!proxy.startsWith("java"))
-{
-return proxy;
-}
-return "org.apache.commons.proxy2.generated." + proxy;
+return createProxy(classToProxy, cl, CLASSNAME_PREFIX + 
CLASS_NUMBER.incrementAndGet(), methods, interfaces);
 }
 
 public static byte[] generateProxy(final Class classToProxy, final 
String proxyName, final Method[] methods, final Class... interfaces) throws 
ProxyFactoryException




svn commit: r1520892 - /commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 18:36:00 2013
New Revision: 1520892

URL: http://svn.apache.org/r1520892
Log:
cache asm4-generated classes; do not defer to JdkProxyFactory for 
interface-only proxies

Modified:

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520892&r1=1520891&r2=1520892&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 Sun Sep  8 18:36:00 2013
@@ -24,6 +24,7 @@ import org.apache.commons.proxy2.ProxyUt
 import org.apache.commons.proxy2.exception.ProxyFactoryException;
 import org.apache.commons.proxy2.impl.AbstractProxyClassGenerator;
 import org.apache.commons.proxy2.impl.AbstractSubclassingProxyFactory;
+import org.apache.commons.proxy2.impl.ProxyClassCache;
 import org.apache.xbean.asm4.ClassWriter;
 import org.apache.xbean.asm4.Label;
 import org.apache.xbean.asm4.MethodVisitor;
@@ -36,36 +37,38 @@ import java.lang.reflect.InvocationHandl
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
-import java.lang.reflect.Proxy;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantLock;
 
 public class ASM4ProxyFactory extends AbstractSubclassingProxyFactory
 {
+   private static final ProxyClassCache PROXY_CLASS_CACHE = new 
ProxyClassCache(new ProxyGenerator());
+
 @Override
 public  T createDelegatorProxy(final ClassLoader classLoader, final 
ObjectProvider delegateProvider, final Class... proxyClasses)
 {
-return ProxyGenerator.newProxyInstance(classLoader, new 
DelegatorInvocationHandler(delegateProvider), proxyClasses);
+return createProxy(classLoader, new 
DelegatorInvocationHandler(delegateProvider), proxyClasses);
 }
 
 @Override
 public  T createInterceptorProxy(final ClassLoader classLoader, final 
Object target, final Interceptor interceptor, final Class... proxyClasses)
 {
-return ProxyGenerator.newProxyInstance(classLoader, new 
InterceptorInvocationHandler(target, interceptor), proxyClasses);
+return createProxy(classLoader, new 
InterceptorInvocationHandler(target, interceptor), proxyClasses);
 }
 
 @Override
 public  T createInvokerProxy(final ClassLoader classLoader, final 
Invoker invoker, final Class... proxyClasses)
 {
-return ProxyGenerator.newProxyInstance(classLoader, new 
InvokerInvocationHandler(invoker), proxyClasses);
+return createProxy(classLoader, new InvokerInvocationHandler(invoker), 
proxyClasses);
+}
+
+private  T createProxy(final ClassLoader classLoader, InvocationHandler 
invocationHandler, final Class... proxyClasses)
+{
+   final Class proxyClass = 
PROXY_CLASS_CACHE.getProxyClass(classLoader, proxyClasses);
+   return ProxyGenerator.constructProxy(proxyClass, invocationHandler);
 }
 
 private static class ProxyGenerator extends AbstractProxyClassGenerator 
implements Opcodes
@@ -75,24 +78,46 @@ public class ASM4ProxyFactory extends Ab
 private static final String HANDLER_NAME = "__handler";
 private static final ReentrantLock LOCK = new ReentrantLock();
 
-public static  T newProxyInstance(final ClassLoader classLoader, 
final InvocationHandler handler, final Class... classes) throws 
ProxyFactoryException
+@Override
+public Class generateProxyClass(final ClassLoader classLoader, 
final Class... proxyClasses)
 {
-try
-{
-final Class superclass = getSuperclass(classes);
-if (superclass == Object.class)
-{
-@SuppressWarnings("unchecked")
-   final T result = (T) 
Proxy.newProxyInstance(classLoader, classes, handler);
-   return result;
-}
-final Class proxyClass = createProxy(superclass, 
classLoader, getImplementationMethods(classes), toInterfaces(classes));
-return constructProxy(proxyClass, handler);
-}
-catch (final Exception e)
-

svn commit: r1520907 - /commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/SuffixInterceptor.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 20:03:30 2013
New Revision: 1520907

URL: http://svn.apache.org/r1520907
Log:
fix

Modified:

commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/SuffixInterceptor.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/SuffixInterceptor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/SuffixInterceptor.java?rev=1520907&r1=1520906&r2=1520907&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/SuffixInterceptor.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/core/src/test/java/org/apache/commons/proxy2/util/SuffixInterceptor.java
 Sun Sep  8 20:03:30 2013
@@ -49,6 +49,11 @@ public class SuffixInterceptor implement
 
 public Object intercept( Invocation methodInvocation ) throws Throwable
 {
-return methodInvocation.proceed() + suffix;
+   Object result = methodInvocation.proceed();
+   if (result instanceof String)
+   {
+   result = ((String) result) + suffix;
+   }
+   return result;
 }
 }




svn commit: r1520911 - /commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 20:08:55 2013
New Revision: 1520911

URL: http://svn.apache.org/r1520911
Log:
get rid of unnecessary locking given cache use

Modified:

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520911&r1=1520910&r2=1520911&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 Sun Sep  8 20:08:55 2013
@@ -41,7 +41,6 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.security.ProtectionDomain;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.locks.ReentrantLock;
 
 public class ASM4ProxyFactory extends AbstractSubclassingProxyFactory
 {
@@ -76,7 +75,6 @@ public class ASM4ProxyFactory extends Ab
 private static final AtomicInteger CLASS_NUMBER = new AtomicInteger(0);
 private static final String CLASSNAME_PREFIX = "CommonsProxyASM4_";
 private static final String HANDLER_NAME = "__handler";
-private static final ReentrantLock LOCK = new ReentrantLock();
 
 @Override
 public Class generateProxyClass(final ClassLoader classLoader, 
final Class... proxyClasses)
@@ -89,25 +87,6 @@ public class ASM4ProxyFactory extends Ab
 
try
{
-   return classLoader.loadClass(proxyName);
-   }
-   catch (Exception e)
-   {
-   // no-op
-   }
-
-   LOCK.lock();
-   try
-   {
-   try
-   { // Try it again, another thread may have beaten 
this one...
-   return classLoader.loadClass(proxyName);
-   }
-   catch (Exception e)
-   {
-   // no-op
-   }
-
final byte[] proxyBytes = generateProxy(superclass, 
classFileName, implementationMethods, interfaces);
return Unsafe.defineClass(classLoader, superclass, 
proxyName, proxyBytes);
}
@@ -115,9 +94,6 @@ public class ASM4ProxyFactory extends Ab
{
throw new ProxyFactoryException(e);
}
-   finally {
-   LOCK.unlock();
-   }
 }
 
 public static  T constructProxy(final Class clazz, final 
java.lang.reflect.InvocationHandler handler) throws IllegalStateException




svn commit: r1520917 - /commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 20:13:56 2013
New Revision: 1520917

URL: http://svn.apache.org/r1520917
Log:
refactoring and scoping

Modified:

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520917&r1=1520916&r2=1520917&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 Sun Sep  8 20:13:56 2013
@@ -67,7 +67,11 @@ public class ASM4ProxyFactory extends Ab
 private  T createProxy(final ClassLoader classLoader, InvocationHandler 
invocationHandler, final Class... proxyClasses)
 {
final Class proxyClass = 
PROXY_CLASS_CACHE.getProxyClass(classLoader, proxyClasses);
-   return ProxyGenerator.constructProxy(proxyClass, invocationHandler);
+   final Object instance = Unsafe.allocateInstance(proxyClass);
+   Unsafe.setValue(ProxyGenerator.getDeclaredField(proxyClass, 
ProxyGenerator.HANDLER_NAME), instance, invocationHandler);
+   @SuppressWarnings("unchecked")
+   final T result = (T) instance;
+   return result;
 }
 
 private static class ProxyGenerator extends AbstractProxyClassGenerator 
implements Opcodes
@@ -96,15 +100,6 @@ public class ASM4ProxyFactory extends Ab
}
 }
 
-public static  T constructProxy(final Class clazz, final 
java.lang.reflect.InvocationHandler handler) throws IllegalStateException
-{
-final Object instance = Unsafe.allocateInstance(clazz);
-Unsafe.setValue(getDeclaredField(clazz, HANDLER_NAME), instance, 
handler);
-@SuppressWarnings("unchecked")
-   final T result = (T) instance;
-   return result;
-}
-
 private static Field getDeclaredField(final Class clazz, final 
String fieldName)
 {
 try
@@ -118,7 +113,7 @@ public class ASM4ProxyFactory extends Ab
 }
 }
 
-public static byte[] generateProxy(final Class classToProxy, final 
String proxyName, final Method[] methods, final Class... interfaces) throws 
ProxyFactoryException
+private static byte[] generateProxy(final Class classToProxy, final 
String proxyName, final Method[] methods, final Class... interfaces) throws 
ProxyFactoryException
 {
 final ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
 
@@ -477,7 +472,7 @@ public class ASM4ProxyFactory extends Ab
 throw new IllegalStateException("Type: " + type.getCanonicalName() 
+ " is not a primitive type");
 }
 
-static String getCastType(final Class returnType)
+private static String getCastType(final Class returnType)
 {
 if (returnType.isPrimitive())
 {
@@ -576,7 +571,7 @@ public class ASM4ProxyFactory extends Ab
 mv.visitTypeInsn(ANEWARRAY, type.getCanonicalName().replace('.', 
'/'));
 }
 
-static String getMethodSignatureAsString(final Class returnType, 
final Class[] parameterTypes)
+private static String getMethodSignatureAsString(final Class 
returnType, final Class[] parameterTypes)
 {
 final StringBuilder builder = new StringBuilder("(");
 for (final Class parameterType : parameterTypes) {
@@ -634,7 +629,7 @@ public class ASM4ProxyFactory extends Ab
 throw new IllegalStateException("Type: " + type.getCanonicalName() 
+ " is not a primitive type");
 }
 
-public static String getAsmTypeAsString(final Class parameterType, 
final boolean wrap)
+private static String getAsmTypeAsString(final Class parameterType, 
final boolean wrap)
 {
 if (parameterType.isArray())
 {
@@ -661,179 +656,6 @@ public class ASM4ProxyFactory extends Ab
 }
 return className.replace('.', '/');
 }
-
-private static class Unsafe
-{
-// sun.misc.Unsafe
-private static final Object unsafe;
-private static final Method defineClass;
-private static final Method allocateInstance;
-private static final Method putObject;
-private static final Method objectFieldOffset;
-
-static
-{
-final Class unsafeClass;
-try {
-unsafeClass = AccessController.doPrivileged(new 
Priv

svn commit: r1520920 - /commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

2013-09-08 Thread mbenson
Author: mbenson
Date: Sun Sep  8 20:24:29 2013
New Revision: 1520920

URL: http://svn.apache.org/r1520920
Log:
no need to visit nonexistent source; proxy2 depends on Java v6 so generate 
classfile for that target

Modified:

commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java

Modified: 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
URL: 
http://svn.apache.org/viewvc/commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java?rev=1520920&r1=1520919&r2=1520920&view=diff
==
--- 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 (original)
+++ 
commons/proper/proxy/branches/version-2.0-work/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
 Sun Sep  8 20:24:29 2013
@@ -128,8 +128,7 @@ public class ASM4ProxyFactory extends Ab
 interfaceNames[i] = anInterface.getName().replace('.', '/');
 }
 
-cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, proxyClassFileName, null, 
classFileName, interfaceNames);
-cw.visitSource(classFileName + ".java", null);
+cw.visit(V1_6, ACC_PUBLIC + ACC_SUPER, proxyClassFileName, null, 
classFileName, interfaceNames);
 
 // push InvocationHandler fields
 cw.visitField(ACC_FINAL + ACC_PRIVATE, HANDLER_NAME, 
"Ljava/lang/reflect/InvocationHandler;", null, null).visitEnd();




svn commit: r1520942 - /commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/Role.java

2013-09-08 Thread olamy
Author: olamy
Date: Mon Sep  9 00:22:01 2013
New Revision: 1520942

URL: http://svn.apache.org/r1520942
Log:
fix equals and use a better toString()

Modified:

commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/Role.java

Modified: 
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/Role.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/Role.java?rev=1520942&r1=1520941&r2=1520942&view=diff
==
--- 
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/Role.java
 (original)
+++ 
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/Role.java
 Mon Sep  9 00:22:01 2013
@@ -34,11 +34,10 @@ public class Role implements Comparable<
 public static final Role PERFORMANCES = new Role("performances", 
NANOSECOND);
 public static final Role FAILURES = new Role("failures", Unit.UNARY);
 
-private String name;
-private Unit unit;
+private final String name;
+private final Unit unit;
 
 public Role(String name, Unit unit) {
-super();
 if (name == null) {
 throw new IllegalArgumentException("A role name is required");
 }
@@ -71,23 +70,25 @@ public class Role implements Comparable<
 return name.hashCode();
 }
 
-/**
- * @see java.lang.Object#equals(java.lang.Object)
- */
 @Override
-public boolean equals(Object obj) {
-if (this == obj)
+public boolean equals( Object o )
+{
+if ( this == o )
+{
 return true;
-if (obj == null)
-return false;
-if (getClass() != obj.getClass())
-return false;
-final Role other = (Role) obj;
-if (name == null && other.name != null) {
+}
+if ( o == null || getClass() != o.getClass() )
+{
 return false;
-} else if (!name.equals(other.name)) {
+}
+
+Role role = (Role) o;
+
+if ( !name.equals( role.name ) )
+{
 return false;
 }
+
 return true;
 }
 
@@ -99,7 +100,12 @@ public class Role implements Comparable<
 }
 
 @Override
-public String toString() {
-return name;
+public String toString()
+{
+final StringBuilder sb = new StringBuilder( "Role{" );
+sb.append( "name='" ).append( name ).append( '\'' );
+sb.append( ", unit=" ).append( unit );
+sb.append( '}' );
+return sb.toString();
 }
 }




svn commit: r1520949 - /commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java

2013-09-08 Thread olamy
Author: olamy
Date: Mon Sep  9 01:25:15 2013
New Revision: 1520949

URL: http://svn.apache.org/r1520949
Log:
make those fields private as they are exposed via getter

Modified:

commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java

Modified: 
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java?rev=1520949&r1=1520948&r2=1520949&view=diff
==
--- 
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java
 (original)
+++ 
commons/sandbox/monitoring/trunk/core/src/main/java/org/apache/commons/monitoring/counters/DefaultCounter.java
 Mon Sep  9 01:25:15 2013
@@ -28,8 +28,8 @@ public class DefaultCounter implements C
 private final Key key;
 private final DataStore dataStore;
 private volatile int maxConcurrency = 0;
-protected SummaryStatistics statistics;
-protected Lock lock = new ReentrantLock();
+private SummaryStatistics statistics;
+private Lock lock = new ReentrantLock();
 
 public DefaultCounter(final Key key, final DataStore store) {
 this.key = key;