You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ga...@apache.org on 2010/08/18 07:41:49 UTC

svn commit: r986568 - in /openejb/trunk/openejb3/container: openejb-core/src/main/java/org/apache/openejb/config/ openejb-core/src/main/java/org/apache/openejb/config/rules/ openejb-jee/src/main/java/org/apache/openejb/jee/

Author: gawor
Date: Wed Aug 18 05:41:48 2010
New Revision: 986568

URL: http://svn.apache.org/viewvc?rev=986568&view=rev
Log:
OPENEJB-1333: Refactor org.apache.openejb.jee.Lifecycle interface

Added:
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java   (with props)
Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Lifecycle.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Session.java
    openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Wed Aug 18 05:41:48 2010
@@ -127,6 +127,7 @@ import org.apache.openejb.jee.InitMethod
 import org.apache.openejb.jee.InjectionTarget;
 import org.apache.openejb.jee.Interceptor;
 import org.apache.openejb.jee.InterceptorBinding;
+import org.apache.openejb.jee.Invokable;
 import org.apache.openejb.jee.JndiConsumer;
 import org.apache.openejb.jee.JndiReference;
 import org.apache.openejb.jee.Lifecycle;
@@ -2084,26 +2085,30 @@ public class AnnotationDeployer implemen
                 }
             }
 
