in modules/core/src/main/java/org/apache/savan/eventing/EventingSubscriptionProcessor.java [285:329]
private ExpirationBean getExpirationBeanFromString(String expiresStr) throws SavanException {
ExpirationBean bean = new ExpirationBean();
//expires can be a duration or a date time.
//Doing the conversion using the ConverUtil helper class.
Date date = null;
boolean isDuration = CommonUtil.isDuration(expiresStr);
if (isDuration) {
try {
bean.setDuration(true);
Duration duration = ConverterUtil.convertToDuration(expiresStr);
bean.setDurationValue(duration);
} catch (IllegalArgumentException e) {
String message = "Cannot convert the Expiration value to a valid duration";
throw new SavanException(message, e);
}
} else {
try {
Calendar calendar = ConverterUtil.convertToDateTime(expiresStr);
date = calendar.getTime();
bean.setDateValue(date);
} catch (Exception e) {
String message = "Cannot convert the Expiration value to a valid DATE/TIME";
throw new SavanException(message, e);
}
}
boolean invalidExpirationTime = false;
if (bean.isDuration()) {
if (isInvalidDiration(bean.getDurationValue()))
invalidExpirationTime = true;
} else {
if (isDateInThePast(bean.getDateValue()))
invalidExpirationTime = true;
}
if (invalidExpirationTime) {
//TODO throw Invalid Expiration Time fault
}
return bean;
}