[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