Author: andygumbrecht
Date: Wed May 14 14:07:41 2014
New Revision: 1594583

URL: http://svn.apache.org/r1594583
Log:
Apply patch from Romain for final class issues.
Use correct path call.

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
    
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1594583&r1=1594582&r2=1594583&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 Wed May 14 14:07:41 2014
@@ -42,6 +42,7 @@ import org.apache.openejb.util.Index;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.proxy.DynamicProxyImplFactory;
+import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
 import org.apache.openejb.util.reflection.Reflections;
 import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.config.WebBeansContext;
@@ -1820,12 +1821,23 @@ public class BeanContext extends Deploym
     public static final class ProxyClass {
         private final Class<?> proxy;
 
-        public ProxyClass(final Class<?> proxy) {
-            this.proxy = proxy;
+        public ProxyClass(final BeanContext beanContext,
+                          final Class<?>[] interfaces) {
+            Class<?> clazz;
+            try {
+                clazz = LocalBeanProxyFactory.createProxy(
+                        beanContext.getBeanClass(),
+                        beanContext.getClassLoader(),
+                        interfaces);
+            } catch (final Throwable e) { // VerifyError
+                logger.debug(beanContext.getBeanClass().getName() + " is not 
proxiable", e);
+                clazz = null;
+            }
+            this.proxy = clazz;
         }
 
         public Class<?> getProxy() {
-            return proxy;
+            return proxy; // let it generate a NPE if null, shouldn't occur 
(tested elsewhere) excepted for test where we don't use it
         }
     }
 }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1594583&r1=1594582&r2=1594583&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 Wed May 14 14:07:41 2014
@@ -16,6 +16,71 @@
  */
 package org.apache.openejb.assembler.classic;
 
+import java.io.ByteArrayInputStream;
+import java.io.Externalizable;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.lang.instrument.ClassFileTransformer;
+import java.lang.instrument.Instrumentation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.ReentrantLock;
+
+import javax.enterprise.context.Dependent;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.naming.Binding;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameAlreadyBoundException;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.resource.cci.Connection;
+import javax.resource.cci.ConnectionFactory;
+import javax.resource.spi.BootstrapContext;
+import javax.resource.spi.ConnectionManager;
+import javax.resource.spi.ManagedConnectionFactory;
+import javax.resource.spi.ResourceAdapter;
+import javax.resource.spi.ResourceAdapterInternalException;
+import javax.resource.spi.XATerminator;
+import javax.resource.spi.work.WorkManager;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
+import javax.transaction.TransactionSynchronizationRegistry;
+import javax.validation.ValidationException;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+
 import org.apache.geronimo.connector.GeronimoBootstrapContext;
 import org.apache.geronimo.connector.outbound.AbstractConnectionManager;
 import org.apache.geronimo.connector.work.GeronimoWorkManager;
@@ -125,7 +190,6 @@ import org.apache.openejb.util.SuperProp
 import org.apache.openejb.util.URLs;
 import org.apache.openejb.util.classloader.ClassLoaderAwareHandler;
 import org.apache.openejb.util.classloader.URLClassLoaderFirst;
-import org.apache.openejb.util.proxy.LocalBeanProxyFactory;
 import org.apache.openejb.util.proxy.ProxyFactory;
 import org.apache.openejb.util.proxy.ProxyManager;
 import org.apache.webbeans.config.WebBeansContext;
@@ -145,70 +209,6 @@ import org.apache.xbean.recipe.ObjectRec
 import org.apache.xbean.recipe.Option;
 import org.apache.xbean.recipe.UnsetPropertiesRecipe;
 
-import javax.enterprise.context.Dependent;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.naming.Binding;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NameAlreadyBoundException;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
-import javax.resource.cci.Connection;
-import javax.resource.cci.ConnectionFactory;
-import javax.resource.spi.BootstrapContext;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.resource.spi.ResourceAdapter;
-import javax.resource.spi.ResourceAdapterInternalException;
-import javax.resource.spi.XATerminator;
-import javax.resource.spi.work.WorkManager;
-import javax.sql.DataSource;
-import javax.transaction.TransactionManager;
-import javax.transaction.TransactionSynchronizationRegistry;
-import javax.validation.ValidationException;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
-import java.io.ByteArrayInputStream;
-import java.io.Externalizable;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.lang.instrument.ClassFileTransformer;
-import java.lang.instrument.Instrumentation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.locks.ReentrantLock;
-
 @SuppressWarnings({"UnusedDeclaration", "UnqualifiedFieldAccess", 
"UnqualifiedMethodAccess"})
 public class Assembler extends AssemblerTool implements 
org.apache.openejb.spi.Assembler, JndiConstants {
 
@@ -1078,11 +1078,8 @@ public class Assembler extends Assembler
                     beanContext.set(
                             BeanContext.ProxyClass.class,
                             new BeanContext.ProxyClass(
-                                LocalBeanProxyFactory.createProxy(
-                                    beanContext.getBeanClass(),
-                                    beanContext.getClassLoader(),
-                                    interfaces.toArray(new 
Class<?>[interfaces.size()])
-                                )
+                                beanContext,
+                                interfaces.toArray(new 
Class<?>[interfaces.size()])
                             ));
                 }
             }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1594583&r1=1594582&r2=1594583&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
 Wed May 14 14:07:41 2014
