[jboss-svn-commits] JBL Code SVN: r37790 - in labs/jbosstm/trunk/txframework/framework/src: test/java/org/jboss/narayana/txframework/functional/services and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 12 04:05:29 EST 2011


Author: paul.robinson
Date: 2011-12-12 04:05:29 -0500 (Mon, 12 Dec 2011)
New Revision: 37790

Modified:
   labs/jbosstm/trunk/txframework/framework/src/main/java/org/jboss/narayana/txframework/impl/Participant.java
   labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/ATService.java
   labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BACoordinatorCompletionService.java
   labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BAParticipantCompletionService.java
Log:
JBTM-998 Allow participant lifecycle methods to be declared private

Modified: labs/jbosstm/trunk/txframework/framework/src/main/java/org/jboss/narayana/txframework/impl/Participant.java
===================================================================
--- labs/jbosstm/trunk/txframework/framework/src/main/java/org/jboss/narayana/txframework/impl/Participant.java	2011-12-09 15:36:55 UTC (rev 37789)
+++ labs/jbosstm/trunk/txframework/framework/src/main/java/org/jboss/narayana/txframework/impl/Participant.java	2011-12-12 09:05:29 UTC (rev 37790)
@@ -4,23 +4,27 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 public abstract class Participant
 {
     protected Object serviceImpl;
     protected Map<Class<? extends Annotation>, Method> lifecycleEventMap = new HashMap<Class<? extends Annotation>, Method>();
+    protected List<Method> visibleMethods;
 
     public Participant(Object serviceImpl)
     {
         this.serviceImpl = serviceImpl;
+        visibleMethods = getAllVisibleMethods(serviceImpl.getClass());
     }
 
     protected void registerEventsOfInterest(Class<? extends Annotation>... lifecycleEvents)
     {
         for (Class<? extends Annotation> lifecycleEvent : lifecycleEvents)
         {
-            for (Method method : serviceImpl.getClass().getMethods())
+            for (Method method : visibleMethods)
             {
                 Annotation annotation = method.getAnnotation(lifecycleEvent);
                 if (annotation != null)
@@ -43,6 +47,7 @@
 
         try
         {
+            method.setAccessible(true);
             //todo: detect parameters better. Maybe have a different participant per interface.
             if (lifecycleEvent == ConfirmCompleted.class)
             {
@@ -59,4 +64,28 @@
             throw new RuntimeException("Unable to invoke method '" + method.getName() + "' on '" + serviceImpl.getClass().getName() + "'", e);
         }
     }
+
+    private List<Method> getAllVisibleMethods(Class clazz)
+    {
+        Method[] methods = clazz.getMethods();
+        Method[] declaredMethods = clazz.getDeclaredMethods();
+
+        List<Method> results = new LinkedList<Method>();
+
+        for (Method m : methods)
+        {
+            if (!results.contains(m))
+            {
+                results.add(m);
+            }
+        }
+        for (Method m : declaredMethods)
+        {
+            if (!results.contains(m))
+            {
+                results.add(m);
+            }
+        }
+        return results;
+    }
 }

Modified: labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/ATService.java
===================================================================
--- labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/ATService.java	2011-12-09 15:36:55 UTC (rev 37789)
+++ labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/ATService.java	2011-12-12 09:05:29 UTC (rev 37790)
@@ -105,28 +105,28 @@
 
     @Commit
     @WebMethod(exclude = true)
-    public void commit()
+    private void commit()
     {
         logEvent(Commit.class);
     }
 
     @PostCommit
     @WebMethod(exclude = true)
-    public void postCommit()
+    private void postCommit()
     {
         logEvent(PostCommit.class);
     }
 
     @Rollback
     @WebMethod(exclude = true)
-    public void rollback()
+    private void rollback()
     {
         logEvent(Rollback.class);
     }
 
     @PrePrepare
     @WebMethod(exclude = true)
-    public Vote prePrepare()
+    private Vote prePrepare()
     {
         logEvent(PrePrepare.class);
         return new Prepared();
@@ -134,7 +134,7 @@
 
     @Prepare
     @WebMethod(exclude = true)
-    public Vote prepare()
+    private Vote prepare()
     {
         logEvent(Prepare.class);
         if (rollback)
@@ -149,14 +149,14 @@
 
     @Unknown
     @WebMethod(exclude = true)
-    public void unknown() throws SystemException
+    private void unknown() throws SystemException
     {
         logEvent(Unknown.class);
     }
 
     @Error
     @WebMethod(exclude = true)
-    public void error() throws SystemException
+    private void error() throws SystemException
     {
         logEvent(Error.class);
     }

Modified: labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BACoordinatorCompletionService.java
===================================================================
--- labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BACoordinatorCompletionService.java	2011-12-09 15:36:55 UTC (rev 37789)
+++ labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BACoordinatorCompletionService.java	2011-12-12 09:05:29 UTC (rev 37790)
@@ -104,56 +104,56 @@
     //todo: why is this never invoked? Always true for CoordinationCompletion?
     @Compensate
     @WebMethod(exclude = true)
-    public void compensate()
+    private void compensate()
     {
         logEvent(Compensate.class);
     }
 
     @ConfirmCompleted
     @WebMethod(exclude = true)
-    public void confirmCompleted(Boolean success)
+    private void confirmCompleted(Boolean success)
     {
         logEvent(ConfirmCompleted.class);
     }
 
     @Cancel
     @WebMethod(exclude = true)
-    public void cancel()
+    private void cancel()
     {
         logEvent(Cancel.class);
     }
 
     @Close
     @WebMethod(exclude = true)
-    public void close()
+    private void close()
     {
         logEvent(Close.class);
     }
 
     @Complete
     @WebMethod(exclude = true)
-    public void complete()
+    private void complete()
     {
         logEvent(Complete.class);
     }
 
     @ConfirmCompleted
     @WebMethod(exclude = true)
-    public void confirmCompleted(boolean success)
+    private void confirmCompleted(boolean success)
     {
         logEvent(ConfirmCompleted.class);
     }
 
     @Error
     @WebMethod(exclude = true)
-    public void error()
+    private void error()
     {
         logEvent(org.jboss.narayana.txframework.api.annotation.lifecycle.wsba.Error.class);
     }
 
     @Status
     @WebMethod(exclude = true)
-    public String status()
+    private String status()
     {
         logEvent(Status.class);
         return null;
@@ -161,7 +161,7 @@
 
     @Unknown
     @WebMethod(exclude = true)
-    public void unknown()
+    private void unknown()
     {
         logEvent(Unknown.class);
     }

Modified: labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BAParticipantCompletionService.java
===================================================================
--- labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BAParticipantCompletionService.java	2011-12-09 15:36:55 UTC (rev 37789)
+++ labs/jbosstm/trunk/txframework/framework/src/test/java/org/jboss/narayana/txframework/functional/services/BAParticipantCompletionService.java	2011-12-12 09:05:29 UTC (rev 37790)
@@ -119,49 +119,49 @@
 
     @Compensate
     @WebMethod(exclude = true)
-    public void compensate()
+    private void compensate()
     {
         logEvent(Compensate.class);
     }
 
     @ConfirmCompleted
     @WebMethod(exclude = true)
-    public void confirmCompleted(Boolean success)
+    private void confirmCompleted(Boolean success)
     {
         logEvent(ConfirmCompleted.class);
     }
 
     @Cancel
     @WebMethod(exclude = true)
-    public void cancel()
+    private void cancel()
     {
         logEvent(Cancel.class);
     }
 
     @Close
     @WebMethod(exclude = true)
-    public void close()
+    private void close()
     {
         logEvent(Close.class);
     }
 
     @ConfirmCompleted
     @WebMethod(exclude = true)
-    public void confirmCompleted(boolean success)
+    private void confirmCompleted(boolean success)
     {
         logEvent(ConfirmCompleted.class);
     }
 
     @Error
     @WebMethod(exclude = true)
-    public void error()
+    private void error()
     {
         logEvent(Error.class);
     }
 
     @Status
     @WebMethod(exclude = true)
-    public String status()
+    private String status()
     {
         logEvent(Status.class);
         return null;
@@ -169,7 +169,7 @@
 
     @Unknown
     @WebMethod(exclude = true)
-    public void unknown()
+    private void unknown()
     {
         logEvent(Unknown.class);
     }



More information about the jboss-svn-commits mailing list