-            /*
-             * @AroundInvoke
-             */
-            AroundInvoke aroundInvoke = getFirst(bean.getAroundInvoke());
-            if (aroundInvoke == null) {
-                for (Method method : classFinder.findAnnotatedMethods(javax.interceptor.AroundInvoke.class)) {
-                    bean.getAroundInvoke().add(new AroundInvoke(method));
+            if (bean instanceof Invokable) {
+                Invokable invokable = (Invokable) bean;
+                
+                /*
+                 * @AroundInvoke
+                 */
+                AroundInvoke aroundInvoke = getFirst(invokable.getAroundInvoke());
+                if (aroundInvoke == null) {
+                    for (Method method : classFinder.findAnnotatedMethods(javax.interceptor.AroundInvoke.class)) {
+                        invokable.getAroundInvoke().add(new AroundInvoke(method));
+                    }
                 }
-            }
 
-            /*
-             *  @AroundTimeout
-             */
-            AroundTimeout aroundTimeout = getFirst(bean.getAroundTimeout());
-            if (aroundTimeout == null) {
-                for (Method method : classFinder.findAnnotatedMethods(javax.interceptor.AroundTimeout.class)) {
-                    bean.getAroundTimeout().add(new AroundTimeout(method));
+                /*
+                 *  @AroundTimeout
+                 */
+                AroundTimeout aroundTimeout = getFirst(invokable.getAroundTimeout());
+                if (aroundTimeout == null) {
+                    for (Method method : classFinder.findAnnotatedMethods(javax.interceptor.AroundTimeout.class)) {
+                        invokable.getAroundTimeout().add(new AroundTimeout(method));
+                    }
                 }
             }
-
+            
             /*
              * @Timeout
              */

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/rules/CheckCallbacks.java Wed Aug 18 05:41:48 2010
@@ -41,6 +41,7 @@ import org.apache.openejb.jee.CallbackMe
 import org.apache.openejb.jee.EnterpriseBean;
 import org.apache.openejb.jee.InitMethod;
 import org.apache.openejb.jee.Interceptor;
+import org.apache.openejb.jee.Invokable;
 import org.apache.openejb.jee.LifecycleCallback;
 import org.apache.openejb.jee.NamedMethod;
 import org.apache.openejb.jee.RemoveMethod;
@@ -66,8 +67,16 @@ public class CheckCallbacks extends Vali
                 continue;
             }
 
-            for (AroundInvoke aroundInvoke : bean.getAroundInvoke()) {
-                checkAroundInvoke(ejbClass, aroundInvoke, bean.getEjbName());
+            if (bean instanceof Invokable) {
+                Invokable invokable = (Invokable) bean;
+                
+                for (AroundInvoke aroundInvoke : invokable.getAroundInvoke()) {
+                    checkAroundInvoke(ejbClass, aroundInvoke, bean.getEjbName());
+                }
+                
+                for (AroundTimeout aroundTimeout : invokable.getAroundTimeout()) {
+                    checkAroundTimeout(ejbClass, aroundTimeout, bean.getEjbName());
+                }
             }
 
             for (LifecycleCallback callback : bean.getPostConstruct()) {
@@ -187,10 +196,7 @@ public class CheckCallbacks extends Vali
                 if (timeoutMethods.size() > 1) {
                     fail(timerConsumer.getTimerConsumerName(), "timeout.tooManyMethods", timeoutMethods.size(), Join.join(",", timeoutMethods));
                 }
-                for (AroundTimeout aroundTimeout : bean.getAroundTimeout()) {
-                    checkAroundTimeout(ejbClass, aroundTimeout, bean.getEjbName());
-                }
-
+                
                 for(Timer timer : ((TimerConsumer) bean).getTimer()) {
                     checkTimeOut(ejbClass, timer.getTimeoutMethod(), bean);
                 }

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java Wed Aug 18 05:41:48 2010
@@ -93,7 +93,7 @@ import java.util.Map;
         "dataSource"
 
 })
-public class ApplicationClient implements JndiConsumer {
+public class ApplicationClient implements JndiConsumer, Lifecycle {
 
     @XmlElement(name = "module-name", required = true)
     protected String moduleName;

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/EntityBean.java Wed Aug 18 05:41:48 2010
@@ -596,14 +596,6 @@ public class EntityBean implements Remot
         this.id = value;
     }
 
-    public List<AroundInvoke> getAroundInvoke() {
-        return Collections.emptyList();
-    }
-
-
-    public void addAroundInvoke(String method){
-    }
-
     public TransactionType getTransactionType() {
         return TransactionType.CONTAINER;
     }
@@ -611,10 +603,4 @@ public class EntityBean implements Remot
     public void setTransactionType(TransactionType type){
     }
 
-    public void addAroundTimeout(String method) {
-    }
-
-    public List<AroundTimeout> getAroundTimeout() {
-        return Collections.emptyList();
-    }
 }

Added: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java?rev=986568&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java (added)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java Wed Aug 18 05:41:48 2010
@@ -0,0 +1,32 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.jee;
+
+import java.util.List;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface Invokable {
+    List<AroundInvoke> getAroundInvoke();
+
+    void addAroundInvoke(String method);
+
+    List<AroundTimeout> getAroundTimeout();
+
+    void addAroundTimeout(String method);
+}

Propchange: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Invokable.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Lifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Lifecycle.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Lifecycle.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Lifecycle.java Wed Aug 18 05:41:48 2010
@@ -22,9 +22,6 @@ import java.util.List;
  * @version $Rev$ $Date$
  */
 public interface Lifecycle {
-    List<AroundInvoke> getAroundInvoke();
-
-    void addAroundInvoke(String method);
 
     List<LifecycleCallback> getPostConstruct();
 
@@ -34,7 +31,4 @@ public interface Lifecycle {
 
     void addPreDestroy(String method);
 
-    List<AroundTimeout> getAroundTimeout();
-
-    void addAroundTimeout(String method);
 }

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/MessageDrivenBean.java Wed Aug 18 05:41:48 2010
@@ -105,7 +105,7 @@ import java.util.Map;
         "securityRoleRef",
         "securityIdentity"
         })
-public class MessageDrivenBean implements EnterpriseBean, TimerConsumer  {
+public class MessageDrivenBean implements EnterpriseBean, TimerConsumer, Invokable {
 
     @XmlTransient
     protected TextMap description = new TextMap();

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Session.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Session.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Session.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/Session.java Wed Aug 18 05:41:48 2010
@@ -21,7 +21,7 @@ import java.util.List;
 /**
  * @version $Rev$ $Date$
  */
-public interface Session extends Lifecycle {
+public interface Session extends Lifecycle, Invokable {
     List<LifecycleCallback> getPostActivate();
 
     void addPostActivate(String method);

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java?rev=986568&r1=986567&r2=986568&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/WebApp.java Wed Aug 18 05:41:48 2010
@@ -98,7 +98,7 @@ import java.util.Map;
         "moduleName"
 
 })
-public class WebApp implements WebCommon {
+public class WebApp implements WebCommon, Lifecycle {
     @XmlTransient
     private String contextRoot;
 
@@ -510,6 +510,10 @@ public class WebApp implements WebCommon
         return this.persistenceUnitRef.toMap();
     }
 
+    public void addPostConstruct(String method) {
+        throw new UnsupportedOperationException();
+    }
+    
     @Override
     public List<LifecycleCallback> getPostConstruct() {
         if (postConstruct == null) {
@@ -518,6 +522,10 @@ public class WebApp implements WebCommon
         return this.postConstruct;
     }
 
+    public void addPreDestroy(String method) {
+        throw new UnsupportedOperationException();
+    }
+    
     @Override
     public List<LifecycleCallback> getPreDestroy() {
         if (preDestroy == null) {