@@ -1202,7 +1202,7 @@ public class ConfigurationFactory implem
         for (int i = 0; i < strings.length; i++) {
             final String string = strings[i];
             final String pathname = 
PropertyPlaceHolderHelper.simpleValue(ProvisioningUtil.realLocation(string));
-            final File file = base.getFile(pathname);
+            final File file = base.getFile(pathname, false);
             classpath[i] = file.toURI();
         }
 

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java?rev=1594583&r1=1594582&r2=1594583&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/EndpointFactory.java
 Wed May 14 14:07:41 2014
@@ -55,7 +55,7 @@ public class EndpointFactory implements 
         final BeanContext.ProxyClass proxyClass = 
beanContext.get(BeanContext.ProxyClass.class);
         if (proxyClass == null) {
             proxy = 
LocalBeanProxyFactory.createProxy(beanContext.getBeanClass(), 
beanContext.getClassLoader(), interfaces);
-            beanContext.set(BeanContext.ProxyClass.class, new 
BeanContext.ProxyClass(proxy));
+            beanContext.set(BeanContext.ProxyClass.class, new 
BeanContext.ProxyClass(beanContext, interfaces));
         } else {
             proxy = proxyClass.getProxy();
         }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java?rev=1594583&r1=1594582&r2=1594583&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/AutoConfigPersistenceUnitsTest.java
 Wed May 14 14:07:41 2014
@@ -31,14 +31,11 @@ import org.apache.openejb.config.sys.Res
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.jee.jpa.unit.Persistence;
 import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
-import org.apache.openejb.loader.FileUtils;
-import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.monitoring.LocalMBeanServer;
 import org.apache.openejb.util.Join;
 
 import javax.naming.NamingException;
-import java.io.File;
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DriverPropertyInfo;
@@ -238,13 +235,6 @@ public class AutoConfigPersistenceUnitsT
      */
     public void testFromUnitNameJtaWithClasspath() throws Exception {
 
-        final FileUtils base = SystemInstance.get().getBase();
-
-        File f = base.getDirectory("foo");
-        if(!f.exists() && !f.mkdir())throw new Exception("failed to create 
test directory 'foo'");
-        f = new File(f, "bar.jar");
-        if(!f.exists() && !Files.touch(f).exists())throw new Exception("failed 
to create test file " + f);
-
         Resource resource = new Resource("orange-unit", "DataSource");
         resource.setClasspath("foo/bar.jar");
         ResourceInfo supplied = addDataSource(OrangeDriver.class, 
"jdbc:orange:some:stuff", true, resource);


Reply via email to