Author: cschneider Date: Wed Jan 11 12:32:28 2017 New Revision: 1778286 URL: http://svn.apache.org/viewvc?rev=1778286&view=rev Log: [ARIES-1657] Make proxy impl indepdenent of aries util
Added: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ClassLoaderProxy.java - copied, changed from r1778164, aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/ClassLoaderProxy.java Removed: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/NLS.java aries/trunk/proxy/proxy-impl/src/main/resources/org/apache/aries/proxy/nls/ProxyImplMessages.properties aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/ClassLoaderProxy.java Modified: aries/trunk/proxy/proxy-impl/pom.xml aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/JdkProxyManager.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyManagerActivator.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassWriter.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ProxyClassLoader.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/ProxyWeavingHook.java aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/InterfaceProxyingTest.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxySubclassGeneratorTest.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassInnerClasses.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializable.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableChild.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableInterface.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuper.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuperWithNoDefaultOrProtectedAccess.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyGeneratorTest.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyPlusSubclassGeneratorTest.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenSubclassGeneratorTest.java aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java aries/trunk/proxy/proxy-itests/pom.xml aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractWeavingProxyTest.java Modified: aries/trunk/proxy/proxy-impl/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/pom.xml?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/pom.xml (original) +++ aries/trunk/proxy/proxy-impl/pom.xml Wed Jan 11 12:32:28 2017 @@ -78,7 +78,7 @@ <dependency> <groupId>org.apache.aries.proxy</groupId> <artifactId>org.apache.aries.proxy.api</artifactId> - <version>1.0.0</version> + <version>1.1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> @@ -103,6 +103,12 @@ </dependency> <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-io</artifactId> + <version>1.3.2</version> + <scope>test</scope> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <scope>test</scope> Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/AbstractProxyManager.java Wed Jan 11 12:32:28 2017 @@ -18,6 +18,8 @@ */ package org.apache.aries.proxy.impl; +import static java.lang.String.format; + import java.lang.reflect.Constructor; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; @@ -28,8 +30,8 @@ import org.apache.aries.proxy.Invocation import org.apache.aries.proxy.ProxyManager; import org.apache.aries.proxy.UnableToProxyException; import org.apache.aries.proxy.weaving.WovenProxy; -import org.apache.aries.util.AriesFrameworkUtil; import org.osgi.framework.Bundle; +import org.osgi.framework.wiring.BundleWiring; public abstract class AbstractProxyManager implements ProxyManager { @@ -60,7 +62,7 @@ public abstract class AbstractProxyManag throws UnableToProxyException { if(dispatcher == null) - throw new NullPointerException(NLS.MESSAGES.getMessage("no.dispatcher")); + throw new NullPointerException("You must specify a dipatcher"); if (template instanceof WovenProxy) { WovenProxy proxy = ((WovenProxy) template). @@ -118,7 +120,8 @@ public abstract class AbstractProxyManag protected synchronized ClassLoader getClassLoader(final Bundle clientBundle, Collection<Class<?>> classes) { if (clientBundle != null && clientBundle.getState() == Bundle.UNINSTALLED) { - throw new IllegalStateException(NLS.MESSAGES.getMessage("bundle.uninstalled", clientBundle.getSymbolicName(), clientBundle.getVersion(), clientBundle.getBundleId())); + throw new IllegalStateException(format("The bundle %s at version %s with id %d has been uninstalled.", + clientBundle.getSymbolicName(), clientBundle.getVersion(), clientBundle.getBundleId())); } ClassLoader cl = null; @@ -126,13 +129,17 @@ public abstract class AbstractProxyManag if (classes.size() == 1) cl = classes.iterator().next().getClassLoader(); if (cl == null) { - // First of all see if the AriesFrameworkUtil can get the classloader, if it can we go with that. - cl = AriesFrameworkUtil.getClassLoaderForced(clientBundle); + cl = getWiringClassloader(clientBundle); } return cl; } + private ClassLoader getWiringClassloader(final Bundle bundle) { + BundleWiring wiring = bundle != null ? bundle.adapt(BundleWiring.class) : null; + return wiring != null ? wiring.getClassLoader() : null; + } + private Object duplicateProxy(Collection<Class<?>> classes, Callable<Object> dispatcher, Object template, InvocationListener listener) { Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/JdkProxyManager.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/JdkProxyManager.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/JdkProxyManager.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/JdkProxyManager.java Wed Jan 11 12:32:28 2017 @@ -40,7 +40,7 @@ public final class JdkProxyManager exten { for (Class<?> clazz : classes) { if (!!!clazz.isInterface()) { - throw new UnableToProxyException(clazz, NLS.MESSAGES.getMessage("class.is.class", clazz.getName())); + throw new UnableToProxyException(clazz, String.format("The class %s is not an interface and therefore a proxy cannot be generated.", clazz.getName())); } } return (Class[]) classes.toArray(new Class[classes.size()]); Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyManagerActivator.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyManagerActivator.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyManagerActivator.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/ProxyManagerActivator.java Wed Jan 11 12:32:28 2017 @@ -28,6 +28,7 @@ public class ProxyManagerActivator imple { private static final boolean ASM_PROXY_SUPPORTED; private AbstractProxyManager managerService; + @SuppressWarnings("rawtypes") private ServiceRegistration registration; static Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyAdapter.java Wed Jan 11 12:32:28 2017 @@ -18,6 +18,7 @@ */ package org.apache.aries.proxy.impl.common; +import static java.lang.String.format; import static org.apache.aries.proxy.impl.ProxyUtils.JAVA_CLASS_VERSION; import java.io.IOException; @@ -36,7 +37,6 @@ import java.util.concurrent.Callable; import org.apache.aries.proxy.InvocationListener; import org.apache.aries.proxy.UnableToProxyException; -import org.apache.aries.proxy.impl.NLS; import org.apache.aries.proxy.impl.SystemModuleClassLoader; import org.apache.aries.proxy.impl.gen.Constants; import org.apache.aries.proxy.weaving.WovenProxy; @@ -280,10 +280,16 @@ public abstract class AbstractWovenProxy // should stop weaving and fail. Make sure we don't cause the hook to // throw an error though. UnableToProxyException u = new UnableToProxyException(name, e); - throw new RuntimeException(NLS.MESSAGES.getMessage("cannot.load.superclass", superName.replace('/', '.'), typeBeingWoven.getClassName()), u); + cannotLoadSuperClassException(superName, u); } } + private void cannotLoadSuperClassException(String superName, UnableToProxyException u) { + String msg = format("Unable to load the super type %s for class %s.", + superName.replace('/', '.'), typeBeingWoven.getClassName()); + throw new RuntimeException(msg, u); + } + /** * This method allows us to determine whether a superclass has a * non-private no-args constructor without causing it to initialize. @@ -304,7 +310,7 @@ public abstract class AbstractWovenProxy new ClassReader(is).accept(cf, ClassReader.SKIP_FRAMES + ClassReader.SKIP_DEBUG + ClassReader.SKIP_CODE); } catch (IOException ioe) { UnableToProxyException u = new UnableToProxyException(name, ioe); - throw new RuntimeException(NLS.MESSAGES.getMessage("cannot.load.superclass", superName.replace('/', '.'), typeBeingWoven.getClassName()), u); + cannotLoadSuperClassException(superName, u); } return cf.hasNoArgsConstructor(); } @@ -394,8 +400,9 @@ public abstract class AbstractWovenProxy readClass(c, new MethodCopyingClassAdapter(this, loader, c, typeBeingWoven, getKnownMethods(), transformedMethods)); } catch (IOException e) { - // This should never happen! <= famous last words (not) - throw new RuntimeException(NLS.MESSAGES.getMessage("unexpected.error.processing.class", c.getName(), typeBeingWoven.getClassName()), e); + String msg = format("Unexpected error processing %s when weaving %s.", + c.getName(), typeBeingWoven.getClassName()); + throw new RuntimeException(msg, e); } } // If we need to implement woven proxy in this class then write the methods @@ -549,7 +556,8 @@ public abstract class AbstractWovenProxy methodAdapter.invokeConstructor(typeBeingWoven, NO_ARGS_CONSTRUCTOR); else throw new RuntimeException(new UnableToProxyException(typeBeingWoven.getClassName(), - NLS.MESSAGES.getMessage("type.lacking.no.arg.constructor", typeBeingWoven.getClassName(), superType.getClassName()))); + String.format("The class %s and its superclass %s do not have no-args constructors and cannot be woven.", + typeBeingWoven.getClassName(), superType.getClassName()))); } methodAdapter.loadThis(); methodAdapter.loadArg(0); Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/AbstractWovenProxyMethodAdapter.java Wed Jan 11 12:32:28 2017 @@ -18,6 +18,7 @@ */ package org.apache.aries.proxy.impl.common; +import static java.lang.String.format; import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.DISPATCHER_FIELD; import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.DISPATCHER_TYPE; import static org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter.LISTENER_FIELD; @@ -34,13 +35,13 @@ import static org.objectweb.asm.Opcodes. import java.util.Arrays; import org.apache.aries.proxy.InvocationListener; -import org.apache.aries.proxy.impl.NLS; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import org.objectweb.asm.commons.GeneratorAdapter; import org.objectweb.asm.commons.Method; + /** * This class weaves dispatch and listener code into a method, there are two known * subclasses {@link WovenProxyConcreteMethodAdapter} is used for weaving instance methods @@ -477,7 +478,8 @@ public abstract class AbstractWovenProxy ilMethod = clazz.getMethod(name, argTypes); } catch (Exception e) { //Should be impossible! - throw new RuntimeException(NLS.MESSAGES.getMessage("error.finding.invocation.listener.method", name, Arrays.toString(argTypes)), e); + throw new RuntimeException(format("Error finding InvocationListener method %s with argument types %s.", + name, Arrays.toString(argTypes)), e); } //get the ASM method return new Method(name, Type.getReturnType(ilMethod), Type.getArgumentTypes(ilMethod)); Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/MethodCopyingClassAdapter.java Wed Jan 11 12:32:28 2017 @@ -18,12 +18,13 @@ */ package org.apache.aries.proxy.impl.common; +import static java.lang.String.format; + import java.util.Map; import java.util.Set; import org.apache.aries.proxy.FinalModifierException; import org.apache.aries.proxy.UnableToProxyException; -import org.apache.aries.proxy.impl.NLS; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.Attribute; import org.objectweb.asm.ClassReader; @@ -115,9 +116,9 @@ final class MethodCopyingClassAdapter ex // We can't call up to a default access method if we aren't in the same // package if((access & (ACC_PUBLIC | ACC_PROTECTED | ACC_PRIVATE)) == 0) { - if(!!!samePackage) - throw new RuntimeException(NLS.MESSAGES.getMessage("method.from.superclass.is.hidden", name, superToCopy.getName(), overridingClassType.getClassName()), - new UnableToProxyException(superToCopy)); + if(!!!samePackage) { + methodHiddenException(name); + } } //Safe to copy a call to this method! Type superType = Type.getType(superToCopy); @@ -140,9 +141,9 @@ final class MethodCopyingClassAdapter ex //odd, but if class Super has a protected method foo(), then class Sub, that extends Super, cannot //call ((Super)o).foo() in code (it can call super.foo()). If we are in the same package then this //gets around the problem, but if not the class will fail verification. - if(!samePackage && (access & ACC_PROTECTED) != 0) - throw new RuntimeException(NLS.MESSAGES.getMessage("method.from.superclass.is.hidden", name, superToCopy.getName(), overridingClassType.getClassName()), - new UnableToProxyException(superToCopy)); + if(!samePackage && (access & ACC_PROTECTED) != 0) { + methodHiddenException(name); + } mv = new CopyingMethodAdapter((GeneratorAdapter) weaver, superType, currentTransformMethod); } else { @@ -154,6 +155,13 @@ final class MethodCopyingClassAdapter ex return mv; } + +private void methodHiddenException(String name) { + String msg = format("The method %s in class %s cannot be called by %s because it is in a different package.", + name, superToCopy.getName(), overridingClassType.getClassName()); + throw new RuntimeException(msg, + new UnableToProxyException(superToCopy)); +} /** * This class is used to prevent any method body being copied, instead replacing Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassWriter.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassWriter.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassWriter.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/common/OSGiFriendlyClassWriter.java Wed Jan 11 12:32:28 2017 @@ -24,7 +24,6 @@ import java.util.HashSet; import java.util.Set; import org.apache.aries.proxy.UnableToProxyException; -import org.apache.aries.proxy.impl.NLS; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; /** @@ -115,10 +114,11 @@ public final class OSGiFriendlyClassWrit } } + String msg = String.format("The class %s and %s do not have a common super class.", arg0, arg1); if (unable == null) { - throw new RuntimeException(NLS.MESSAGES.getMessage("no.common.superclass", arg0, arg1)); + throw new RuntimeException(msg); } else { - throw new RuntimeException(new UnableToProxyException(unable, NLS.MESSAGES.getMessage("no.common.superclass", arg0, arg1))); + throw new RuntimeException(new UnableToProxyException(unable, msg)); } } catch (IOException e) { throw new RuntimeException(e); Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassAdapter.java Wed Jan 11 12:32:28 2017 @@ -22,9 +22,7 @@ import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Modifier; -import org.apache.aries.proxy.impl.NLS; import org.apache.aries.proxy.impl.ProxyUtils; import org.apache.aries.proxy.impl.SystemModuleClassLoader; import org.objectweb.asm.AnnotationVisitor; Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/gen/ProxySubclassGenerator.java Wed Jan 11 12:32:28 2017 @@ -37,7 +37,6 @@ import java.util.concurrent.ConcurrentMa import org.apache.aries.proxy.FinalModifierException; import org.apache.aries.proxy.UnableToProxyException; -import org.apache.aries.proxy.impl.NLS; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; @@ -46,6 +45,7 @@ import org.slf4j.LoggerFactory; import sun.reflect.ReflectionFactory; +@SuppressWarnings("restriction") public class ProxySubclassGenerator { @@ -196,7 +196,8 @@ public class ProxySubclassGenerator LOGGER.debug(Constants.LOG_EXCEPTION, iae); throw new ProxyClassInstantiationException(classToProxy, iae); } catch (VerifyError ve) { - LOGGER.info(NLS.MESSAGES.getMessage("no.nonprivate.noargs.constructor", classToProxy)); + LOGGER.info(String.format("The no-argument constructor of class %s is private and therefore it may not be possible to generate a valid proxy.", + classToProxy)); LOGGER.debug(Constants.LOG_EXCEPTION, ve); throw new ProxyClassInstantiationException(classToProxy, ve); } Copied: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ClassLoaderProxy.java (from r1778164, aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/ClassLoaderProxy.java) URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ClassLoaderProxy.java?p2=aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ClassLoaderProxy.java&p1=aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/ClassLoaderProxy.java&r1=1778164&r2=1778286&rev=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/ClassLoaderProxy.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ClassLoaderProxy.java Wed Jan 11 12:32:28 2017 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.util; +package org.apache.aries.proxy.impl.interfaces; public interface ClassLoaderProxy { ClassLoader getClassLoader(); Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ProxyClassLoader.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ProxyClassLoader.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ProxyClassLoader.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/interfaces/ProxyClassLoader.java Wed Jan 11 12:32:28 2017 @@ -37,8 +37,8 @@ import org.apache.aries.proxy.Invocation import org.apache.aries.proxy.UnableToProxyException; import org.apache.aries.proxy.impl.common.AbstractWovenProxyAdapter; import org.apache.aries.proxy.weaving.WovenProxy; -import org.apache.aries.util.AriesFrameworkUtil; import org.osgi.framework.Bundle; +import org.osgi.framework.wiring.BundleWiring; /** An implementation of ClassLoader that will be used to define our proxy class */ final class ProxyClassLoader extends ClassLoader { @@ -63,7 +63,15 @@ final class ProxyClassLoader extends Cla private final ReadWriteLock ifacesLock = new ReentrantReadWriteLock(); public ProxyClassLoader(Bundle bundle) { - super(AriesFrameworkUtil.getClassLoader(bundle)); +// super(AriesFrameworkUtil.getClassLoader(bundle)); + super(getClassloader(bundle)); + } + + private static ClassLoader getClassloader(Bundle bundle) { + if (bundle == null) return ProxyClassLoader.class.getClassLoader(); + if (bundle instanceof ClassLoaderProxy) return ((ClassLoaderProxy) bundle).getClassLoader(); + BundleWiring wiring = bundle != null ? bundle.adapt(BundleWiring.class) : null; + return wiring != null ? wiring.getClassLoader() : null; } @Override Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/ProxyWeavingHook.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/ProxyWeavingHook.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/ProxyWeavingHook.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/impl/weaving/ProxyWeavingHook.java Wed Jan 11 12:32:28 2017 @@ -18,6 +18,8 @@ */ package org.apache.aries.proxy.impl.weaving; +import static java.lang.String.format; + import java.util.ArrayList; import java.util.Dictionary; import java.util.Hashtable; @@ -25,7 +27,6 @@ import java.util.List; import java.util.regex.Pattern; import org.apache.aries.proxy.UnableToProxyException; -import org.apache.aries.proxy.impl.NLS; import org.apache.aries.proxy.weaving.WovenProxy; import org.apache.aries.proxy.weavinghook.ProxyWeavingController; import org.apache.aries.proxy.weavinghook.WeavingHelper; @@ -60,9 +61,13 @@ public final class ProxyWeavingHook impl private final List<Pattern> enabled; private final List<Pattern> disabled; + @SuppressWarnings("rawtypes") private final ServiceTracker controllers; - public ProxyWeavingHook(BundleContext context) { + @SuppressWarnings({ + "unchecked", "rawtypes" +}) +public ProxyWeavingHook(BundleContext context) { String enabledProp = context != null ? context.getProperty(WEAVING_ENABLED_CLASSES) : null; enabled = parseMatchers(enabledProp, WEAVING_ENABLED_CLASSES_DEFAULT); disabled = parseMatchers(context != null ? context.getProperty(WEAVING_DISABLED_CLASSES) : null, WEAVING_DISABLED_CLASSES_DEFAULT); @@ -109,12 +114,10 @@ public final class ProxyWeavingHook impl e.getCause() instanceof UnableToProxyException){ //This is a weaving failure that should be logged, but the class //can still be loaded - LOGGER.trace(NLS.MESSAGES.getMessage("cannot.weave", wovenClass.getClassName()), e); + LOGGER.trace(String.format("The class %s cannot be woven, it may not be possible for the runtime to proxy this class.", + wovenClass.getClassName()), e); } else { - String failureMessage = NLS.MESSAGES.getMessage("fatal.weaving.failure", wovenClass.getClassName()); - //This is a failure that should stop the class loading! - LOGGER.error(failureMessage, e); - throw new WeavingException(failureMessage, e); + throw weavingException(wovenClass, e); } } @@ -127,6 +130,7 @@ public final class ProxyWeavingHook impl } } + private List<Pattern> parseMatchers(String matchers, String def) { String[] strings = (matchers != null ? matchers : def).split(","); List<Pattern> patterns = new ArrayList<Pattern>(); @@ -172,10 +176,7 @@ public final class ProxyWeavingHook impl wovenClass.getBundleWiring().getClassLoader()); return WovenProxy.class.isAssignableFrom(superClass); } catch (ClassNotFoundException e) { - String failureMessage = NLS.MESSAGES.getMessage("fatal.weaving.failure", wovenClass.getClassName()); - //This is a failure that should stop the class loading! - LOGGER.error(failureMessage, e); - throw new WeavingException(failureMessage, e); + throw weavingException(wovenClass, e); } } @@ -201,4 +202,11 @@ public final class ProxyWeavingHook impl return result; } + private WeavingException weavingException(WovenClass wovenClass, Exception e) { + String msg = format("There was a serious error trying to weave the class %s. See the associated exception for more information.", + wovenClass.getClassName()); + // This is a failure that should stop the class loading! + LOGGER.error(msg, e); + return new WeavingException(msg, e); + } } \ No newline at end of file Modified: aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java (original) +++ aries/trunk/proxy/proxy-impl/src/main/java/org/apache/aries/proxy/synthesizer/Synthesizer.java Wed Jan 11 12:32:28 2017 @@ -63,7 +63,6 @@ public class Synthesizer //using the writer we created as the visitor reader.accept(cv, 0); } finally { - //close the InputStream if it is hanging around if (classInStream != null) classInStream.close(); } FileOutputStream classOutStream = null; Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/InterfaceProxyingTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/InterfaceProxyingTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/InterfaceProxyingTest.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/InterfaceProxyingTest.java Wed Jan 11 12:32:28 2017 @@ -27,7 +27,6 @@ import static org.junit.Assert.fail; import java.io.ByteArrayOutputStream; import java.io.Closeable; -import java.io.File; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; @@ -40,18 +39,18 @@ import java.util.concurrent.Callable; import org.apache.aries.blueprint.proxy.AbstractProxyTest.TestListener; import org.apache.aries.mocks.BundleMock; +import org.apache.aries.proxy.impl.interfaces.ClassLoaderProxy; import org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator; import org.apache.aries.unittest.mocks.MethodCall; import org.apache.aries.unittest.mocks.Skeleton; -import org.apache.aries.util.ClassLoaderProxy; import org.junit.Before; import org.junit.Test; import org.osgi.framework.Bundle; import org.osgi.framework.BundleException; -import org.osgi.framework.wiring.BundleRevision; import org.osgi.framework.wiring.BundleWiring; +@SuppressWarnings("unchecked") public class InterfaceProxyingTest { public final static class TestCallable implements Callable<Object> { @@ -116,8 +115,7 @@ public class InterfaceProxyingTest { @Test public void testGetProxyInstance2() throws Exception{ - Collection<Class<?>> classes = new ArrayList<Class<?>>(Arrays.asList(Closeable.class, - Iterable.class, Map.class)); + Collection<Class<? extends Object>> classes = Arrays.asList(Closeable.class, Iterable.class, Map.class); Object o = InterfaceProxyGenerator.getProxyInstance(testBundle, null, classes, constantly(null), null); @@ -137,7 +135,7 @@ public class InterfaceProxyingTest { TestListener tl = new TestListener(); TestCallable tc = new TestCallable(); - Callable o = (Callable) InterfaceProxyGenerator.getProxyInstance(testBundle, + Callable<Object> o = (Callable<Object>) InterfaceProxyGenerator.getProxyInstance(testBundle, null, classes, tc, tl); assertCalled(tl, false, false, false); @@ -213,7 +211,7 @@ public class InterfaceProxyingTest { assertTrue(o instanceof Callable); - assertEquals(5, ((Callable)o).call()); + assertEquals(5, ((Callable<Object>)o).call()); } @Test Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxySubclassGeneratorTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxySubclassGeneratorTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxySubclassGeneratorTest.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxySubclassGeneratorTest.java Wed Jan 11 12:32:28 2017 @@ -48,7 +48,7 @@ import org.apache.aries.proxy.impl.Proxy import org.apache.aries.proxy.impl.SingleInstanceDispatcher; import org.apache.aries.proxy.impl.gen.ProxySubclassGenerator; import org.apache.aries.proxy.impl.gen.ProxySubclassMethodHashSet; -import org.apache.aries.util.io.IOUtils; +import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Test; @@ -257,7 +257,8 @@ public class ProxySubclassGeneratorTest super.testGenerics(); } - @Test + @SuppressWarnings("unchecked") +@Test public void testClassLoaders() throws Exception { ClassLoader clA = new LimitedClassLoader("org.apache.aries.proxy.test.a", null, null); ClassLoader clB = new LimitedClassLoader("org.apache.aries.proxy.test.b", "org.apache.aries.proxy.test.a", clA); Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassInnerClasses.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassInnerClasses.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassInnerClasses.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassInnerClasses.java Wed Jan 11 12:32:28 2017 @@ -18,7 +18,6 @@ */ package org.apache.aries.blueprint.proxy; -import java.lang.reflect.Proxy; public class ProxyTestClassInnerClasses { Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializable.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializable.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializable.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializable.java Wed Jan 11 12:32:28 2017 @@ -24,6 +24,7 @@ import java.io.ByteArrayInputStream; import java.io.ObjectInputStream; import java.io.Serializable; +@SuppressWarnings("serial") public class ProxyTestClassSerializable implements Serializable { public int value = 0; Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableChild.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableChild.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableChild.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableChild.java Wed Jan 11 12:32:28 2017 @@ -18,6 +18,7 @@ */ package org.apache.aries.blueprint.proxy; +@SuppressWarnings("serial") public class ProxyTestClassSerializableChild extends ProxyTestClassSerializable { } Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableInterface.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableInterface.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableInterface.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSerializableInterface.java Wed Jan 11 12:32:28 2017 @@ -23,6 +23,7 @@ import static org.junit.Assert.assertEqu import java.io.ByteArrayInputStream; import java.io.ObjectInputStream; +@SuppressWarnings("serial") public class ProxyTestClassSerializableInterface implements ProxyTestSerializableInterface { Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuper.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuper.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuper.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuper.java Wed Jan 11 12:32:28 2017 @@ -48,7 +48,8 @@ public class ProxyTestClassSuper return null; } - private void doTarget() { + @SuppressWarnings("unused") +private void doTarget() { Object o = getTargetObject(); if(this != o) ((ProxyTestClassSuper)o).doTarget(); Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuperWithNoDefaultOrProtectedAccess.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuperWithNoDefaultOrProtectedAccess.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuperWithNoDefaultOrProtectedAccess.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/ProxyTestClassSuperWithNoDefaultOrProtectedAccess.java Wed Jan 11 12:32:28 2017 @@ -48,7 +48,8 @@ public class ProxyTestClassSuperWithNoDe return null; } - private void doTarget() { + @SuppressWarnings("unused") +private void doTarget() { Object o = getTargetObject(); if(this != o) ((ProxyTestClassSuperWithNoDefaultOrProtectedAccess)o).doTarget(); Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyGeneratorTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyGeneratorTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyGeneratorTest.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyGeneratorTest.java Wed Jan 11 12:32:28 2017 @@ -48,17 +48,18 @@ import org.apache.aries.proxy.impl.AsmPr import org.apache.aries.proxy.impl.SingleInstanceDispatcher; import org.apache.aries.proxy.impl.SystemModuleClassLoader; import org.apache.aries.proxy.impl.gen.ProxySubclassMethodHashSet; +import org.apache.aries.proxy.impl.interfaces.ClassLoaderProxy; import org.apache.aries.proxy.impl.weaving.WovenProxyGenerator; import org.apache.aries.proxy.weaving.WovenProxy; import org.apache.aries.unittest.mocks.MethodCall; import org.apache.aries.unittest.mocks.Skeleton; -import org.apache.aries.util.ClassLoaderProxy; import org.junit.BeforeClass; import org.junit.Test; import org.osgi.framework.Bundle; import org.osgi.framework.wiring.BundleWiring; +@SuppressWarnings({"unchecked", "rawtypes"}) public class WovenProxyGeneratorTest extends AbstractProxyTest { private static final String hexPattern = "[0-9_a-f]"; @@ -140,7 +141,7 @@ public class WovenProxyGeneratorTest ext @BeforeClass public static void setUp() throws Exception { - List<Class<?>> classes = new ArrayList(CLASSES.size() + OTHER_CLASSES.size()); + List<Class<?>> classes = new ArrayList<Class<?>>(CLASSES.size() + OTHER_CLASSES.size()); classes.addAll(CLASSES); classes.addAll(OTHER_CLASSES); Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyPlusSubclassGeneratorTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyPlusSubclassGeneratorTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyPlusSubclassGeneratorTest.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenProxyPlusSubclassGeneratorTest.java Wed Jan 11 12:32:28 2017 @@ -24,13 +24,10 @@ import static org.junit.Assert.assertTru import java.lang.reflect.Constructor; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -39,13 +36,11 @@ import org.apache.aries.proxy.Invocation import org.apache.aries.proxy.UnableToProxyException; import org.apache.aries.proxy.impl.SingleInstanceDispatcher; import org.apache.aries.proxy.impl.gen.ProxySubclassGenerator; -import org.apache.aries.proxy.impl.gen.ProxySubclassMethodHashSet; +import org.apache.aries.proxy.impl.interfaces.ClassLoaderProxy; import org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator; import org.apache.aries.proxy.weaving.WovenProxy; import org.apache.aries.unittest.mocks.MethodCall; import org.apache.aries.unittest.mocks.Skeleton; -import org.apache.aries.util.ClassLoaderProxy; -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.osgi.framework.Bundle; @@ -54,14 +49,11 @@ import org.osgi.framework.wiring.BundleW /** * This class uses the {@link ProxySubclassGenerator} to test */ +@SuppressWarnings("unchecked") public class WovenProxyPlusSubclassGeneratorTest extends WovenProxyGeneratorTest { private static final Class<?> FINAL_METHOD_CLASS = ProxyTestClassFinalMethod.class; private static final Class<?> FINAL_CLASS = ProxyTestClassFinal.class; - private static final Class<?> GENERIC_CLASS = ProxyTestClassGeneric.class; - private static final Class<?> COVARIANT_CLASS = ProxyTestClassCovariantOverride.class; - private static ProxySubclassMethodHashSet<String> expectedMethods = new ProxySubclassMethodHashSet<String>( - 12); private Callable<Object> testCallable = null; private static Bundle testBundle; @@ -203,7 +195,7 @@ public class WovenProxyPlusSubclassGener { try { InterfaceProxyGenerator.getProxyInstance(null, FINAL_CLASS, Collections.EMPTY_SET, - new Callable() { + new Callable<Object>() { public Object call() throws Exception { return null; }} , null).getClass(); Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenSubclassGeneratorTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenSubclassGeneratorTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenSubclassGeneratorTest.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/blueprint/proxy/WovenSubclassGeneratorTest.java Wed Jan 11 12:32:28 2017 @@ -42,12 +42,12 @@ import org.apache.aries.proxy.impl.gen.P import org.apache.aries.proxy.impl.gen.ProxySubclassMethodHashSet; import org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator; import org.apache.aries.proxy.weaving.WovenProxy; -import org.junit.Before; import org.junit.Test; /** * This class uses the {@link ProxySubclassGenerator} to test */ +@SuppressWarnings("unchecked") public class WovenSubclassGeneratorTest extends AbstractProxyTest { private static final Class<?> FINAL_METHOD_CLASS = ProxyTestClassFinalMethod.class; Modified: aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java (original) +++ aries/trunk/proxy/proxy-impl/src/test/java/org/apache/aries/util/AriesFrameworkUtil.java Wed Jan 11 12:32:28 2017 @@ -18,6 +18,7 @@ */ package org.apache.aries.util; +import org.apache.aries.proxy.impl.interfaces.ClassLoaderProxy; import org.osgi.framework.Bundle; /** Modified: aries/trunk/proxy/proxy-itests/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-itests/pom.xml?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-itests/pom.xml (original) +++ aries/trunk/proxy/proxy-itests/pom.xml Wed Jan 11 12:32:28 2017 @@ -69,7 +69,7 @@ <groupId>org.apache.aries.proxy</groupId> <artifactId>org.apache.aries.proxy.api</artifactId> <scope>test</scope> - <version>1.0.2-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.aries.proxy</groupId> @@ -77,18 +77,14 @@ <scope>test</scope> <version>1.0.7-SNAPSHOT</version> </dependency> - <dependency> - <groupId>org.apache.aries</groupId> - <artifactId>org.apache.aries.util</artifactId> - <scope>test</scope> - <version>1.0.0</version> - </dependency> + <!-- <dependency> <groupId>org.apache.aries.testsupport</groupId> <artifactId>org.apache.aries.testsupport.unit</artifactId> <version>2.0.0-SNAPSHOT</version> <scope>test</scope> </dependency> + --> <!-- pax exam --> <dependency> Modified: aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java (original) +++ aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractProxyTest.java Wed Jan 11 12:32:28 2017 @@ -23,7 +23,6 @@ import static org.junit.Assert.assertFal import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.ops4j.pax.exam.CoreOptions.composite; -import static org.ops4j.pax.exam.CoreOptions.junitBundles; import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.options; import static org.ops4j.pax.exam.CoreOptions.systemProperty; @@ -38,7 +37,6 @@ import java.util.concurrent.Callable; import javax.inject.Inject; -import org.apache.aries.itest.AbstractIntegrationTest; import org.apache.aries.proxy.InvocationListener; import org.apache.aries.proxy.ProxyManager; import org.junit.Test; @@ -49,10 +47,14 @@ import org.ops4j.pax.exam.junit.PaxExam; import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy; import org.ops4j.pax.exam.spi.reactors.PerClass; import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; @RunWith(PaxExam.class) @ExamReactorStrategy(PerClass.class) -public abstract class AbstractProxyTest extends AbstractIntegrationTest { +public abstract class AbstractProxyTest { + @Inject + BundleContext bundleContext; + @Inject ProxyManager mgr; @@ -292,35 +294,32 @@ public abstract class AbstractProxyTest if (localRepo == null) { localRepo = System.getProperty("org.ops4j.pax.url.mvn.localRepository"); } - return composite( - junitBundles(), + return composite( + CoreOptions.junitBundles(), systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO"), when(localRepo != null).useOptions(CoreOptions.vmOption("-Dorg.ops4j.pax.url.mvn.localRepository=" + localRepo)), - mavenBundle("org.apache.aries", "org.apache.aries.util").versionAsInProject(), - mavenBundle("org.ow2.asm", "asm-debug-all").versionAsInProject(), - mavenBundle("org.apache.aries.testsupport", "org.apache.aries.testsupport.unit").versionAsInProject(), + mavenBundle("org.ow2.asm", "asm-debug-all").versionAsInProject(), mavenBundle("org.ops4j.pax.logging", "pax-logging-api").versionAsInProject(), mavenBundle("org.ops4j.pax.logging", "pax-logging-service").versionAsInProject() - /* vmOption ("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"), - waitForFrameworkStartup(),*/ - ); + /* vmOption ("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"), + waitForFrameworkStartup(),*/ + ); } protected Option[] proxyBundles() { - return options( - generalOptions(), - mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy.api").versionAsInProject(), - mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy.impl").versionAsInProject() - ); + return options( + generalOptions(), + mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy.api").versionAsInProject(), + mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy.impl").versionAsInProject() + ); } - protected Option[] proxyUberBundle() - { - return options( - generalOptions(), - mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy").versionAsInProject() - ); - } + protected Option[] proxyUberBundle() { + return options( + generalOptions(), + mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy").versionAsInProject() + ); + } } Modified: aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractWeavingProxyTest.java URL: http://svn.apache.org/viewvc/aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractWeavingProxyTest.java?rev=1778286&r1=1778285&r2=1778286&view=diff ============================================================================== --- aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractWeavingProxyTest.java (original) +++ aries/trunk/proxy/proxy-itests/src/test/java/org/apache/aries/proxy/itests/AbstractWeavingProxyTest.java Wed Jan 11 12:32:28 2017 @@ -89,7 +89,7 @@ public abstract class AbstractWeavingPro public void checkProxyController() throws Exception { - context().registerService(ProxyWeavingController.class.getName(), new ProxyWeavingController() { + bundleContext.registerService(ProxyWeavingController.class.getName(), new ProxyWeavingController() { public boolean shouldWeave(WovenClass arg0, WeavingHelper arg1) {