all "taskExecutor" bean properties now accept any "java.util.concurrent.Executor"
This commit is contained in:
parent
ea54c6391e
commit
6cdc25d66a
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2006 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -16,14 +16,14 @@
|
||||||
|
|
||||||
package org.springframework.scheduling.quartz;
|
package org.springframework.scheduling.quartz;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
import java.util.concurrent.RejectedExecutionException;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.quartz.SchedulerConfigException;
|
import org.quartz.SchedulerConfigException;
|
||||||
import org.quartz.spi.ThreadPool;
|
import org.quartz.spi.ThreadPool;
|
||||||
|
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
import org.springframework.core.task.TaskRejectedException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quartz ThreadPool adapter that delegates to a Spring-managed
|
* Quartz ThreadPool adapter that delegates to a Spring-managed
|
||||||
* TaskExecutor instance, specified on SchedulerFactoryBean.
|
* TaskExecutor instance, specified on SchedulerFactoryBean.
|
||||||
|
@ -37,7 +37,7 @@ public class LocalTaskExecutorThreadPool implements ThreadPool {
|
||||||
/** Logger available to subclasses */
|
/** Logger available to subclasses */
|
||||||
protected final Log logger = LogFactory.getLog(getClass());
|
protected final Log logger = LogFactory.getLog(getClass());
|
||||||
|
|
||||||
private TaskExecutor taskExecutor;
|
private Executor taskExecutor;
|
||||||
|
|
||||||
|
|
||||||
public void initialize() throws SchedulerConfigException {
|
public void initialize() throws SchedulerConfigException {
|
||||||
|
@ -66,7 +66,7 @@ public class LocalTaskExecutorThreadPool implements ThreadPool {
|
||||||
this.taskExecutor.execute(runnable);
|
this.taskExecutor.execute(runnable);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (TaskRejectedException ex) {
|
catch (RejectedExecutionException ex) {
|
||||||
logger.error("Task has been rejected by TaskExecutor", ex);
|
logger.error("Task has been rejected by TaskExecutor", ex);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -19,7 +19,7 @@ package org.springframework.scheduling.quartz;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
import org.quartz.Scheduler;
|
import org.quartz.Scheduler;
|
||||||
|
@ -42,7 +42,6 @@ import org.springframework.context.Lifecycle;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
import org.springframework.core.io.ResourceLoader;
|
import org.springframework.core.io.ResourceLoader;
|
||||||
import org.springframework.core.io.support.PropertiesLoaderUtils;
|
import org.springframework.core.io.support.PropertiesLoaderUtils;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
import org.springframework.scheduling.SchedulingException;
|
import org.springframework.scheduling.SchedulingException;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
@ -88,7 +87,7 @@ import org.springframework.util.CollectionUtils;
|
||||||
* @see org.springframework.transaction.interceptor.TransactionProxyFactoryBean
|
* @see org.springframework.transaction.interceptor.TransactionProxyFactoryBean
|
||||||
*/
|
*/
|
||||||
public class SchedulerFactoryBean extends SchedulerAccessor
|
public class SchedulerFactoryBean extends SchedulerAccessor
|
||||||
implements FactoryBean, BeanNameAware, ApplicationContextAware, InitializingBean, DisposableBean, Lifecycle {
|
implements FactoryBean, BeanNameAware, ApplicationContextAware, InitializingBean, DisposableBean, Lifecycle {
|
||||||
|
|
||||||
public static final String PROP_THREAD_COUNT = "org.quartz.threadPool.threadCount";
|
public static final String PROP_THREAD_COUNT = "org.quartz.threadPool.threadCount";
|
||||||
|
|
||||||
|
@ -98,8 +97,8 @@ public class SchedulerFactoryBean extends SchedulerAccessor
|
||||||
private static final ThreadLocal<ResourceLoader> configTimeResourceLoaderHolder =
|
private static final ThreadLocal<ResourceLoader> configTimeResourceLoaderHolder =
|
||||||
new ThreadLocal<ResourceLoader>();
|
new ThreadLocal<ResourceLoader>();
|
||||||
|
|
||||||
private static final ThreadLocal<TaskExecutor> configTimeTaskExecutorHolder =
|
private static final ThreadLocal<Executor> configTimeTaskExecutorHolder =
|
||||||
new ThreadLocal<TaskExecutor>();
|
new ThreadLocal<Executor>();
|
||||||
|
|
||||||
private static final ThreadLocal<DataSource> configTimeDataSourceHolder =
|
private static final ThreadLocal<DataSource> configTimeDataSourceHolder =
|
||||||
new ThreadLocal<DataSource>();
|
new ThreadLocal<DataSource>();
|
||||||
|
@ -129,7 +128,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor
|
||||||
* @see #setTaskExecutor
|
* @see #setTaskExecutor
|
||||||
* @see LocalTaskExecutorThreadPool
|
* @see LocalTaskExecutorThreadPool
|
||||||
*/
|
*/
|
||||||
public static TaskExecutor getConfigTimeTaskExecutor() {
|
public static Executor getConfigTimeTaskExecutor() {
|
||||||
return configTimeTaskExecutorHolder.get();
|
return configTimeTaskExecutorHolder.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +168,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor
|
||||||
private Properties quartzProperties;
|
private Properties quartzProperties;
|
||||||
|
|
||||||
|
|
||||||
private TaskExecutor taskExecutor;
|
private Executor taskExecutor;
|
||||||
|
|
||||||
private DataSource dataSource;
|
private DataSource dataSource;
|
||||||
|
|
||||||
|
@ -261,7 +260,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor
|
||||||
* @see org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
|
* @see org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
|
||||||
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
|
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
|
||||||
*/
|
*/
|
||||||
public void setTaskExecutor(TaskExecutor taskExecutor) {
|
public void setTaskExecutor(Executor taskExecutor) {
|
||||||
this.taskExecutor = taskExecutor;
|
this.taskExecutor = taskExecutor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,14 +415,14 @@ public class SchedulerFactoryBean extends SchedulerAccessor
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
public void afterPropertiesSet() throws Exception {
|
public void afterPropertiesSet() throws Exception {
|
||||||
if (this.applicationContext != null && this.resourceLoader == null) {
|
|
||||||
this.resourceLoader = this.applicationContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.dataSource == null && this.nonTransactionalDataSource != null) {
|
if (this.dataSource == null && this.nonTransactionalDataSource != null) {
|
||||||
this.dataSource = this.nonTransactionalDataSource;
|
this.dataSource = this.nonTransactionalDataSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.applicationContext != null && this.resourceLoader == null) {
|
||||||
|
this.resourceLoader = this.applicationContext;
|
||||||
|
}
|
||||||
|
|
||||||
// Create SchedulerFactory instance.
|
// Create SchedulerFactory instance.
|
||||||
SchedulerFactory schedulerFactory = (SchedulerFactory) BeanUtils.instantiateClass(this.schedulerFactoryClass);
|
SchedulerFactory schedulerFactory = (SchedulerFactory) BeanUtils.instantiateClass(this.schedulerFactoryClass);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -16,10 +16,11 @@
|
||||||
|
|
||||||
package org.springframework.context.event;
|
package org.springframework.context.event;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
import org.springframework.context.ApplicationEvent;
|
import org.springframework.context.ApplicationEvent;
|
||||||
import org.springframework.context.ApplicationListener;
|
import org.springframework.context.ApplicationListener;
|
||||||
import org.springframework.core.task.SyncTaskExecutor;
|
import org.springframework.core.task.SyncTaskExecutor;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple implementation of the {@link ApplicationEventMulticaster} interface.
|
* Simple implementation of the {@link ApplicationEventMulticaster} interface.
|
||||||
|
@ -41,7 +42,7 @@ import org.springframework.core.task.TaskExecutor;
|
||||||
*/
|
*/
|
||||||
public class SimpleApplicationEventMulticaster extends AbstractApplicationEventMulticaster {
|
public class SimpleApplicationEventMulticaster extends AbstractApplicationEventMulticaster {
|
||||||
|
|
||||||
private TaskExecutor taskExecutor = new SyncTaskExecutor();
|
private Executor taskExecutor = new SyncTaskExecutor();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -56,14 +57,14 @@ public class SimpleApplicationEventMulticaster extends AbstractApplicationEventM
|
||||||
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
|
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
|
||||||
* @see org.springframework.scheduling.timer.TimerTaskExecutor
|
* @see org.springframework.scheduling.timer.TimerTaskExecutor
|
||||||
*/
|
*/
|
||||||
public void setTaskExecutor(TaskExecutor taskExecutor) {
|
public void setTaskExecutor(Executor taskExecutor) {
|
||||||
this.taskExecutor = (taskExecutor != null ? taskExecutor : new SyncTaskExecutor());
|
this.taskExecutor = (taskExecutor != null ? taskExecutor : new SyncTaskExecutor());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the current TaskExecutor for this multicaster.
|
* Return the current TaskExecutor for this multicaster.
|
||||||
*/
|
*/
|
||||||
protected TaskExecutor getTaskExecutor() {
|
protected Executor getTaskExecutor() {
|
||||||
return this.taskExecutor;
|
return this.taskExecutor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -33,7 +33,6 @@ import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
import org.springframework.beans.factory.FactoryBean;
|
import org.springframework.beans.factory.FactoryBean;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link org.springframework.beans.factory.FactoryBean} that creates a simple
|
* {@link org.springframework.beans.factory.FactoryBean} that creates a simple
|
||||||
|
@ -114,14 +113,6 @@ public class SimpleHttpServerFactoryBean implements FactoryBean, InitializingBea
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the Spring TaskExecutor to use for dispatching incoming requests.
|
|
||||||
* @see com.sun.net.httpserver.HttpServer#setExecutor
|
|
||||||
*/
|
|
||||||
public void setTaskExecutor(TaskExecutor executor) {
|
|
||||||
this.executor = executor;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register {@link com.sun.net.httpserver.HttpHandler HttpHandlers}
|
* Register {@link com.sun.net.httpserver.HttpHandler HttpHandlers}
|
||||||
* for specific context paths.
|
* for specific context paths.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -17,9 +17,8 @@
|
||||||
package org.springframework.jms.listener;
|
package org.springframework.jms.listener;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
import javax.jms.Connection;
|
import javax.jms.Connection;
|
||||||
import javax.jms.JMSException;
|
import javax.jms.JMSException;
|
||||||
import javax.jms.MessageConsumer;
|
import javax.jms.MessageConsumer;
|
||||||
|
@ -165,7 +164,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
|
||||||
private static final Constants constants = new Constants(DefaultMessageListenerContainer.class);
|
private static final Constants constants = new Constants(DefaultMessageListenerContainer.class);
|
||||||
|
|
||||||
|
|
||||||
private TaskExecutor taskExecutor;
|
private Executor taskExecutor;
|
||||||
|
|
||||||
private long recoveryInterval = DEFAULT_RECOVERY_INTERVAL;
|
private long recoveryInterval = DEFAULT_RECOVERY_INTERVAL;
|
||||||
|
|
||||||
|
@ -204,7 +203,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
|
||||||
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
|
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
|
||||||
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
|
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
|
||||||
*/
|
*/
|
||||||
public void setTaskExecutor(TaskExecutor taskExecutor) {
|
public void setTaskExecutor(Executor taskExecutor) {
|
||||||
this.taskExecutor = taskExecutor;
|
this.taskExecutor = taskExecutor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -17,9 +17,8 @@
|
||||||
package org.springframework.jms.listener;
|
package org.springframework.jms.listener;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
import javax.jms.Connection;
|
import javax.jms.Connection;
|
||||||
import javax.jms.Destination;
|
import javax.jms.Destination;
|
||||||
import javax.jms.ExceptionListener;
|
import javax.jms.ExceptionListener;
|
||||||
|
@ -30,7 +29,6 @@ import javax.jms.MessageListener;
|
||||||
import javax.jms.Session;
|
import javax.jms.Session;
|
||||||
import javax.jms.Topic;
|
import javax.jms.Topic;
|
||||||
|
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
import org.springframework.jms.support.JmsUtils;
|
import org.springframework.jms.support.JmsUtils;
|
||||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
@ -70,7 +68,7 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta
|
||||||
|
|
||||||
private int concurrentConsumers = 1;
|
private int concurrentConsumers = 1;
|
||||||
|
|
||||||
private TaskExecutor taskExecutor;
|
private Executor taskExecutor;
|
||||||
|
|
||||||
private Set<Session> sessions;
|
private Set<Session> sessions;
|
||||||
|
|
||||||
|
@ -134,7 +132,7 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta
|
||||||
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
|
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
|
||||||
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
|
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
|
||||||
*/
|
*/
|
||||||
public void setTaskExecutor(TaskExecutor taskExecutor) {
|
public void setTaskExecutor(Executor taskExecutor) {
|
||||||
this.taskExecutor = taskExecutor;
|
this.taskExecutor = taskExecutor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
http\://www.springframework.org/schema/jms/spring-jms-2.5.xsd=org/springframework/jms/config/spring-jms-2.5.xsd
|
http\://www.springframework.org/schema/jms/spring-jms-2.5.xsd=org/springframework/jms/config/spring-jms-2.5.xsd
|
||||||
http\://www.springframework.org/schema/jms/spring-jms.xsd=org/springframework/jms/config/spring-jms-2.5.xsd
|
http\://www.springframework.org/schema/jms/spring-jms-3.0.xsd=org/springframework/jms/config/spring-jms-3.0.xsd
|
||||||
|
http\://www.springframework.org/schema/jms/spring-jms.xsd=org/springframework/jms/config/spring-jms-3.0.xsd
|
||||||
|
|
|
@ -0,0 +1,442 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<xsd:schema xmlns="http://www.springframework.org/schema/jms"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:tool="http://www.springframework.org/schema/tool"
|
||||||
|
targetNamespace="http://www.springframework.org/schema/jms"
|
||||||
|
elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified">
|
||||||
|
|
||||||
|
<xsd:import namespace="http://www.springframework.org/schema/tool"/>
|
||||||
|
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
Defines the configuration elements for the Spring Framework's JMS support.
|
||||||
|
Allows for configuring JMS listener containers in XML 'shortcut' style.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:element name="listener-container">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
Each listener child element will be hosted by a container whose configuration
|
||||||
|
is determined by this parent element. This variant builds standard JMS
|
||||||
|
listener containers, operating against a specified JMS ConnectionFactory.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation>
|
||||||
|
<tool:exports type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="container-type" default="default">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The type of this listener container: "default" or "simple", choosing
|
||||||
|
between DefaultMessageListenerContainer and SimpleMessageListenerContainer.
|
||||||
|
The "102" suffix adapts to a JMS provider that implements JMS 1.0.2 only.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:NMTOKEN">
|
||||||
|
<xsd:enumeration value="default"/>
|
||||||
|
<xsd:enumeration value="default102"/>
|
||||||
|
<xsd:enumeration value="simple"/>
|
||||||
|
<xsd:enumeration value="simple102"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="container-class" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A custom listener container implementation class as fully qualified class name.
|
||||||
|
Default is Spring's standard DefaultMessageListenerContainer or
|
||||||
|
SimpleMessageListenerContainer, according to the "container-type" attribute.
|
||||||
|
Note that a custom container class will typically be a subclass of either of
|
||||||
|
those two Spring-provided standard container classes: Nake sure that the
|
||||||
|
"container-type" attribute matches the actual base type that the custom class
|
||||||
|
derives from ("default" will usually be fine anyway, since most custom classes
|
||||||
|
will derive from DefaultMessageListenerContainer).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation>
|
||||||
|
<tool:expected-type type="java.lang.Class"/>
|
||||||
|
<tool:assignable-to type="org.springframework.jms.listener.AbstractMessageListenerContainer"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="connection-factory" type="xsd:string" default="connectionFactory">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the JMS ConnectionFactory bean.
|
||||||
|
Default is "connectionFactory".
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="javax.jms.ConnectionFactory"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="task-executor" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to a Spring TaskExecutor (or standard JDK 1.5 Executor) for executing
|
||||||
|
JMS listener invokers. Default is a SimpleAsyncTaskExecutor in case of a
|
||||||
|
DefaultMessageListenerContainer, using internally managed threads. For a
|
||||||
|
SimpleMessageListenerContainer, listeners will always get invoked within the
|
||||||
|
JMS provider's receive thread by default.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="java.util.concurrent.Executor"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="destination-resolver" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the DestinationResolver strategy for resolving destination names.
|
||||||
|
Default is a DynamicDestinationResolver, using the JMS provider's queue/topic
|
||||||
|
name resolution. Alternatively, specify a reference to a JndiDestinationResolver
|
||||||
|
(typically in a J2EE environment).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="message-converter" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the MessageConverter strategy for converting JMS Messages to
|
||||||
|
listener method arguments. Default is a SimpleMessageConverter.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="destination-type" default="queue">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The JMS destination type for this listener: "queue", "topic" or "durableTopic".
|
||||||
|
The default is "queue".
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:NMTOKEN">
|
||||||
|
<xsd:enumeration value="queue"/>
|
||||||
|
<xsd:enumeration value="topic"/>
|
||||||
|
<xsd:enumeration value="durableTopic"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="client-id" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The JMS client id for this listener container.
|
||||||
|
Needs to be specified when using durable subscriptions.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="cache" default="auto">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The cache level for JMS resources: "none", "connection", "session", "consumer"
|
||||||
|
or "auto". By default ("auto"), the cache level will effectively be "consumer",
|
||||||
|
unless an external transaction manager has been specified - in which case the
|
||||||
|
effective default will be "none" (assuming J2EE-style transaction management
|
||||||
|
where the given ConnectionFactory is an XA-aware pool).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:NMTOKEN">
|
||||||
|
<xsd:enumeration value="none"/>
|
||||||
|
<xsd:enumeration value="connection"/>
|
||||||
|
<xsd:enumeration value="session"/>
|
||||||
|
<xsd:enumeration value="consumer"/>
|
||||||
|
<xsd:enumeration value="auto"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="acknowledge" default="auto">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
|
||||||
|
A value of "transacted" effectively activates a locally transacted Session;
|
||||||
|
as alternative, specify an external "transaction-manager" via the corresponding
|
||||||
|
attribute. Default is "auto".
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:NMTOKEN">
|
||||||
|
<xsd:enumeration value="auto"/>
|
||||||
|
<xsd:enumeration value="client"/>
|
||||||
|
<xsd:enumeration value="dups-ok"/>
|
||||||
|
<xsd:enumeration value="transacted"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="transaction-manager" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to an external PlatformTransactionManager (typically an
|
||||||
|
XA-based transaction coordinator, e.g. Spring's JtaTransactionManager).
|
||||||
|
If not specified, native acknowledging will be used (see "acknowledge" attribute).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="org.springframework.transaction.PlatformTransactionManager"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="concurrency" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The number of concurrent sessions/consumers to start for each listener.
|
||||||
|
Can either be a simple number indicating the maximum number (e.g. "5")
|
||||||
|
or a range indicating the lower as well as the upper limit (e.g. "3-5").
|
||||||
|
Note that a specified minimum is just a hint and might be ignored at runtime.
|
||||||
|
Default is 1; keep concurrency limited to 1 in case of a topic listener
|
||||||
|
or if message ordering is important; consider raising it for general queues.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="prefetch" type="xsd:int">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The maximum number of messages to load into a single session.
|
||||||
|
Note that raising this number might lead to starvation of concurrent consumers!
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
|
||||||
|
<xsd:element name="jca-listener-container">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
Each listener child element will be hosted by a container whose configuration
|
||||||
|
is determined by this parent element. This variant builds standard JCA-based
|
||||||
|
listener containers, operating against a specified JCA ResourceAdapter
|
||||||
|
(which needs to be provided by the JMS message broker, e.g. ActiveMQ).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation>
|
||||||
|
<tool:exports type="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="resource-adapter" type="xsd:string" default="resourceAdapter">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the JCA ResourceAdapter bean for the JMS provider.
|
||||||
|
Default is "resourceAdapter".
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="javax.resource.spi.ResourceAdapter"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="activation-spec-factory" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the JmsActivationSpecFactory.
|
||||||
|
Default is to autodetect the JMS provider and its ActivationSpec class
|
||||||
|
(see DefaultJmsActivationSpecFactory).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="org.springframework.jms.listener.endpoint.JmsActivationSpecFactory"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="destination-resolver" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the DestinationResolver strategy for resolving destination names.
|
||||||
|
Default is to pass in the destination name Strings into the JCA ActivationSpec as-is.
|
||||||
|
Alternatively, specify a reference to a JndiDestinationResolver (typically in a J2EE
|
||||||
|
environment, in particular if the server insists on receiving Destination objects).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="org.springframework.jms.support.destination.DestinationResolver"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="message-converter" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the MessageConverter strategy for converting JMS Messages to
|
||||||
|
listener method arguments. Default is a SimpleMessageConverter.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref">
|
||||||
|
<tool:expected-type type="org.springframework.jms.support.converter.MessageConverter"/>
|
||||||
|
</tool:annotation>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="destination-type" default="queue">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The JMS destination type for this listener: "queue", "topic" or "durableTopic".
|
||||||
|
Default is "queue".
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:NMTOKEN">
|
||||||
|
<xsd:enumeration value="queue"/>
|
||||||
|
<xsd:enumeration value="topic"/>
|
||||||
|
<xsd:enumeration value="durableTopic"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="client-id" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The JMS client id for this listener container.
|
||||||
|
Needs to be specified when using durable subscriptions.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="acknowledge" default="auto">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The native JMS acknowledge mode: "auto", "client", "dups-ok" or "transacted".
|
||||||
|
A value of "transacted" effectively activates a locally transacted Session;
|
||||||
|
as alternative, specify an external "transaction-manager" via the corresponding
|
||||||
|
attribute. Default is "auto".
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleType>
|
||||||
|
<xsd:restriction base="xsd:NMTOKEN">
|
||||||
|
<xsd:enumeration value="auto"/>
|
||||||
|
<xsd:enumeration value="client"/>
|
||||||
|
<xsd:enumeration value="dups-ok"/>
|
||||||
|
<xsd:enumeration value="transacted"/>
|
||||||
|
</xsd:restriction>
|
||||||
|
</xsd:simpleType>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="transaction-manager" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
A reference to the Spring JtaTransactionManager or [javax.transaction.TransactionManager],
|
||||||
|
for kicking off an XA transaction for each incoming message.
|
||||||
|
If not specified, native acknowledging will be used (see "acknowledge" attribute).
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref"/>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="concurrency" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The number of concurrent sessions/consumers to start for each listener.
|
||||||
|
Can either be a simple number indicating the maximum number (e.g. "5")
|
||||||
|
or a range indicating the lower as well as the upper limit (e.g. "3-5").
|
||||||
|
Note that a specified minimum is just a hint and will typically be ignored
|
||||||
|
at runtime when using a JCA listener container. Default is 1.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="prefetch" type="xsd:int">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The maximum number of messages to load into a single session.
|
||||||
|
Note that raising this number might lead to starvation of concurrent consumers!
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
|
||||||
|
<xsd:complexType name="listenerType">
|
||||||
|
<xsd:attribute name="id" type="xsd:ID">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The unique identifier for a listener.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="destination" type="xsd:string" use="required">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The destination name for this listener, resolved through the
|
||||||
|
container-wide DestinationResolver strategy (if any). Required.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="subscription" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The name for the durable subscription, if any.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="selector" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The JMS message selector for this listener.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="ref" type="xsd:string" use="required">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The bean name of the listener object, implementing
|
||||||
|
the MessageListener/SessionAwareMessageListener interface
|
||||||
|
or defining the specified listener method. Required.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
<xsd:appinfo>
|
||||||
|
<tool:annotation kind="ref"/>
|
||||||
|
</xsd:appinfo>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="method" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The name of the listener method to invoke. If not specified,
|
||||||
|
the target bean is supposed to implement the MessageListener
|
||||||
|
or SessionAwareMessageListener interface.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
<xsd:attribute name="response-destination" type="xsd:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation><![CDATA[
|
||||||
|
The name of the default response destination to send response messages to.
|
||||||
|
This will be applied in case of a request message that does not carry
|
||||||
|
a "JMSReplyTo" field. The type of this destination will be determined
|
||||||
|
by the listener-container's "destination-type" attribute.
|
||||||
|
Note: This only applies to a listener method with a return value,
|
||||||
|
for which each result object will be converted into a response message.
|
||||||
|
]]></xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:attribute>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
</xsd:schema>
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -28,7 +28,6 @@ import org.springframework.beans.factory.BeanFactoryAware;
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.ListableBeanFactory;
|
import org.springframework.beans.factory.ListableBeanFactory;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract exporter for JAX-WS services, autodetecting annotated service beans
|
* Abstract exporter for JAX-WS services, autodetecting annotated service beans
|
||||||
|
@ -74,15 +73,6 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the Spring TaskExecutor to use for dispatching incoming requests
|
|
||||||
* to exported service instances.
|
|
||||||
* @see javax.xml.ws.Endpoint#setExecutor
|
|
||||||
*/
|
|
||||||
public void setTaskExecutor(TaskExecutor executor) {
|
|
||||||
this.executor = executor;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtains all web service beans and publishes them as JAX-WS endpoints.
|
* Obtains all web service beans and publishes them as JAX-WS endpoints.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -22,8 +22,6 @@ import javax.xml.namespace.QName;
|
||||||
import javax.xml.ws.Service;
|
import javax.xml.ws.Service;
|
||||||
import javax.xml.ws.handler.HandlerResolver;
|
import javax.xml.ws.handler.HandlerResolver;
|
||||||
|
|
||||||
import org.springframework.core.task.TaskExecutor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory for locally defined JAX-WS {@link javax.xml.ws.Service} references.
|
* Factory for locally defined JAX-WS {@link javax.xml.ws.Service} references.
|
||||||
* Uses the JAX-WS {@link javax.xml.ws.Service#create} factory API underneath.
|
* Uses the JAX-WS {@link javax.xml.ws.Service#create} factory API underneath.
|
||||||
|
@ -104,15 +102,6 @@ public class LocalJaxWsServiceFactory {
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the Spring TaskExecutor to use for asynchronous executions
|
|
||||||
* that require callbacks.
|
|
||||||
* @see javax.xml.ws.Service#setExecutor
|
|
||||||
*/
|
|
||||||
public void setTaskExecutor(TaskExecutor executor) {
|
|
||||||
this.executor = executor;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the JAX-WS HandlerResolver to use for all proxies and dispatchers
|
* Set the JAX-WS HandlerResolver to use for all proxies and dispatchers
|
||||||
* created through this factory.
|
* created through this factory.
|
||||||
|
|
Loading…
Reference in New Issue