Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
6cdc25d6
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6cdc25d6
编写于
2月 05, 2009
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
all "taskExecutor" bean properties now accept any "java.util.concurrent.Executor"
上级
ea54c639
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
479 addition
and
69 deletion
+479
-69
org.springframework.context.support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java
...mework/scheduling/quartz/LocalTaskExecutorThreadPool.java
+6
-6
org.springframework.context.support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java
...ringframework/scheduling/quartz/SchedulerFactoryBean.java
+12
-13
org.springframework.context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java
...work/context/event/SimpleApplicationEventMulticaster.java
+6
-5
org.springframework.context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java
...amework/remoting/support/SimpleHttpServerFactoryBean.java
+1
-10
org.springframework.jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java
...amework/jms/listener/DefaultMessageListenerContainer.java
+4
-5
org.springframework.jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java
...ramework/jms/listener/SimpleMessageListenerContainer.java
+4
-6
org.springframework.jms/src/main/resources/META-INF/spring.schemas
...gframework.jms/src/main/resources/META-INF/spring.schemas
+2
-1
org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.0.xsd
...sources/org/springframework/jms/config/spring-jms-3.0.xsd
+442
-0
org.springframework.web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java
...ramework/remoting/jaxws/AbstractJaxWsServiceExporter.java
+1
-11
org.springframework.web/src/main/java/org/springframework/remoting/jaxws/LocalJaxWsServiceFactory.java
...ingframework/remoting/jaxws/LocalJaxWsServiceFactory.java
+1
-12
未找到文件。
org.springframework.context.support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
6
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -16,14 +16,14 @@
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.LogFactory
;
import
org.quartz.SchedulerConfigException
;
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
* TaskExecutor instance, specified on SchedulerFactoryBean.
...
...
@@ -37,7 +37,7 @@ public class LocalTaskExecutorThreadPool implements ThreadPool {
/** Logger available to subclasses */
protected
final
Log
logger
=
LogFactory
.
getLog
(
getClass
());
private
Task
Executor
taskExecutor
;
private
Executor
taskExecutor
;
public
void
initialize
()
throws
SchedulerConfigException
{
...
...
@@ -66,7 +66,7 @@ public class LocalTaskExecutorThreadPool implements ThreadPool {
this
.
taskExecutor
.
execute
(
runnable
);
return
true
;
}
catch
(
TaskRejected
Exception
ex
)
{
catch
(
RejectedExecution
Exception
ex
)
{
logger
.
error
(
"Task has been rejected by TaskExecutor"
,
ex
);
return
false
;
}
...
...
org.springframework.context.support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -19,7 +19,7 @@ package org.springframework.scheduling.quartz;
import
java.io.IOException
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.concurrent.Executor
;
import
javax.sql.DataSource
;
import
org.quartz.Scheduler
;
...
...
@@ -42,7 +42,6 @@ import org.springframework.context.Lifecycle;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.core.io.support.PropertiesLoaderUtils
;
import
org.springframework.core.task.TaskExecutor
;
import
org.springframework.scheduling.SchedulingException
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -88,7 +87,7 @@ import org.springframework.util.CollectionUtils;
* @see org.springframework.transaction.interceptor.TransactionProxyFactoryBean
*/
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"
;
...
...
@@ -98,8 +97,8 @@ public class SchedulerFactoryBean extends SchedulerAccessor
private
static
final
ThreadLocal
<
ResourceLoader
>
configTimeResourceLoaderHolder
=
new
ThreadLocal
<
ResourceLoader
>();
private
static
final
ThreadLocal
<
Task
Executor
>
configTimeTaskExecutorHolder
=
new
ThreadLocal
<
Task
Executor
>();
private
static
final
ThreadLocal
<
Executor
>
configTimeTaskExecutorHolder
=
new
ThreadLocal
<
Executor
>();
private
static
final
ThreadLocal
<
DataSource
>
configTimeDataSourceHolder
=
new
ThreadLocal
<
DataSource
>();
...
...
@@ -129,7 +128,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor
* @see #setTaskExecutor
* @see LocalTaskExecutorThreadPool
*/
public
static
Task
Executor
getConfigTimeTaskExecutor
()
{
public
static
Executor
getConfigTimeTaskExecutor
()
{
return
configTimeTaskExecutorHolder
.
get
();
}
...
...
@@ -169,7 +168,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor
private
Properties
quartzProperties
;
private
Task
Executor
taskExecutor
;
private
Executor
taskExecutor
;
private
DataSource
dataSource
;
...
...
@@ -261,7 +260,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor
* @see org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public
void
setTaskExecutor
(
Task
Executor
taskExecutor
)
{
public
void
setTaskExecutor
(
Executor
taskExecutor
)
{
this
.
taskExecutor
=
taskExecutor
;
}
...
...
@@ -416,14 +415,14 @@ public class SchedulerFactoryBean extends SchedulerAccessor
//---------------------------------------------------------------------
public
void
afterPropertiesSet
()
throws
Exception
{
if
(
this
.
applicationContext
!=
null
&&
this
.
resourceLoader
==
null
)
{
this
.
resourceLoader
=
this
.
applicationContext
;
}
if
(
this
.
dataSource
==
null
&&
this
.
nonTransactionalDataSource
!=
null
)
{
this
.
dataSource
=
this
.
nonTransactionalDataSource
;
}
if
(
this
.
applicationContext
!=
null
&&
this
.
resourceLoader
==
null
)
{
this
.
resourceLoader
=
this
.
applicationContext
;
}
// Create SchedulerFactory instance.
SchedulerFactory
schedulerFactory
=
(
SchedulerFactory
)
BeanUtils
.
instantiateClass
(
this
.
schedulerFactoryClass
);
...
...
org.springframework.context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -16,10 +16,11 @@
package
org.springframework.context.event
;
import
java.util.concurrent.Executor
;
import
org.springframework.context.ApplicationEvent
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.core.task.SyncTaskExecutor
;
import
org.springframework.core.task.TaskExecutor
;
/**
* Simple implementation of the {@link ApplicationEventMulticaster} interface.
...
...
@@ -41,7 +42,7 @@ import org.springframework.core.task.TaskExecutor;
*/
public
class
SimpleApplicationEventMulticaster
extends
AbstractApplicationEventMulticaster
{
private
Task
Executor
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.scheduling.timer.TimerTaskExecutor
*/
public
void
setTaskExecutor
(
Task
Executor
taskExecutor
)
{
public
void
setTaskExecutor
(
Executor
taskExecutor
)
{
this
.
taskExecutor
=
(
taskExecutor
!=
null
?
taskExecutor
:
new
SyncTaskExecutor
());
}
/**
* Return the current TaskExecutor for this multicaster.
*/
protected
Task
Executor
getTaskExecutor
()
{
protected
Executor
getTaskExecutor
()
{
return
this
.
taskExecutor
;
}
...
...
org.springframework.context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -33,7 +33,6 @@ import org.apache.commons.logging.LogFactory;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.beans.factory.FactoryBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.core.task.TaskExecutor
;
/**
* {@link org.springframework.beans.factory.FactoryBean} that creates a simple
...
...
@@ -114,14 +113,6 @@ public class SimpleHttpServerFactoryBean implements FactoryBean, InitializingBea
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}
* for specific context paths.
...
...
org.springframework.jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -17,9 +17,8 @@
package
org.springframework.jms.listener
;
import
java.util.HashSet
;
import
java.util.Iterator
;
import
java.util.Set
;
import
java.util.concurrent.Executor
;
import
javax.jms.Connection
;
import
javax.jms.JMSException
;
import
javax.jms.MessageConsumer
;
...
...
@@ -165,7 +164,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
private
static
final
Constants
constants
=
new
Constants
(
DefaultMessageListenerContainer
.
class
);
private
Task
Executor
taskExecutor
;
private
Executor
taskExecutor
;
private
long
recoveryInterval
=
DEFAULT_RECOVERY_INTERVAL
;
...
...
@@ -204,7 +203,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public
void
setTaskExecutor
(
Task
Executor
taskExecutor
)
{
public
void
setTaskExecutor
(
Executor
taskExecutor
)
{
this
.
taskExecutor
=
taskExecutor
;
}
...
...
org.springframework.jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -17,9 +17,8 @@
package
org.springframework.jms.listener
;
import
java.util.HashSet
;
import
java.util.Iterator
;
import
java.util.Set
;
import
java.util.concurrent.Executor
;
import
javax.jms.Connection
;
import
javax.jms.Destination
;
import
javax.jms.ExceptionListener
;
...
...
@@ -30,7 +29,6 @@ import javax.jms.MessageListener;
import
javax.jms.Session
;
import
javax.jms.Topic
;
import
org.springframework.core.task.TaskExecutor
;
import
org.springframework.jms.support.JmsUtils
;
import
org.springframework.transaction.support.TransactionSynchronizationManager
;
import
org.springframework.util.Assert
;
...
...
@@ -70,7 +68,7 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta
private
int
concurrentConsumers
=
1
;
private
Task
Executor
taskExecutor
;
private
Executor
taskExecutor
;
private
Set
<
Session
>
sessions
;
...
...
@@ -134,7 +132,7 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public
void
setTaskExecutor
(
Task
Executor
taskExecutor
)
{
public
void
setTaskExecutor
(
Executor
taskExecutor
)
{
this
.
taskExecutor
=
taskExecutor
;
}
...
...
org.springframework.jms/src/main/resources/META-INF/spring.schemas
浏览文件 @
6cdc25d6
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
org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.0.xsd
0 → 100644
浏览文件 @
6cdc25d6
<?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>
org.springframework.web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -28,7 +28,6 @@ import org.springframework.beans.factory.BeanFactoryAware;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.ListableBeanFactory
;
import
org.springframework.core.task.TaskExecutor
;
/**
* Abstract exporter for JAX-WS services, autodetecting annotated service beans
...
...
@@ -74,15 +73,6 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
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.
*/
...
...
org.springframework.web/src/main/java/org/springframework/remoting/jaxws/LocalJaxWsServiceFactory.java
浏览文件 @
6cdc25d6
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
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.
...
...
@@ -22,8 +22,6 @@ import javax.xml.namespace.QName;
import
javax.xml.ws.Service
;
import
javax.xml.ws.handler.HandlerResolver
;
import
org.springframework.core.task.TaskExecutor
;
/**
* 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.
...
...
@@ -104,15 +102,6 @@ public class LocalJaxWsServiceFactory {
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
* created through this factory.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录