Package org.apache.sandesha.client

Examples of org.apache.sandesha.client.ClientStorageManager


    //For testing weather messages are re-transmitted correctly
    public void testRetransmission() {

        SandeshaQueue sq = SandeshaQueue.getInstance(Constants.CLIENT);
        ClientStorageManager csm = new ClientStorageManager();
        RMMessageContext msg1;
       
        //approving the out sequence
        csm.setTemporaryOutSequence("seqid1", "uuid:aaaa-bbbb-cccc");
        csm.setApprovedOutSequence("uuid:aaaa-bbbb-cccc", "approved1");

        //messages should be returned (since the out sequence is approved)
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNull(msg1);

        //Waiting for little more than re-transmission interval
        try {
            Thread.sleep(Constants.RETRANSMISSION_INTERVAL + 100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNull(msg1);

        //Again waiting for little more than re-transmission interval :)
        try {
            Thread.sleep(Constants.RETRANSMISSION_INTERVAL + 100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //Messages should be returned once again
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNull(msg1);

    }
View Full Code Here


    }

    //Testing weather the tr-transmission stops after a acknowledgement
    public void testAcknowledgement() {
        SandeshaQueue sq = SandeshaQueue.getInstance(Constants.CLIENT);
        ClientStorageManager csm = new ClientStorageManager();

        csm.setTemporaryOutSequence("seqid1", "uuid:aaaa-bbbb-cccc");
        csm.setApprovedOutSequence("uuid:aaaa-bbbb-cccc", "approved1");

        RMMessageContext msg1;
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        msg1.setLocked(false);
        msg1 = csm.getNextMessageToSend();
        assertNull(msg1);
       
        //Acknowledging messages 1,2 and 4 (without 3)
        csm.setAcknowledged("approved1", 1);
        csm.setAcknowledged("approved1", 2);
        csm.setAcknowledged("approved1", 4);
       
        //Waiting for little more than re-transmission interval
        try {
            Thread.sleep(Constants.RETRANSMISSION_INTERVAL + 100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //Only message no. 3 should be re-transmitted
        msg1 = csm.getNextMessageToSend();
        assertNotNull(msg1);
        assertEquals(msg1.getMessageID(), "rmsg3");
        msg1 = csm.getNextMessageToSend();
        assertNull(msg1);
    }
View Full Code Here

   
   
    public void setUp() throws QueueException {

        SandeshaQueue sq = SandeshaQueue.getInstance(Constants.CLIENT);
        ClientStorageManager csm = new ClientStorageManager();
        RMMessageContext msg = new RMMessageContext();
       
        //Creating a new outgoing sequence.
        sq.createNewOutgoingSequence("seqid1");
       
        //Adding messages to the outgoing sequence.
       
        //Adding message 1
        long nextMsgNo = csm.getNextMessageNumber("seqid1");
        assertEquals(nextMsgNo, 1);
        msg.setMessageID("rmsg1");
        msg.setSequenceID("seqid1");
        msg.setMsgNumber(nextMsgNo);
        sq.addMessageToOutgoingSequence("seqid1", msg);

        //Adding message 2
        nextMsgNo = csm.getNextMessageNumber("seqid1");
        assertEquals(nextMsgNo, 2);
        msg = new RMMessageContext();
        msg.setMessageID("rmsg2");
        msg.setSequenceID("seqid1");
        msg.setMsgNumber(nextMsgNo);
        sq.addMessageToOutgoingSequence("seqid1", msg);

        //Adding message 3
        nextMsgNo = csm.getNextMessageNumber("seqid1");
        assertEquals(nextMsgNo, 3);
        msg = new RMMessageContext();
        msg.setMessageID("rmsg3");
        msg.setSequenceID("seqid1");
        msg.setMsgNumber(nextMsgNo);

        //Adding message 4
        sq.addMessageToOutgoingSequence("seqid1", msg);
        nextMsgNo = csm.getNextMessageNumber("seqid1");
        assertEquals(nextMsgNo, 4);
        msg = new RMMessageContext();
        msg.setMessageID("rmsg4");
        msg.setSequenceID("seqid1");
        msg.setMsgNumber(nextMsgNo);
View Full Code Here

    }

    public void tearDown() {

        //clearing the storage
        ClientStorageManager csm = new ClientStorageManager();
        csm.clearStorage();

    }
View Full Code Here

    private static final Log log = LogFactory.getLog(MessageValidator.class.getName());

    public static void validate(RMMessageContext rmMsgContext, boolean client) throws AxisFault {

        if (client)
            storageMgr = new ClientStorageManager();
        else
            storageMgr = new ServerStorageManager();

        MessageContext msgContext = rmMsgContext.getMsgContext();
        try {
View Full Code Here

        this.callMap = callMap;
    }

    public static IStorageManager init(boolean client) throws AxisFault {
        if (client) {
            IStorageManager storageManager = new ClientStorageManager();
            if (!cleintSenderStarted) {
                startClientSender(storageManager);
            }
            return storageManager;
        } else {
View Full Code Here

            throw new AxisFault("Invalid MEP");
    }

    public final RMReport endSequence() throws AxisFault {

        IStorageManager storageManager = new ClientStorageManager();
        long startingTime = System.currentTimeMillis();
        long inactivityTimeOut = PolicyLoader.getInstance().getInactivityTimeout();

        Iterator ite = callMap.keySet().iterator();

        while (ite.hasNext()) {
            String key = (String) ite.next();
            Call tempCall = (Call) callMap.get(key);
            String seqId = (String) tempCall.getProperty(Constants.ClientProperties.CALL_KEY);
            while (!storageManager.isSequenceComplete(seqId)) {
                try {
                    if (log.isDebugEnabled()) {
                        log.debug(Constants.InfomationMessage.WAITING_TO_STOP_CLIENT);
                    }
                    Thread.sleep(Constants.CLIENT_WAIT_PERIOD_FOR_COMPLETE);
                    if ((System.currentTimeMillis() - startingTime) >= inactivityTimeOut) {
                        stopClientByForce();
                        this.report.setError("Inactivity Time Out Reached. Sequence not complete");
                    }
                } catch (InterruptedException e) {
                    log.error(e);
                }
            }
        }

        if (this.report.getError() == null) {
            this.report.setAllAcked(true);
        }

        seqMap.remove(new Long(key));
        if (seqMap.isEmpty()) {
            if (listenerStarted) {
                clientListner.stop();
                listenerStarted = false;
            }
            cleintSender.stop();
            cleintSenderStarted = false;
            storageManager.clearStorage();
        }

        return this.report;

    }
View Full Code Here

TOP

Related Classes of org.apache.sandesha.client.ClientStorageManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.