[jboss-svn-commits] JBL Code SVN: r18756 - labs/jbosstm/trunk/XTS/WS-T/tests/src/com/arjuna/wst/tests/junit.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 7 06:01:06 EST 2008
Author: adinn
Date: 2008-03-07 06:01:06 -0500 (Fri, 07 Mar 2008)
New Revision: 18756
Added:
labs/jbosstm/trunk/XTS/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorProcessor.java
Log:
extra class needed to complete tests of Participant/Coordinator servcies; changes for JBTM-339
Added: labs/jbosstm/trunk/XTS/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorProcessor.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorProcessor.java (rev 0)
+++ labs/jbosstm/trunk/XTS/WS-T/tests/src/com/arjuna/wst/tests/junit/TestCoordinatorProcessor.java 2008-03-07 11:01:06 UTC (rev 18756)
@@ -0,0 +1,253 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.tests.junit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddr.AddressingContext;
+import com.arjuna.webservices.wsarj.ArjunaContext;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.ParticipantInboundEvents;
+import com.arjuna.webservices.wsat.CoordinatorInboundEvents;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
+
+public class TestCoordinatorProcessor extends CoordinatorProcessor
+{
+ private Map messageIdMap = new HashMap() ;
+
+ public CoordinatorDetails getCoordinatorDetails(final String messageId, final long timeout)
+ {
+ final long endTime = System.currentTimeMillis() + timeout ;
+ synchronized(messageIdMap)
+ {
+ long now = System.currentTimeMillis() ;
+ while(now < endTime)
+ {
+ final CoordinatorDetails details = (CoordinatorDetails)messageIdMap.remove(messageId) ;
+ if (details != null)
+ {
+ return details ;
+ }
+ try
+ {
+ messageIdMap.wait(endTime - now) ;
+ }
+ catch (final InterruptedException ie) {} // ignore
+ now = System.currentTimeMillis() ;
+ }
+ final CoordinatorDetails details = (CoordinatorDetails)messageIdMap.remove(messageId) ;
+ if (details != null)
+ {
+ return details ;
+ }
+ }
+ throw new NullPointerException("Timeout occurred waiting for id: " + messageId) ;
+ }
+
+ /**
+ * Activate the participant.
+ *
+ * @param coordinator The participant.
+ * @param identifier The identifier.
+ */
+ public void activateCoordinator(CoordinatorInboundEvents coordinator, String identifier) {
+ }
+
+ /**
+ * Deactivate the participant.
+ *
+ * @param coordinator The participant.
+ */
+ public void deactivateCoordinator(CoordinatorInboundEvents coordinator) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public void aborted(NotificationType aborted,
+ AddressingContext addressingContext, ArjunaContext arjunaContext)
+ {
+ final String messageId = addressingContext.getMessageID().getValue() ;
+ final CoordinatorDetails details = new CoordinatorDetails(addressingContext, arjunaContext) ;
+ details.setAborted(true) ;
+
+ synchronized(messageIdMap)
+ {
+ messageIdMap.put(messageId, details) ;
+ messageIdMap.notifyAll() ;
+ }
+ }
+
+ public void committed(NotificationType committed,
+ AddressingContext addressingContext, ArjunaContext arjunaContext)
+ {
+ final String messageId = addressingContext.getMessageID().getValue() ;
+ final CoordinatorDetails details = new CoordinatorDetails(addressingContext, arjunaContext) ;
+ details.setCommitted(true) ;
+
+ synchronized(messageIdMap)
+ {
+ messageIdMap.put(messageId, details) ;
+ messageIdMap.notifyAll() ;
+ }
+ }
+
+ public void prepared(NotificationType prepared,
+ AddressingContext addressingContext, ArjunaContext arjunaContext)
+ {
+ final String messageId = addressingContext.getMessageID().getValue() ;
+ final CoordinatorDetails details = new CoordinatorDetails(addressingContext, arjunaContext) ;
+ details.setPrepared(true) ;
+
+ synchronized(messageIdMap)
+ {
+ messageIdMap.put(messageId, details) ;
+ messageIdMap.notifyAll() ;
+ }
+ }
+
+ public void readOnly(NotificationType readOnly,
+ AddressingContext addressingContext, ArjunaContext arjunaContext)
+ {
+ final String messageId = addressingContext.getMessageID().getValue() ;
+ final CoordinatorDetails details = new CoordinatorDetails(addressingContext, arjunaContext) ;
+ details.setReadOnly(true) ;
+
+ synchronized(messageIdMap)
+ {
+ messageIdMap.put(messageId, details) ;
+ messageIdMap.notifyAll() ;
+ }
+ }
+
+ public void replay(NotificationType replay,
+ AddressingContext addressingContext, ArjunaContext arjunaContext)
+ {
+ final String messageId = addressingContext.getMessageID().getValue() ;
+ final CoordinatorDetails details = new CoordinatorDetails(addressingContext, arjunaContext) ;
+ details.setReplay(true) ;
+
+ synchronized(messageIdMap)
+ {
+ messageIdMap.put(messageId, details) ;
+ messageIdMap.notifyAll() ;
+ }
+ }
+
+ public void soapFault(SoapFault soapFault, AddressingContext addressingContext,
+ ArjunaContext arjunaContext)
+ {
+ final String messageId = addressingContext.getMessageID().getValue() ;
+ final CoordinatorDetails details = new CoordinatorDetails(addressingContext, arjunaContext) ;
+ details.setSoapFault(soapFault) ;
+
+ synchronized(messageIdMap)
+ {
+ messageIdMap.put(messageId, details) ;
+ messageIdMap.notifyAll() ;
+ }
+ }
+
+ public static class CoordinatorDetails
+ {
+ private final AddressingContext addressingContext ;
+ private final ArjunaContext arjunaContext ;
+ private boolean aborted ;
+ private boolean committed ;
+ private boolean prepared ;
+ private boolean readOnly ;
+ private boolean replay ;
+ private SoapFault soapFault ;
+
+ CoordinatorDetails(final AddressingContext addressingContext, final ArjunaContext arjunaContext)
+ {
+ this.addressingContext = addressingContext ;
+ this.arjunaContext = arjunaContext ;
+ }
+
+ public AddressingContext getAddressingContext()
+ {
+ return addressingContext ;
+ }
+
+ public ArjunaContext getArjunaContext()
+ {
+ return arjunaContext ;
+ }
+
+ public boolean hasAborted()
+ {
+ return aborted ;
+ }
+
+ void setAborted(final boolean aborted)
+ {
+ this.aborted = aborted ;
+ }
+
+ public boolean hasCommitted()
+ {
+ return committed ;
+ }
+
+ void setCommitted(final boolean committed)
+ {
+ this.committed = committed ;
+ }
+
+ public boolean hasPrepared()
+ {
+ return prepared ;
+ }
+
+ void setPrepared(final boolean prepared)
+ {
+ this.prepared = prepared ;
+ }
+
+ public boolean hasReadOnly() {
+ return readOnly;
+ }
+
+ public void setReadOnly(boolean readOnly) {
+ this.readOnly = readOnly;
+ }
+
+ public boolean hasReplay() {
+ return replay;
+ }
+
+ public void setReplay(boolean replay) {
+ this.replay = replay;
+ }
+
+ public SoapFault hasSoapFault()
+ {
+ return soapFault ;
+ }
+
+ void setSoapFault(final SoapFault soapFault)
+ {
+ this.soapFault = soapFault ;
+ }
+ }
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list