/* * JBoss, Home of Professional Open Source * Copyright 2006, JBoss Inc., and individual contributors as indicated * by the @authors tag. All rights reserved. * 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.jboss.transaction.txinterop.webservices.bainterop.processors; import com.arjuna.ats.arjuna.common.Uid; import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType; import org.jboss.ws.api.addressing.MAP; import com.arjuna.wst11.messaging.engines.CoordinatorCompletionParticipantEngine; import com.arjuna.wst11.messaging.engines.ParticipantCompletionParticipantEngine; import com.arjuna.webservices11.SoapFault11; import com.jboss.transaction.txinterop.webservices.bainterop.BAInteropUtil; import com.jboss.transaction.txinterop.webservices.bainterop.participant.CancelParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.CoordinatorCompleteCloseParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.DropFirstCompensateParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.ExitParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.FailParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.CannotCompleteParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.CompletedParticipant; import com.jboss.transaction.txinterop.webservices.bainterop.participant.FailedCompensateParticipant; /** * The Participant processor. * @author kevin */ public class BAParticipantProcessor { /** * The participant. */ private static BAParticipantProcessor PARTICIPANT = new BAParticipantProcessor() ; /** * Get the participant. * @return The participant. */ public static BAParticipantProcessor getParticipant() { return PARTICIPANT ; } /** * Execute the Cancel * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void cancel(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { BAInteropUtil.registerParticipantCompletion(coordinationContext, new CancelParticipant(), new Uid().toString()) ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the Exit * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void exit(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final ExitParticipant participant = new ExitParticipant() ; final CoordinatorCompletionParticipantEngine engine = BAInteropUtil.registerCoordinatorCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the Fail * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void fail(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final FailParticipant participant = new FailParticipant() ; final ParticipantCompletionParticipantEngine engine = BAInteropUtil.registerParticipantCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the CannotComplete * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void cannotComplete(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final CannotCompleteParticipant participant = new CannotCompleteParticipant() ; final CoordinatorCompletionParticipantEngine engine = BAInteropUtil.registerCoordinatorCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the ParticipantCompleteClose * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void participantCompleteClose(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final CompletedParticipant participant = new CompletedParticipant() ; final ParticipantCompletionParticipantEngine engine = BAInteropUtil.registerParticipantCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the CoordinatorCompleteClose * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void coordinatorCompleteClose(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { BAInteropUtil.registerCoordinatorCompletion(coordinationContext, new CoordinatorCompleteCloseParticipant(), new Uid().toString()) ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the UnsolicitedComplete * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void unsolicitedComplete(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final CompletedParticipant participant = new CompletedParticipant() ; final ParticipantCompletionParticipantEngine engine = BAInteropUtil.registerParticipantCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the Compensate * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void compensate(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final CompletedParticipant participant = new CompletedParticipant() ; final ParticipantCompletionParticipantEngine engine = BAInteropUtil.registerParticipantCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the ParticipantCompensationFail * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void participantCompensationFail(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final FailedCompensateParticipant participant = new FailedCompensateParticipant() ; final ParticipantCompletionParticipantEngine engine = BAInteropUtil.registerParticipantCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the ParticipantCancelCompletedRace * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void participantCancelCompletedRace(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { final CompletedParticipant participant = new CompletedParticipant() ; final ParticipantCompletionParticipantEngine engine = BAInteropUtil.registerParticipantCompletion(coordinationContext, participant, new Uid().toString()) ; participant.setEngine(engine) ; participant.initialiseTimeout() ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the MessageLossAndRecovery * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void messageLossAndRecovery(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { try { BAInteropUtil.registerCoordinatorCompletion(coordinationContext, new DropFirstCompensateParticipant(), new Uid().toString()) ; } catch (final Throwable th) { throw new SoapFault11(th) ; } } /** * Execute the MixedOutcome * @param map The current addressing context. * @throws SoapFault11 for errors during processing */ public void mixedOutcome(final CoordinationContextType coordinationContext, final MAP map) throws SoapFault11 { } }