001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 package org.apache.oozie.client.event.message; 019 020 import java.util.Date; 021 022 import org.apache.oozie.AppType; 023 import org.apache.oozie.client.WorkflowJob; 024 import org.apache.oozie.client.event.JobEvent.EventStatus; 025 import org.codehaus.jackson.annotate.JsonProperty; 026 import org.codehaus.jackson.map.annotate.JsonSerialize; 027 028 /** 029 * Class holding attributes related to a workflow job message 030 * 031 */ 032 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) 033 public class WorkflowJobMessage extends JobMessage { 034 035 @JsonProperty 036 private WorkflowJob.Status status; 037 @JsonProperty 038 private String errorCode; 039 @JsonProperty 040 private String errorMessage; 041 042 /** 043 * Default constructor 044 */ 045 public WorkflowJobMessage() { 046 // Default constructor for jackson 047 } 048 049 /** 050 * Constructor for a workflow job message 051 * @param eventStatus event status 052 * @param workflowJobId the workflow job id 053 * @param coordinatorActionId the parent coordinator action id 054 * @param startTime start time of workflow 055 * @param endTime end time of workflow 056 * @param status status of workflow 057 * @param user the user 058 * @param appName appName of workflow 059 * @param errorCode errorCode of the failed wf actions 060 * @param errorMessage errorMessage of the failed wf action 061 */ 062 public WorkflowJobMessage(EventStatus eventStatus, String workflowJobId, 063 String coordinatorActionId, Date startTime, Date endTime, WorkflowJob.Status status, String user, 064 String appName, String errorCode, String errorMessage) { 065 super(eventStatus, AppType.WORKFLOW_JOB, workflowJobId, coordinatorActionId, startTime, 066 endTime, user, appName); 067 this.status = status; 068 this.errorCode = errorCode; 069 this.errorMessage = errorMessage; 070 } 071 072 /** 073 * Set the workflow job status 074 * @param status 075 */ 076 public void setStatus(WorkflowJob.Status status) { 077 this.status = status; 078 } 079 080 /** 081 * Get the workflow job status 082 * @return the workflow status 083 */ 084 public WorkflowJob.Status getStatus() { 085 return status; 086 } 087 088 /** 089 * Set the workflow error code 090 * @param errorCode 091 */ 092 public void setErrorCode(String errorCode) { 093 this.errorCode = errorCode; 094 } 095 096 /** 097 * Get the workflow error code 098 * @return the error code 099 */ 100 public String getErrorCode() { 101 return errorCode; 102 } 103 104 /** 105 * Set the workflow error message 106 * @param errorMessage 107 */ 108 public void setErrorMessage(String errorMessage) { 109 this.errorMessage = errorMessage; 110 } 111 112 /** 113 * Get the error message 114 * @return the error message 115 */ 116 public String getErrorMessage() { 117 return errorMessage; 118 } 119 }