Search in sources :

Example 6 with WorkflowJobMessage

use of org.apache.oozie.client.event.message.WorkflowJobMessage in project oozie by apache.

the class JMSJobEventListener method onWorkflowJobEvent.

@Override
public void onWorkflowJobEvent(WorkflowJobEvent event) {
    WorkflowJobMessage wfJobMessage = MessageFactory.createWorkflowJobMessage(event);
    serializeJMSMessage(wfJobMessage, getTopic(event));
}
Also used : WorkflowJobMessage(org.apache.oozie.client.event.message.WorkflowJobMessage)

Example 7 with WorkflowJobMessage

use of org.apache.oozie.client.event.message.WorkflowJobMessage in project oozie by apache.

the class TestJMSJobEventListener method testOnWorkflowJobSuspendEvent.

@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());
    }
}
Also used : MessageConsumer(javax.jms.MessageConsumer) WorkflowJobMessage(org.apache.oozie.client.event.message.WorkflowJobMessage) ConnectionContext(org.apache.oozie.jms.ConnectionContext) Date(java.util.Date) TextMessage(javax.jms.TextMessage) ParseException(java.text.ParseException) JMSJobEventListener(org.apache.oozie.jms.JMSJobEventListener) Session(javax.jms.Session) Test(org.junit.Test)

Example 8 with WorkflowJobMessage

use of org.apache.oozie.client.event.message.WorkflowJobMessage in project oozie by apache.

the class TestJMSJobEventListener method testOnWorkflowJobFailureEvent.

@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());
    }
}
Also used : MessageConsumer(javax.jms.MessageConsumer) WorkflowJobMessage(org.apache.oozie.client.event.message.WorkflowJobMessage) ConnectionContext(org.apache.oozie.jms.ConnectionContext) Date(java.util.Date) TextMessage(javax.jms.TextMessage) ParseException(java.text.ParseException) JMSJobEventListener(org.apache.oozie.jms.JMSJobEventListener) Session(javax.jms.Session) Test(org.junit.Test)

Example 9 with WorkflowJobMessage

use of org.apache.oozie.client.event.message.WorkflowJobMessage in project oozie by apache.

the class TestJMSJobEventListener method testWorkflowJobSelectorsOr.

@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());
    }
}
Also used : MessageConsumer(javax.jms.MessageConsumer) WorkflowJobMessage(org.apache.oozie.client.event.message.WorkflowJobMessage) ConnectionContext(org.apache.oozie.jms.ConnectionContext) Date(java.util.Date) TextMessage(javax.jms.TextMessage) ParseException(java.text.ParseException) JMSJobEventListener(org.apache.oozie.jms.JMSJobEventListener) Session(javax.jms.Session) Test(org.junit.Test)

Aggregations

WorkflowJobMessage (org.apache.oozie.client.event.message.WorkflowJobMessage)9 TextMessage (javax.jms.TextMessage)8 ParseException (java.text.ParseException)7 Date (java.util.Date)7 MessageConsumer (javax.jms.MessageConsumer)7 Session (javax.jms.Session)7 ConnectionContext (org.apache.oozie.jms.ConnectionContext)7 JMSJobEventListener (org.apache.oozie.jms.JMSJobEventListener)7 Test (org.junit.Test)7 CoordinatorActionMessage (org.apache.oozie.client.event.message.CoordinatorActionMessage)1 SLAMessage (org.apache.oozie.client.event.message.SLAMessage)1