You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/05/24 20:48:47 UTC

svn commit: r1597336 - in /tomee/tomee/trunk/container: openejb-api/src/main/java/org/apache/openejb/api/ openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ openejb-core/src/main/java/org/apache/openejb/asse...

Author: rmannibucau
Date: Sat May 24 18:48:47 2014
New Revision: 1597336

URL: http://svn.apache.org/r1597336
Log:
adding DestroyableResource interface instead of CloseableResource annotation, goal would be to simply Assembler#destroyResource

Added:
    tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/DestroyableResource.java
      - copied, changed from r1597333, tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/CloseableResource.java
Removed:
    tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/CloseableResource.java
Modified:
    tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedExecutorServiceImpl.java
    tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedScheduledExecutorServiceImpl.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java

Copied: tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/DestroyableResource.java (from r1597333, tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/CloseableResource.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/DestroyableResource.java?p2=tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/DestroyableResource.java&p1=tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/CloseableResource.java&r1=1597333&r2=1597336&rev=1597336&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/CloseableResource.java (original)
+++ tomee/tomee/trunk/container/openejb-api/src/main/java/org/apache/openejb/api/DestroyableResource.java Sat May 24 18:48:47 2014
@@ -16,12 +16,6 @@
  */
 package org.apache.openejb.api;
 
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface CloseableResource {
+public interface DestroyableResource {
+    void destroyResource();
 }

Modified: tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedExecutorServiceImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedExecutorServiceImpl.java?rev=1597336&r1=1597335&r2=1597336&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedExecutorServiceImpl.java (original)
+++ tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedExecutorServiceImpl.java Sat May 24 18:48:47 2014
@@ -16,7 +16,7 @@
  */
 package org.apache.openejb.concurrencyutilities.ee.impl;
 
-import org.apache.openejb.api.CloseableResource;
+import org.apache.openejb.api.DestroyableResource;
 import org.apache.openejb.concurrencyutilities.ee.future.CUFuture;
 import org.apache.openejb.concurrencyutilities.ee.task.CUCallable;
 import org.apache.openejb.concurrencyutilities.ee.task.CURunnable;
@@ -24,8 +24,6 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 
 import javax.enterprise.concurrent.ManagedExecutorService;
-import java.io.Closeable;
-import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.AbstractExecutorService;
 import java.util.concurrent.Callable;
@@ -33,8 +31,7 @@ import java.util.concurrent.ExecutorServ
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
-@CloseableResource
-public class ManagedExecutorServiceImpl extends AbstractExecutorService implements ManagedExecutorService, Closeable {
+public class ManagedExecutorServiceImpl extends AbstractExecutorService implements ManagedExecutorService, DestroyableResource {
     private static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, ManagedExecutorServiceImpl.class);
 
     private final ExecutorService delegate;
@@ -104,7 +101,7 @@ public class ManagedExecutorServiceImpl 
     }
 
     @Override
-    public void close() throws IOException {
+    public void destroyResource() {
         final List<Runnable> runnables = delegate.shutdownNow();
         if (runnables.size() > 0) {
             LOGGER.warning(runnables.size() + " tasks to execute");

Modified: tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedScheduledExecutorServiceImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedScheduledExecutorServiceImpl.java?rev=1597336&r1=1597335&r2=1597336&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedScheduledExecutorServiceImpl.java (original)
+++ tomee/tomee/trunk/container/openejb-concurrency-utilities-ee/src/main/java/org/apache/openejb/concurrencyutilities/ee/impl/ManagedScheduledExecutorServiceImpl.java Sat May 24 18:48:47 2014
@@ -16,7 +16,6 @@
  */
 package org.apache.openejb.concurrencyutilities.ee.impl;
 
-import org.apache.openejb.api.CloseableResource;
 import org.apache.openejb.concurrencyutilities.ee.future.CUScheduleFuture;
 import org.apache.openejb.concurrencyutilities.ee.task.CUCallable;
 import org.apache.openejb.concurrencyutilities.ee.task.CURunnable;
@@ -28,6 +27,7 @@ import javax.enterprise.concurrent.Manag
 import javax.enterprise.concurrent.ManagedTask;
 import javax.enterprise.concurrent.Trigger;
 import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.util.Date;
@@ -38,7 +38,6 @@ import java.util.concurrent.ScheduledFut
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
-@CloseableResource
 public class ManagedScheduledExecutorServiceImpl extends ManagedExecutorServiceImpl implements ManagedScheduledExecutorService {
     private final ScheduledExecutorService delegate;
 
@@ -125,7 +124,11 @@ public class ManagedScheduledExecutorSer
 
         @Override
         public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
-            return method.invoke(delegate.get(), args);
+            try {
+                return method.invoke(delegate.get(), args);
+            } catch (final InvocationTargetException ite) {
+                throw ite.getCause();
+            }
         }
 
         private static <V> ScheduledFuture<V> newProxy(final AtomicReference<Future<V>> futureHandle) {

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=1597336&r1=1597335&r2=1597336&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 Sat May 24 18:48:47 2014
@@ -17,72 +17,6 @@
 
 package org.apache.openejb.assembler.classic;
 
-import java.io.ByteArrayInputStream;
-import java.io.Closeable;
-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;
@@ -106,7 +40,7 @@ import org.apache.openejb.OpenEJB;
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.UndeployException;
-import org.apache.openejb.api.CloseableResource;
+import org.apache.openejb.api.DestroyableResource;
 import org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
 import org.apache.openejb.assembler.classic.event.AssemblerBeforeApplicationDestroyed;
 import org.apache.openejb.assembler.classic.event.AssemblerCreated;
@@ -212,6 +146,69 @@ 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.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 {
 
@@ -1482,10 +1479,10 @@ public class Assembler extends Assembler
             } catch (final Exception e) {
                 logger.debug("Not processing resource on destroy: " + className, e);
             }
-        } else if (ExecutorService.class.isInstance(object) && object.getClass().getAnnotation(CloseableResource.class) != null) {
+        } else if (DestroyableResource.class.isInstance(object)) {
             try {
-                Closeable.class.cast(object).close();
-            } catch (final IOException e) {
+                DestroyableResource.class.cast(object).destroyResource();
+            } catch (final RuntimeException e) {
                 logger.error(e.getMessage(), e);
             }
         } else if (logger.isDebugEnabled() && !DataSource.class.isInstance(object)) {