Package org.apache.oozie.jms

Examples of org.apache.oozie.jms.JMSJobEventListener


        }
    }

    @Test
    public void testWorkflowJobSelectors() throws ParseException {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user_1",
                "wf-app-name1", new Date(), new Date());
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            String selector = JMSHeaderConstants.USER + "='user_1'";
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe), selector);
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            WorkflowJobMessage wfFailMessage = JMSMessagingUtils.getEventMessage(message);
            Assert.assertEquals(WorkflowJob.Status.FAILED, wfFailMessage.getStatus());
            assertEquals("user_1", wfFailMessage.getUser());
            assertEquals(MessageType.JOB, wfFailMessage.getMessageType());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here


        }
    }

    @Test
    public void testWorkflowJobSelectorsNegative() {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user1",
                "wf-app-name1", new Date(), new Date());
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            // Pass a selector which wont match and assert for null message
            String selector = JMSHeaderConstants.USER + "='Non_matching_user'";
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe), selector);
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            assertNull(message);
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

        }
    }

    @Test
    public void testWorkflowJobSelectorsOr() {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user1",
                "wf-app-name1", new Date(), new Date());
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            // Pass a selector using OR condition
            String selector = JMSHeaderConstants.USER + "='Non_matching_user' OR " + JMSHeaderConstants.APP_NAME
                    + "='wf-app-name1'";
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe), selector);
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            WorkflowJobMessage wfFailMessage = JMSMessagingUtils.getEventMessage(message);
            Assert.assertEquals(WorkflowJob.Status.FAILED, wfFailMessage.getStatus());
            assertEquals("user1", wfFailMessage.getUser());
            assertEquals(MessageType.JOB, wfFailMessage.getMessageType());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

        }
    }

    @Test
    public void testWorkflowJobSelectorsAnd() {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user1",
                "wf-app-name1", new Date(), new Date());
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            // Pass a selector using AND condition
            String selector = JMSHeaderConstants.EVENT_STATUS + "='FAILURE' AND " + JMSHeaderConstants.APP_TYPE
                    + "='WORKFLOW_JOB' AND " + JMSHeaderConstants.MESSAGE_TYPE + "='JOB'";
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe), selector);
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            WorkflowJobMessage wfFailMessage = JMSMessagingUtils.getEventMessage(message);
            Assert.assertEquals(WorkflowJob.Status.FAILED, wfFailMessage.getStatus());
            assertEquals("user1", wfFailMessage.getUser());
            assertEquals(MessageType.JOB, wfFailMessage.getMessageType());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

            String brokerURl = "tcp://localhost:" + randomPort;
            conf.set(JMSJobEventListener.JMS_CONNECTION_PROPERTIES, "java.naming.factory.initial#"
                    + ActiveMQConnFactory + ";" + "java.naming.provider.url#" + brokerURl + ";connectionFactoryNames#"
                    + "ConnectionFactory");
            services.init();
            JMSJobEventListener wfEventListener = new JMSJobEventListener();
            wfEventListener.init(conf);
            BrokerService broker = new BrokerService();
            broker.addConnector(brokerURl);
            broker.start();
            ConnectionContext jmsContext = getConnectionContext();
            assertNotNull(jmsContext);
            broker.stop();
            jmsContext = getConnectionContext();
            // Exception Listener should have removed the old conn context
            assertNull(jmsContext);
            broker = new BrokerService();
            broker.addConnector(brokerURl);
            broker.start();
            WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user1",
                    "wf-app-name1", new Date(), new Date());

            jmsContext = getConnectionContext();
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe));
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            assertNotNull(message);
            broker.stop();
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

        super.tearDown();
    }

    @Test
    public void testOnWorkflowJobStartedEvent() throws ParseException {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        Date startDate = DateUtils.parseDateUTC("2012-07-22T00:00Z");
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.RUNNING, "user1",
                "wf-app-name1", startDate, null);

        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe));
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            assertFalse(message.getText().contains("endTime"));
            WorkflowJobMessage wfStartMessage = JMSMessagingUtils.getEventMessage(message);
            assertEquals(WorkflowJob.Status.RUNNING, wfStartMessage.getStatus());
            assertEquals(startDate, wfStartMessage.getStartTime());
            assertEquals("wfId1", wfStartMessage.getId());
            assertEquals("caId1", wfStartMessage.getParentId());
            assertEquals(MessageType.JOB, wfStartMessage.getMessageType());
            assertEquals(AppType.WORKFLOW_JOB, wfStartMessage.getAppType());
            assertEquals(EventStatus.STARTED, wfStartMessage.getEventStatus());
            assertEquals("user1", wfStartMessage.getUser());
            assertEquals("wf-app-name1", wfStartMessage.getAppName());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

        }
    }

    @Test
    public void testOnWorkflowJobSuccessEvent() throws ParseException {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        Date startDate = DateUtils.parseDateUTC("2012-07-22T00:00Z");
        Date endDate = new Date();
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.SUCCEEDED, "user1",
                "wf-app-name1", startDate, endDate);

        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe));
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            WorkflowJobMessage wfSuccMessage = JMSMessagingUtils.getEventMessage(message);
            assertEquals(WorkflowJob.Status.SUCCEEDED, wfSuccMessage.getStatus());
            assertEquals(startDate, wfSuccMessage.getStartTime());
            assertEquals(endDate, wfSuccMessage.getEndTime());
            assertEquals("wfId1", wfSuccMessage.getId());
            assertEquals("caId1", wfSuccMessage.getParentId());
            assertEquals(MessageType.JOB, wfSuccMessage.getMessageType());
            assertEquals(AppType.WORKFLOW_JOB, wfSuccMessage.getAppType());
            assertEquals(EventStatus.SUCCESS, wfSuccMessage.getEventStatus());
            assertEquals("user1", wfSuccMessage.getUser());
            assertEquals("wf-app-name1", wfSuccMessage.getAppName());
            wfEventListener.destroy();

        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
