Java 类org.springframework.context.event.SmartApplicationListener 实例源码

项目:haven-platform    文件:BalancerConfiguration.java   
/**
 * Listens ContextClosedEvent and Closes all async http connections
 */
@Bean
ApplicationListener<?> applicationListener() {
    return new SmartApplicationListener() {
        @Override
        public int getOrder() { return 0; }

        @Override
        public boolean supportsEventType(Class<? extends ApplicationEvent> eventType) {
            return ContextClosedEvent.class.isAssignableFrom(eventType);
        }

        @Override
        public boolean supportsSourceType(Class<?> sourceType) { return true; }

        @Override
        public void onApplicationEvent(ApplicationEvent event) { Closeables.close(proxyInstance); }
    };
}
项目:kc-rice    文件:IngestXmlRunOnceConfig.java   
/**
    * {@inheritDoc}
    *
    * <p>
    * The {@link org.kuali.rice.coreservice.api.parameter.Parameter} properties need to come from the
    * {@link ConfigContext} instead of the {@link org.kuali.common.util.spring.env.EnvironmentService} for the scenario
    * where nobody has wired in a bootstrap PSC in order to help manage the resetting of the database via RunOnce.
    * </p>
    */
@Override
@Bean
public SmartApplicationListener applicationEventListener() {
    Properties properties = ConfigContext.getCurrentContextConfig().getProperties();
    String applicationId = properties.getProperty(CoreConstants.Config.APPLICATION_ID);
    String namespace = properties.getProperty(NAMESPACE_KEY, NAMESPACE);
    String component = properties.getProperty(COMPONENT_KEY, COMPONENT);
    String name = properties.getProperty(NAME_KEY, NAME);
    String description = properties.getProperty(DESCRIPTION_KEY, DESCRIPTION);
    boolean runOnMissingParameter = Boolean.parseBoolean(properties.getProperty(RUN_ON_MISSING_PARAMETER_KEY, RUN_ON_MISSING_PARAMETER.toString()));
       int order = Integer.parseInt(properties.getProperty(ORDER_KEY, String.valueOf(Ordered.LOWEST_PRECEDENCE)));

    RunOnce runOnce = ParameterServiceRunOnce.builder(applicationId, namespace, component, name)
               .description(description).runOnMissingParameter(runOnMissingParameter).build();
    Executable springExecutable = SpringExecUtils.getSpringExecutable(service, propertySource, IngestXmlExecConfig.class,
               Lists.newArrayList("master"));
       Executable executable = RunOnceExecutable.builder(springExecutable, runOnce).build();

    return ExecutableApplicationEventListener.builder(executable, ContextRefreshedEvent.class).order(order).build();
}
项目:rice    文件:IngestXmlRunOnceConfig.java   
/**
    * {@inheritDoc}
    *
    * <p>
    * The {@link org.kuali.rice.coreservice.api.parameter.Parameter} properties need to come from the
    * {@link ConfigContext} instead of the {@link org.kuali.common.util.spring.env.EnvironmentService} for the scenario
    * where nobody has wired in a bootstrap PSC in order to help manage the resetting of the database via RunOnce.
    * </p>
    */
@Override
@Bean
public SmartApplicationListener applicationEventListener() {
    Properties properties = ConfigContext.getCurrentContextConfig().getProperties();
    String applicationId = properties.getProperty(CoreConstants.Config.APPLICATION_ID);
    String namespace = properties.getProperty(NAMESPACE_KEY, NAMESPACE);
    String component = properties.getProperty(COMPONENT_KEY, COMPONENT);
    String name = properties.getProperty(NAME_KEY, NAME);
    String description = properties.getProperty(DESCRIPTION_KEY, DESCRIPTION);
    boolean runOnMissingParameter = Boolean.parseBoolean(properties.getProperty(RUN_ON_MISSING_PARAMETER_KEY, RUN_ON_MISSING_PARAMETER.toString()));
       int order = Integer.parseInt(properties.getProperty(ORDER_KEY, String.valueOf(Ordered.LOWEST_PRECEDENCE)));

    RunOnce runOnce = ParameterServiceRunOnce.builder(applicationId, namespace, component, name)
               .description(description).runOnMissingParameter(runOnMissingParameter).build();
    Executable springExecutable = SpringExecUtils.getSpringExecutable(service, propertySource, IngestXmlExecConfig.class,
               Lists.newArrayList("master"));
       Executable executable = RunOnceExecutable.builder(springExecutable, runOnce).build();

    return ExecutableApplicationEventListener.builder(executable, ContextRefreshedEvent.class).order(order).build();
}
项目:spring4-understanding    文件:MultiServerUserRegistry.java   
/**
 * Create an instance wrapping the local user registry.
 */
