Skip to content

Commit

Permalink
Support error reporting in progress monitoring APIs. #500
Browse files Browse the repository at this point in the history
  • Loading branch information
derekadams committed Jun 1, 2017
1 parent 83005f5 commit ec83531
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.sitewhere.rest.model.monitoring;

import com.sitewhere.spi.error.ErrorLevel;
import com.sitewhere.spi.monitoring.IProgressErrorMessage;

/**
* Progress message that includes error information.
*
* @author Derek
*/
public class ProgressErrorMessage extends ProgressMessage implements IProgressErrorMessage {

/** Serial version UID */
private static final long serialVersionUID = -7676418806779136207L;

/** Error level for message */
private ErrorLevel level;

public ProgressErrorMessage() {
}

public ProgressErrorMessage(String taskName, double progressPercentage, String message, ErrorLevel level) {
super(taskName, progressPercentage, message);
this.level = level;
}

/*
* (non-Javadoc)
*
* @see com.sitewhere.spi.monitoring.IProgressErrorMessage#getLevel()
*/
@Override
public ErrorLevel getLevel() {
return level;
}

public void setLevel(ErrorLevel level) {
this.level = level;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ public class ProgressMessage implements IProgressMessage {
/** Operation message */
private String message;

/** Timestamp for message */
private Long timeStamp;

public ProgressMessage() {
}

Expand Down Expand Up @@ -74,4 +77,18 @@ public String getMessage() {
public void setMessage(String message) {
this.message = message;
}

/*
* (non-Javadoc)
*
* @see com.sitewhere.spi.monitoring.IProgressMessage#getTimeStamp()
*/
@Override
public Long getTimeStamp() {
return timeStamp;
}

public void setTimeStamp(Long timeStamp) {
this.timeStamp = timeStamp;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.sitewhere.spi.monitoring;

import com.sitewhere.spi.error.ErrorLevel;

/**
* Extends {@link IProgressMessage} to add error information.
*
* @author Derek
*/
public interface IProgressErrorMessage extends IProgressMessage {

/**
* Get error level associated with message.
*
* @return
*/
public ErrorLevel getLevel();
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,11 @@ public interface IProgressMessage extends Serializable {
* @return
*/
public String getMessage();

/**
* Get timestamp for message.
*
* @return
*/
public Long getTimeStamp();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,12 @@ public interface IProgressReporter {
* @throws SiteWhereException
*/
public void reportProgress(IProgressMessage message) throws SiteWhereException;

/**
* Report that an error occurred in a monitored operation.
*
* @param error
* @throws SiteWhereException
*/
public void reportError(IProgressErrorMessage error) throws SiteWhereException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.apache.logging.log4j.Logger;

import com.sitewhere.spi.SiteWhereException;
import com.sitewhere.spi.monitoring.IProgressErrorMessage;
import com.sitewhere.spi.monitoring.IProgressMessage;
import com.sitewhere.spi.server.lifecycle.ILifecycleProgressContext;
import com.sitewhere.spi.server.lifecycle.ILifecycleProgressMonitor;
Expand Down Expand Up @@ -42,8 +43,21 @@ public LifecycleProgressMonitor(ILifecycleProgressContext initialContext) {
*/
@Override
public void reportProgress(IProgressMessage message) throws SiteWhereException {
LOGGER.info(
"[" + message.getTaskName() + "]: (" + message.getProgressPercentage() + "%) " + message.getMessage());
LOGGER.info("[PROGRESS][" + message.getTaskName() + "]: (" + message.getProgressPercentage() + "%) "
+ message.getMessage());
}

/*
* (non-Javadoc)
*
* @see
* com.sitewhere.spi.monitoring.IProgressReporter#reportError(com.sitewhere.
* spi.monitoring.IProgressErrorMessage)
*/
@Override
public void reportError(IProgressErrorMessage error) throws SiteWhereException {
LOGGER.info("[ERROR][" + error.getTaskName() + "]: (" + error.getProgressPercentage() + "%) "
+ error.getMessage() + "[" + error.getLevel().name() + "]");
}

/*
Expand Down

0 comments on commit ec83531

Please sign in to comment.