View Full Code Here

        }
    }

    @Test
    public void testOnWorkflowJobFailureEvent() throws ParseException {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        Date startDate = DateUtils.parseDateUTC("2012-07-22T00:00Z");
        Date endDate = new Date();
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user1",
                "wf-app-name1", startDate, endDate);
        wfe.setErrorCode("dummyErrorCode");
        wfe.setErrorMessage("dummyErrorMessage");
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe));
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            WorkflowJobMessage wfFailMessage = JMSMessagingUtils.getEventMessage(message);
            assertEquals(WorkflowJob.Status.FAILED, wfFailMessage.getStatus());
            assertEquals(startDate, wfFailMessage.getStartTime());
            assertEquals(endDate, wfFailMessage.getEndTime());
            assertEquals("wfId1", wfFailMessage.getId());
            assertEquals("caId1", wfFailMessage.getParentId());
            assertEquals(MessageType.JOB, wfFailMessage.getMessageType());
            assertEquals(AppType.WORKFLOW_JOB, wfFailMessage.getAppType());
            assertEquals(EventStatus.FAILURE, wfFailMessage.getEventStatus());
            assertEquals("user1", wfFailMessage.getUser());
            assertEquals("wf-app-name1", wfFailMessage.getAppName());
            assertEquals("dummyErrorCode", wfFailMessage.getErrorCode());
            assertEquals("dummyErrorMessage", wfFailMessage.getErrorMessage());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

        }
    }

    @Test
    public void testOnWorkflowJobSuspendEvent() throws ParseException {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        Date startDate = DateUtils.parseDateUTC("2012-07-22T00:00Z");
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.SUSPENDED, "user1",
                "wf-app-name1", startDate, null);
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe));
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            assertFalse(message.getText().contains("endTime"));
            WorkflowJobMessage wfFailMessage = JMSMessagingUtils.getEventMessage(message);
            assertEquals(WorkflowJob.Status.SUSPENDED, wfFailMessage.getStatus());
            assertEquals(startDate, wfFailMessage.getStartTime());
            assertEquals("wfId1", wfFailMessage.getId());
            assertEquals("caId1", wfFailMessage.getParentId());
            assertEquals(MessageType.JOB, wfFailMessage.getMessageType());
            assertEquals(AppType.WORKFLOW_JOB, wfFailMessage.getAppType());
            assertEquals(EventStatus.SUSPEND, wfFailMessage.getEventStatus());
            assertEquals("user1", wfFailMessage.getUser());
            assertEquals("wf-app-name1", wfFailMessage.getAppName());
            assertNull(wfFailMessage.getErrorCode());
            assertNull(wfFailMessage.getErrorMessage());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

        }
    }

    @Test
    public void testWorkflowJobSelectors() throws ParseException {
        JMSJobEventListener wfEventListener = new JMSJobEventListener();
        wfEventListener.init(conf);
        WorkflowJobEvent wfe = new WorkflowJobEvent("wfId1", "caId1", WorkflowJob.Status.FAILED, "user_1",
                "wf-app-name1", new Date(), new Date());
        ConnectionContext jmsContext = getConnectionContext();
        try {
            Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
            String selector = JMSHeaderConstants.USER + "='user_1'";
            MessageConsumer consumer = jmsContext.createConsumer(session, wfEventListener.getTopic(wfe), selector);
            wfEventListener.onWorkflowJobEvent(wfe);
            TextMessage message = (TextMessage) consumer.receive(5000);
            WorkflowJobMessage wfFailMessage = JMSMessagingUtils.getEventMessage(message);
            Assert.assertEquals(WorkflowJob.Status.FAILED, wfFailMessage.getStatus());
            assertEquals("user_1", wfFailMessage.getUser());
            assertEquals(MessageType.JOB, wfFailMessage.getMessageType());
            wfEventListener.destroy();
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
View Full Code Here

TOP

Related Classes of org.apache.oozie.jms.JMSJobEventListener

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.