public MultiServerUserRegistry(SimpUserRegistry localRegistry) {
    Assert.notNull(localRegistry, "'localRegistry' is required.");
    this.localRegistry = localRegistry;
    this.listener = (this.localRegistry instanceof SmartApplicationListener ?
            (SmartApplicationListener) this.localRegistry : new NoOpSmartApplicationListener());
    this.id = generateId();
}
项目:kc-rice    文件:IngestXmlConfig.java   
/**
    * {@inheritDoc}
    */
@Override
@Bean
public SmartApplicationListener applicationEventListener() {
    Executable executable = config.ingestXmlExecutable();
       Integer order = env.getInteger(ORDER_KEY, Integer.valueOf(Ordered.LOWEST_PRECEDENCE));

    return ExecutableApplicationEventListener.builder(executable, ContextRefreshedEvent.class).order(order.intValue()).build();
}
项目:spring-component-framework    文件:SmartApplicationEventMulticaster.java   
protected boolean supportsEvent(ApplicationListener<?> listener,
                                Class<? extends ApplicationEvent> eventType, Class<?> sourceType) {

    SmartApplicationListener smartListener = (listener instanceof SmartApplicationListener ?
                                              (SmartApplicationListener) listener :
                                              new SmartApplicationListenerAdapter(listener));
    return (smartListener.supportsEventType(eventType) && smartListener.supportsSourceType(sourceType));
}
项目:rice    文件:IngestXmlConfig.java   
/**
    * {@inheritDoc}
    */
@Override
@Bean
public SmartApplicationListener applicationEventListener() {
    Executable executable = config.ingestXmlExecutable();
       Integer order = env.getInteger(ORDER_KEY, Integer.valueOf(Ordered.LOWEST_PRECEDENCE));

    return ExecutableApplicationEventListener.builder(executable, ContextRefreshedEvent.class).order(order.intValue()).build();
}
项目:alfresco-repository    文件:SafeApplicationEventMulticaster.java   
/**
 * Determine whether the given listener supports the given event.
 * <p>
 * The default implementation detects the {@link SmartApplicationListener}
 * interface. In case of a standard {@link ApplicationListener}, a
 * {@link GenericApplicationListenerAdapter} will be used to introspect the
 * generically declared type of the target listener.
 * 
 * @param listener
 *            the target listener to check
 * @param eventType
 *            the event type to check against
 * @param sourceType
 *            the source type to check against
 * @return whether the given listener should be included in the candidates
 *         for the given event type
 */
protected boolean supportsEvent(ApplicationListener listener, Class<? extends ApplicationEvent> eventType,
        Class sourceType)
{

    SmartApplicationListener smartListener = (listener instanceof SmartApplicationListener ? (SmartApplicationListener) listener
            : new GenericApplicationListenerAdapter(listener));
    return (smartListener.supportsEventType(eventType) && smartListener.supportsSourceType(sourceType));
}
项目:community-edition-old    文件:SafeApplicationEventMulticaster.java   
/**
 * Determine whether the given listener supports the given event.
 * <p>
 * The default implementation detects the {@link SmartApplicationListener}
 * interface. In case of a standard {@link ApplicationListener}, a
 * {@link GenericApplicationListenerAdapter} will be used to introspect the
 * generically declared type of the target listener.
 * 
 * @param listener
 *            the target listener to check
 * @param eventType
 *            the event type to check against
 * @param sourceType
 *            the source type to check against
 * @return whether the given listener should be included in the candidates
 *         for the given event type
 */
protected boolean supportsEvent(ApplicationListener listener, Class<? extends ApplicationEvent> eventType,
        Class sourceType)
{

    SmartApplicationListener smartListener = (listener instanceof SmartApplicationListener ? (SmartApplicationListener) listener
            : new GenericApplicationListenerAdapter(listener));
    return (smartListener.supportsEventType(eventType) && smartListener.supportsSourceType(sourceType));
}