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);