INT-3099 Add IMAP Idle Application Events

Allow an application to be informed of problems on the IMAP idle
thread by emitting an event containing the exception.

Introduce IntegrationApplicationEvent hierarchy for all
events emitted by SI components.

INT-3099 Polishing (PR Comments)

Separate TCP events into discrete subclasses.
This commit is contained in:
Gary Russell
2013-08-11 14:34:47 -04:00
parent 754273b0a0
commit 5cbdfe9e43
30 changed files with 516 additions and 154 deletions

View File

@@ -0,0 +1,57 @@
/*
* Copyright 2013 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.integration.event;
import org.springframework.context.ApplicationEvent;
/**
* Base class for all {@link ApplicationEvent}s generated by the framework.
* Contains an optional cause field; a separate Exception event hierarchy
* is not possible because of Java single inheritance (modules should make
* all their events subclasses of 'xxxIntegrationEvent').
*
* @author Gary Russell
* @since 3.0
*
*/
@SuppressWarnings("serial")
public abstract class IntegrationEvent extends ApplicationEvent {
private final Throwable cause;
public IntegrationEvent(Object source) {
super(source);
this.cause = null;
}
public IntegrationEvent(Object source, Throwable cause) {
super(source);
this.cause = cause;
}
public Throwable getCause() {
return cause;
}
@Override
public String toString() {
return this.getClass().getSimpleName() + " [source=" + this.getSource() +
(this.cause == null ? "" : ", cause=" + this.cause) + "]";
}
}

View File

@@ -0,0 +1,4 @@
/**
* ApplicationEvents generated by the Spring Integration framework.
*/
package org.springframework.integration.event;