You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2014/08/12 18:34:50 UTC
[1/4] git commit: [CXF-5898] Update the SAAJ bundle version
Repository: cxf
Updated Branches:
refs/heads/3.0.x-fixes bf8047c90 -> f748f268e
[CXF-5898] Update the SAAJ bundle version
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/91071134
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/91071134
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/91071134
Branch: refs/heads/3.0.x-fixes
Commit: 910711344ce42cac6967c7bbe00fe03f06af27bc
Parents: bf8047c
Author: Daniel Kulp <dk...@apache.org>
Authored: Tue Aug 12 12:01:47 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue Aug 12 12:27:36 2014 -0400
----------------------------------------------------------------------
osgi/karaf/features/src/main/resources/features.xml | 1 +
parent/pom.xml | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/91071134/osgi/karaf/features/src/main/resources/features.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf/features/src/main/resources/features.xml b/osgi/karaf/features/src/main/resources/features.xml
index ccc2061..ba0f543 100644
--- a/osgi/karaf/features/src/main/resources/features.xml
+++ b/osgi/karaf/features/src/main/resources/features.xml
@@ -57,6 +57,7 @@
<bundle start-level="25" dependency="true">mvn:commons-codec/commons-codec/${cxf.commons-codec.version}</bundle>
<bundle start-level="25" dependency="true">mvn:org.apache.santuario/xmlsec/${cxf.xmlsec.bundle.version}</bundle>
<bundle start-level="25" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.opensaml/${cxf.opensaml.osgi.version}</bundle>
+ <bundle start-level="25">mvn:org.jvnet.staxex/stax-ex/${cxf.stax-ex.version}</bundle>
<bundle start-level="25">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/${cxf.saaj-impl.bundle.version}</bundle>
<bundle start-level="25">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${cxf.xmlresolver.bundle.version}</bundle>
<bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${cxf.xerces.bundle.version}</bundle>
http://git-wip-us.apache.org/repos/asf/cxf/blob/91071134/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 3abbe26..27e8c1d 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -185,7 +185,8 @@
<cxf.servicemix.specs.version.jaxrs>2.4.0</cxf.servicemix.specs.version.jaxrs>
<cxf.javax.mail.version>1.4.4</cxf.javax.mail.version>
<cxf.jaxb.bundle.version>2.2.1.1_2</cxf.jaxb.bundle.version>
- <cxf.saaj-impl.bundle.version>1.3.23_1</cxf.saaj-impl.bundle.version>
+ <cxf.saaj-impl.bundle.version>1.3.23_2</cxf.saaj-impl.bundle.version>
+ <cxf.stax-ex.version>1.7.6</cxf.stax-ex.version>
<cxf.wsdl4j.bundle.version>1.6.3_1</cxf.wsdl4j.bundle.version>
<cxf.xmlsec.bundle.version>2.0.1</cxf.xmlsec.bundle.version>
<cxf.rhino.bundle.version>1.7R2_3</cxf.rhino.bundle.version>
[4/4] git commit: Recording .gitmergeinfo Changes
Posted by dk...@apache.org.
Recording .gitmergeinfo Changes
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/f748f268
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/f748f268
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/f748f268
Branch: refs/heads/3.0.x-fixes
Commit: f748f268e59874f741a667bbc3db6b5cf4b708c4
Parents: 27ec561
Author: Daniel Kulp <dk...@apache.org>
Authored: Tue Aug 12 12:30:15 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue Aug 12 12:34:14 2014 -0400
----------------------------------------------------------------------
.gitmergeinfo | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/f748f268/.gitmergeinfo
----------------------------------------------------------------------
diff --git a/.gitmergeinfo b/.gitmergeinfo
index f39dc65..cf57f82 100644
--- a/.gitmergeinfo
+++ b/.gitmergeinfo
@@ -1,20 +1,43 @@
origin/master
B 0c0555f4ac850ec8e38302d73207170affe4376a
+B 13dfe0f9fcaa0aee4c603072436d85861a0ab734
+B 161e10bb2d87573974b8a1748f023c47ebbe5d49
+B 1824d9cae26c3b141d873d0d01036602ac339c37
B 2004b1021ce0d0975eb49cae36416863bd8c59bb
B 3b1a8cc3a8c1b213a8f6728ae9154cf14c9c1300
+B 46838d8a346687e9f8ff2f6e279e3ba83f99c5f3
+B 470bdcb40597dce5e5cf957000ab60b0b4c1fce4
+B 478de215af2da2c03f439bbbd8341b234bb7bee8
+B 4f61ca801deed173c648b2d424ac231663acd704
B 51f433d54a1d11eac25c32b0dd69f12fef62c060
B 5fbd407bac5af5e55bb280125405d75b7add872b
+B 6256b7c7c42bb01d2cc0d16d659ba1aa3042e7ae
B 67432aef1adb8e330c054431de9d0955e3993472
B 6e4f0f60785de1f5774644323edafb4741b9e4a4
+B 71488c6fa7635c88285214a0479379aafef9ed3c
B 75c69b27a7688dfac281d4acdcff3b0acc4c8bee
B 87e146fd90e8f860eb7f2a8e99ad792e7fba175b
+B 88adfaf2ad97b4968b0dc47194b29c717b138d7a
B 8e028a617f026fca2499f850bb680ada0692d681
+B 8f967643447ceec89e58b079d8d8fc00cf232a02
B 90312bc48f6e564bcafdaaebc3cd596c966ee674
+B 91d6630c53f222544e4bb512fb5c918d68518138
B 92c4738f9e6b96fe0ce8586bb36b9c6444d6e225
+B 944eb0ba1043bd4daf9cf087b66bc9cab10b8ff2
B 9ea935fcbf3869f5fa4fd1e75a0a2309cc780415
+B a4315cb442fa31960cbd47f11e95e81b4a71441d
+B a5f8a4dd4d9ecbfc1f8a1a8e5bcb4af17f561cc5
+B a7b79ea692add4f9da0f1232e3bfb338099f4147
B b4536602d376a36bcbd02d21d5ab42f19d4e5b22
+B b67537dbace0896073b55b375b8ccdc4cce83365
+B bb1edc5dd96c50ed2c3294f6834310e0a6d4381e
+B c044f726fae2a2f35ce5c6c3b9ebbfe54125ad11
B d391d9371d8505c7774308c4fbbb9bc57ffd34a6
B d3e9295d3acfe3c970a325bbbafdba83a0d6e83c
+B e242307ad8bbe53788f3e03e9e2f0ca977d01340
+B ea778c4f38f882dc97d23bd200683fd9d48b4718
B ecbf4e78586870a507fe4cf91239d51c3f202aad
+B f2f6aa016cdd1bb49698b319806a8369f149c8dd
B f942e1e15d6c4fa83e305eb7452dca8fc80cbdcf
+M 67201fdde69488e511deb3d24794984afc01fe2d
[2/4] git commit: No need to lock for the getClassObject call once
the class is loaded. Removes most locking in most cases within
ExtensionManagerImpl.
Posted by dk...@apache.org.
No need to lock for the getClassObject call once the class is loaded. Removes most locking in most cases within ExtensionManagerImpl.
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/07dd9386
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/07dd9386
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/07dd9386
Branch: refs/heads/3.0.x-fixes
Commit: 07dd93864acf1a9ba9cfd4af03dc69d0944f3864
Parents: 9107113
Author: Daniel Kulp <dk...@apache.org>
Authored: Tue Aug 12 11:54:47 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue Aug 12 12:27:39 2014 -0400
----------------------------------------------------------------------
.../org/apache/cxf/bus/extension/Extension.java | 19 +++--
.../cxf/bus/extension/ExtensionManagerImpl.java | 75 ++++++++++----------
2 files changed, 51 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/07dd9386/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/bus/extension/Extension.java b/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
index 85e0860..81cd8aa 100644
--- a/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
+++ b/core/src/main/java/org/apache/cxf/bus/extension/Extension.java
@@ -37,8 +37,8 @@ public class Extension {
protected String className;
protected ClassLoader classloader;
- protected Class<?> clazz;
- protected Class<?> intf;
+ protected volatile Class<?> clazz;
+ protected volatile Class<?> intf;
protected String interfaceName;
protected boolean deferred;
protected Collection<String> namespaces = new ArrayList<String>();
@@ -191,8 +191,13 @@ public class Extension {
if (notFound) {
return null;
}
- if (clazz == null) {
- clazz = tryClass(className, cl);
+ if (clazz != null) {
+ return clazz;
+ }
+ synchronized (this) {
+ if (clazz == null) {
+ clazz = tryClass(className, cl);
+ }
}
return clazz;
}
@@ -287,7 +292,11 @@ public class Extension {
if (intf != null || notFound) {
return intf;
}
- intf = tryClass(interfaceName, cl);
+ synchronized (this) {
+ if (intf == null) {
+ intf = tryClass(interfaceName, cl);
+ }
+ }
return intf;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/07dd9386/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java b/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
index 79b88a6..620a7b9 100644
--- a/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
+++ b/core/src/main/java/org/apache/cxf/bus/extension/ExtensionManagerImpl.java
@@ -134,9 +134,9 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
public <T> void activateAllByType(Class<T> type) {
for (Extension e : all.values()) {
if (e.getLoadedObject() == null) {
- synchronized (e) {
- Class<?> cls = e.getClassObject(loader);
- if (cls != null && type.isAssignableFrom(cls)) {
+ Class<?> cls = e.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
+ synchronized (e) {
loadAndRegister(e);
}
}
@@ -191,18 +191,17 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
}
final void loadAndRegister(Extension e) {
+ Class<?> cls = null;
+ if (null != e.getInterfaceName() && !"".equals(e.getInterfaceName())) {
+ cls = e.loadInterface(loader);
+ } else {
+ cls = e.getClassObject(loader);
+ }
+ if (null != activated && null != cls && null != activated.get(cls)) {
+ return;
+ }
+
synchronized (e) {
- Class<?> cls = null;
- if (null != e.getInterfaceName() && !"".equals(e.getInterfaceName())) {
- cls = e.loadInterface(loader);
- } else {
- cls = e.getClassObject(loader);
- }
-
- if (null != activated && null != cls && null != activated.get(cls)) {
- return;
- }
-
Object obj = e.load(loader, bus);
if (obj == null) {
return;
@@ -255,10 +254,9 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
}
Extension e = all.get(name);
if (e != null) {
- synchronized (e) {
- Class<?> cls = e.getClassObject(loader);
-
- if (cls != null && type.isAssignableFrom(e.getClassObject(loader))) {
+ Class<?> cls = e.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
+ synchronized (e) {
if (e.getLoadedObject() == null) {
loadAndRegister(e);
}
@@ -295,9 +293,9 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
public List<String> getBeanNamesOfType(Class<?> type) {
List<String> ret = new LinkedList<String>();
for (Extension ex : all.values()) {
- synchronized (ex) {
- Class<?> cls = ex.getClassObject(loader);
- if (cls != null && type.isAssignableFrom(cls)) {
+ Class<?> cls = ex.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
+ synchronized (ex) {
ret.add(ex.getName());
}
}
@@ -321,9 +319,9 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
List<T> ret = new LinkedList<T>();
Extension ext = all.get(type.getName());
if (ext != null) {
- synchronized (ext) {
- Class<?> cls = ext.getClassObject(loader);
- if (cls != null && type.isAssignableFrom(cls)) {
+ Class<?> cls = ext.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
+ synchronized (ext) {
if (ext.getLoadedObject() == null) {
loadAndRegister(ext);
}
@@ -333,9 +331,9 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
}
for (Extension ex : all.values()) {
if (ex != ext) {
- synchronized (ex) {
- Class<?> cls = ex.getClassObject(loader);
- if (cls != null && type.isAssignableFrom(cls)) {
+ Class<?> cls = ex.getClassObject(loader);
+ if (cls != null && type.isAssignableFrom(cls)) {
+ synchronized (ex) {
if (ex.getLoadedObject() == null) {
loadAndRegister(ex);
}
@@ -349,18 +347,19 @@ public class ExtensionManagerImpl implements ExtensionManager, ConfiguredBeanLoc
public <T> boolean loadBeansOfType(Class<T> type, BeanLoaderListener<T> listener) {
boolean loaded = false;
for (Extension ex : all.values()) {
- synchronized (ex) {
- Class<?> cls = ex.getClassObject(loader);
- if (cls != null
- && type.isAssignableFrom(cls)
- && listener.loadBean(ex.getName(), cls.asSubclass(type))) {
- if (ex.getLoadedObject() == null) {
- loadAndRegister(ex);
- }
- if (listener.beanLoaded(ex.getName(), type.cast(ex.getLoadedObject()))) {
- return true;
+ Class<?> cls = ex.getClassObject(loader);
+ if (cls != null
+ && type.isAssignableFrom(cls)) {
+ synchronized (ex) {
+ if (listener.loadBean(ex.getName(), cls.asSubclass(type))) {
+ if (ex.getLoadedObject() == null) {
+ loadAndRegister(ex);
+ }
+ if (listener.beanLoaded(ex.getName(), type.cast(ex.getLoadedObject()))) {
+ return true;
+ }
+ loaded = true;
}
- loaded = true;
}
}
}
[3/4] git commit: Squashed commit of the following: This closes #17
Posted by dk...@apache.org.
Squashed commit of the following:
This closes #17
commit d45ac9a6f2853dc6e125be524c1527b3b02924e8
Merge: 4b2ae04 bb1edc5
Author: Alexander Zobkov <al...@gmail.com>
Date: Sun Aug 10 09:58:40 2014 +0400
Syncing with upstream repository and resolving conflicts around threadname prefix feature
commit 4b2ae049adee7c068fe22f63ebd2dd44eeaae92d
Author: Alexander Zobkov <al...@gmail.com>
Date: Wed Jul 30 20:22:23 2014 +0400
Allow to configure the thread name prefix for threads that are used by the Jetty instance for processing requests
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/27ec5612
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/27ec5612
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/27ec5612
Branch: refs/heads/3.0.x-fixes
Commit: 27ec561253027ad1fe493fa1a835c1a21f5eef1d
Parents: 07dd938
Author: Daniel Kulp <dk...@apache.org>
Authored: Tue Aug 12 12:16:51 2014 -0400
Committer: Daniel Kulp <dk...@apache.org>
Committed: Tue Aug 12 12:33:52 2014 -0400
----------------------------------------------------------------------
.../http_jetty/JettyHTTPServerEngine.java | 33 ++++-------
.../JettyHTTPServerEngineFactory.java | 3 +-
.../http_jetty/ThreadingParameters.java | 16 +++++
.../JettyHTTPServerEngineFactoryHolder.java | 1 +
.../osgi/HTTPJettyTransportActivator.java | 2 +
...ttyHTTPServerEngineBeanDefinitionParser.java | 3 +
.../spring/JettySpringTypesFactory.java | 1 +
.../schemas/configuration/http-jetty.xsd | 5 ++
.../http_jetty/JettyHTTPServerEngineTest.java | 61 +++++++++++++++++++-
.../spring/ApplicationContextTest.java | 6 +-
.../transport/http_jetty/spring/bean.properties | 1 +
.../transport/http_jetty/spring/beans-props.xml | 4 +-
.../cxf/transport/http_jetty/spring/beans.xml | 4 +-
13 files changed, 111 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
index c490c7c..011f937 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngine.java
@@ -500,28 +500,17 @@ public class JettyHTTPServerEngine
getThreadingParameters().getMaxThreads(),
acc));
}
- if (pool instanceof QueuedThreadPool) {
- QueuedThreadPool pl = (QueuedThreadPool)pool;
- if (getThreadingParameters().isSetMinThreads()) {
- pl.setMinThreads(getThreadingParameters().getMinThreads());
- }
- if (getThreadingParameters().isSetMaxThreads()) {
- pl.setMaxThreads(getThreadingParameters().getMaxThreads());
- }
- } else {
- try {
- if (getThreadingParameters().isSetMinThreads()) {
- pool.getClass().getMethod("setMinThreads", Integer.TYPE)
- .invoke(pool, getThreadingParameters().getMinThreads());
- }
- if (getThreadingParameters().isSetMaxThreads()) {
- pool.getClass().getMethod("setMaxThreads", Integer.TYPE)
- .invoke(pool, getThreadingParameters().getMaxThreads());
- }
- } catch (Throwable t) {
- //ignore - this won't happen for Jetty 7.1 - 7.2 and 7.3 and newer
- //will be instanceof QueuedThreadPool above
- }
+ if (!(pool instanceof QueuedThreadPool)) {
+ throw new Fault(new Message("NOT_A_QUEUED_THREAD_POOL", LOG, pool.getClass()));
+ }
+ if (getThreadingParameters().isThreadNamePrefixSet()) {
+ ((QueuedThreadPool) pool).setName(getThreadingParameters().getThreadNamePrefix());
+ }
+ if (getThreadingParameters().isSetMinThreads()) {
+ ((QueuedThreadPool) pool).setMinThreads(getThreadingParameters().getMinThreads());
+ }
+ if (getThreadingParameters().isSetMaxThreads()) {
+ ((QueuedThreadPool) pool).setMaxThreads(getThreadingParameters().getMaxThreads());
}
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
index 85b128e..23bfafb 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineFactory.java
@@ -278,9 +278,10 @@ public class JettyHTTPServerEngineFactory {
if (LOG.isLoggable(Level.INFO)) {
final int min = fallbackThreadingParameters.getMinThreads();
final int max = fallbackThreadingParameters.getMaxThreads();
+ final String threadNamePrefix = fallbackThreadingParameters.getThreadNamePrefix();
LOG.log(Level.INFO,
"FALLBACK_THREADING_PARAMETERS_MSG",
- new Object[] {port, min, max});
+ new Object[] {port, min, max, threadNamePrefix});
}
ref.setThreadingParameters(fallbackThreadingParameters);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ThreadingParameters.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ThreadingParameters.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ThreadingParameters.java
index 511874b..7c3ca51 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ThreadingParameters.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ThreadingParameters.java
@@ -26,8 +26,10 @@ public class ThreadingParameters {
private int minThreads;
private int maxThreads;
+ private String threadNamePrefix;
private boolean minThreadsSet;
private boolean maxThreadsSet;
+ private boolean threadNamePrefixSet;
public void setMinThreads(int number) {
minThreadsSet = true;
@@ -38,6 +40,15 @@ public class ThreadingParameters {
maxThreadsSet = true;
maxThreads = number;
}
+
+ public String getThreadNamePrefix() {
+ return threadNamePrefix;
+ }
+
+ public void setThreadNamePrefix(String threadNamePrefix) {
+ threadNamePrefixSet = true;
+ this.threadNamePrefix = threadNamePrefix;
+ }
public int getMinThreads() {
return minThreads;
@@ -54,4 +65,9 @@ public class ThreadingParameters {
public boolean isSetMinThreads() {
return minThreadsSet;
}
+
+ public boolean isThreadNamePrefixSet() {
+ return threadNamePrefixSet;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
index a4dd160..ace5b41 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/JettyHTTPServerEngineFactoryHolder.java
@@ -93,6 +93,7 @@ public class JettyHTTPServerEngineFactoryHolder {
String id = threads.getId();
rThreads.setMaxThreads(threads.getThreadingParameters().getMaxThreads());
rThreads.setMinThreads(threads.getThreadingParameters().getMinThreads());
+ rThreads.setThreadNamePrefix(threads.getThreadingParameters().getThreadNamePrefix());
threadingParametersMap.put(id, rThreads);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/osgi/HTTPJettyTransportActivator.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/osgi/HTTPJettyTransportActivator.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/osgi/HTTPJettyTransportActivator.java
index 6feaec2..5160e53 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/osgi/HTTPJettyTransportActivator.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/osgi/HTTPJettyTransportActivator.java
@@ -163,6 +163,8 @@ public class HTTPJettyTransportActivator
p.setMinThreads(Integer.parseInt(v));
} else if ("maxThreads".equals(k)) {
p.setMaxThreads(Integer.parseInt(v));
+ } else if ("threadNamePrefix".equals(k)) {
+ p.setThreadNamePrefix(k);
}
}
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
index 97f66e3..a17e5bb 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettyHTTPServerEngineBeanDefinitionParser.java
@@ -226,6 +226,9 @@ public class JettyHTTPServerEngineBeanDefinitionParser extends AbstractBeanDefin
if (paramtype.getMinThreads() != null) {
params.setMinThreads(paramtype.getMinThreads());
}
+ if (paramtype.getThreadNamePrefix() != null) {
+ params.setThreadNamePrefix(paramtype.getThreadNamePrefix());
+ }
return params;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettySpringTypesFactory.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettySpringTypesFactory.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettySpringTypesFactory.java
index 9cb1478..2a1fda6 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettySpringTypesFactory.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/spring/JettySpringTypesFactory.java
@@ -62,6 +62,7 @@ public final class JettySpringTypesFactory {
ThreadingParameters params = new ThreadingParameters();
params.setMaxThreads(paramtype.getMaxThreads());
params.setMinThreads(paramtype.getMinThreads());
+ params.setThreadNamePrefix(paramtype.getThreadNamePrefix());
return params;
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd b/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd
index ce1e5c5..f444bdc 100644
--- a/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd
+++ b/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd
@@ -52,6 +52,11 @@
<xs:documentation>Specifies the maximum number of threads available to the Jetty instance for processing requests.</xs:documentation>
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="threadNamePrefix" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>Specifies the thread name prefix for threads that are used by the Jetty instance for processing requests.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
</xs:complexType>
<xs:complexType name="ThreadingParametersIdentifiedType">
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
index bcf6735..5dda188 100644
--- a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
+++ b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerEngineTest.java
@@ -29,6 +29,7 @@ import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import javax.management.ObjectName;
@@ -49,7 +50,8 @@ import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.server.ssl.SslSocketConnector;
-
+import org.eclipse.jetty.util.thread.QueuedThreadPool;
+import org.eclipse.jetty.util.thread.ThreadPool;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -89,7 +91,64 @@ public class JettyHTTPServerEngineTest extends Assert {
factory.setBus(bus);
}
+
+ /**
+ * Check that names of threads serving requests for instances of JettyHTTPServerEngine
+ * can be set with user specified name.
+ */
+ @Test
+ public void testSettingThreadNames() throws Exception {
+ // User specific thread name prefix 1
+ String threadNamePrefix1 = "TestPrefix";
+ JettyHTTPServerEngine engine = factory.createJettyHTTPServerEngine(PORT1, "http");
+ ThreadingParameters parameters = new ThreadingParameters();
+ parameters.setThreadNamePrefix(threadNamePrefix1);
+ engine.setThreadingParameters(parameters);
+ engine.finalizeConfig();
+ JettyHTTPTestHandler handler = new JettyHTTPTestHandler("string1", true);
+ engine.addServant(new URL("https://localhost:" + PORT1 + "/test"), handler);
+ assertTrue("No threads whose name is started with " + threadNamePrefix1,
+ checkForExistenceOfThreads(threadNamePrefix1));
+
+ // Default thread name prefix
+ engine = factory.createJettyHTTPServerEngine(PORT3, "http");
+ engine.finalizeConfig();
+ handler = new JettyHTTPTestHandler("string3", true);
+ engine.addServant(new URL("https://localhost:" + PORT3 + "/test"), handler);
+ ThreadPool threadPool = engine.getServer().getThreadPool();
+ QueuedThreadPool qtp = (QueuedThreadPool)threadPool;
+ String prefixDefault = qtp.getName();
+ assertTrue("No threads whose name is started with " + prefixDefault,
+ checkForExistenceOfThreads(prefixDefault));
+
+ // User specific thread name prefix 2
+ String threadNamePrefix2 = "AnotherPrefix";
+ engine = factory.createJettyHTTPServerEngine(PORT2, "http");
+ parameters = new ThreadingParameters();
+ parameters.setThreadNamePrefix(threadNamePrefix2);
+ engine.setThreadingParameters(parameters);
+ engine.finalizeConfig();
+ handler = new JettyHTTPTestHandler("string2", true);
+ engine.addServant(new URL("https://localhost:" + PORT2 + "/test"), handler);
+ assertTrue("No threads whose name is started with " + threadNamePrefix2,
+ checkForExistenceOfThreads(threadNamePrefix2));
+
+ JettyHTTPServerEngineFactory.destroyForPort(PORT1);
+ JettyHTTPServerEngineFactory.destroyForPort(PORT2);
+ JettyHTTPServerEngineFactory.destroyForPort(PORT3);
+ }
+ private boolean checkForExistenceOfThreads(String prefixName) {
+ Map<Thread, StackTraceElement[]> threads = Thread.getAllStackTraces();
+ Set<Thread> threadSet = threads.keySet();
+ for (Thread thread : threadSet) {
+ if (thread.getName().startsWith(prefixName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Test
public void testEngineRetrieval() throws Exception {
JettyHTTPServerEngine engine =
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
index 7b38288..753dbcf 100644
--- a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
+++ b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
@@ -116,6 +116,7 @@ public class ApplicationContextTest extends Assert {
JettyHTTPServerEngine engine = (JettyHTTPServerEngine)jd.getEngine();
assertEquals(111, engine.getThreadingParameters().getMinThreads());
assertEquals(120, engine.getThreadingParameters().getMaxThreads());
+ assertEquals("TestPrefix", engine.getThreadingParameters().getThreadNamePrefix());
ConduitInitiatorManager cim = bus.getExtension(ConduitInitiatorManager.class);
ConduitInitiator ci = cim.getConduitInitiator("http://cxf.apache.org/transports/http");
@@ -135,6 +136,8 @@ public class ApplicationContextTest extends Assert {
assertFalse(engine.getSendServerVersion());
assertEquals(99, engine.getThreadingParameters().getMinThreads());
assertEquals(777, engine.getThreadingParameters().getMaxThreads());
+ assertEquals("AnotherPrefix", engine.getThreadingParameters().getThreadNamePrefix());
+
assertTrue("The engine should support session manager", engine.isSessionSupport());
assertNotNull("The handlers should not be null", engine.getHandlers());
assertEquals(1, engine.getHandlers().size());
@@ -148,6 +151,7 @@ public class ApplicationContextTest extends Assert {
engine = (JettyHTTPServerEngine)jd3.getEngine();
assertEquals(111, engine.getThreadingParameters().getMinThreads());
assertEquals(120, engine.getThreadingParameters().getMaxThreads());
+ assertEquals("TestPrefix", engine.getThreadingParameters().getThreadNamePrefix());
assertEquals(engine.getTlsServerParameters().getClientAuthentication().isWant(), true);
assertEquals(engine.getTlsServerParameters().getClientAuthentication().isRequired(), true);
@@ -180,6 +184,6 @@ public class ApplicationContextTest extends Assert {
info2.setAddress(address);
return info2;
}
-
+
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
index e96685d..54f2000 100644
--- a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
+++ b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
@@ -26,5 +26,6 @@ engine.port.zero.minThreads=21
engine.port.zero.maxThreads=389
engine.port.nine.one.minThreads=99
engine.port.nine.one.maxThreads=777
+engine.port.nine.one.threadNamePrefix=AnotherPrefix
engine.port.nine.one.maxIdle=40000
engine.port.nine.one.sendServerVersion=false
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
index ea3aaa8..a8b8365 100644
--- a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
+++ b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
@@ -47,7 +47,7 @@
</hj:tlsServerParameters>
</hj:identifiedTLSServerParameters>
<hj:identifiedThreadingParameters id="sampleThreading1">
- <hj:threadingParameters minThreads="111" maxThreads="120"/>
+ <hj:threadingParameters minThreads="111" maxThreads="120" threadNamePrefix="TestPrefix"/>
</hj:identifiedThreadingParameters>
<hj:engine port="${engine.port.nine.zero}">
<hj:threadingParametersRef id="sampleThreading1"/>
@@ -56,7 +56,7 @@
<hj:threadingParameters minThreads="${engine.port.zero.minThreads}" maxThreads="${engine.port.zero.maxThreads}"/>
</hj:engine>
<hj:engine port="$(engine.port.nine.one)" maxIdleTime="$(engine.port.nine.one.maxIdle)" sendServerVersion="$(engine.port.nine.one.sendServerVersion)">
- <hj:threadingParameters minThreads="${engine.port.nine.one.minThreads}" maxThreads="${engine.port.nine.one.maxThreads}"/>
+ <hj:threadingParameters minThreads="${engine.port.nine.one.minThreads}" maxThreads="${engine.port.nine.one.maxThreads}" threadNamePrefix="${engine.port.nine.one.threadNamePrefix}"/>
<hj:connector>
<beans:bean class="org.eclipse.jetty.server.bio.SocketConnector">
<beans:property name="port" value="${engine.port.nine.one}"/>
http://git-wip-us.apache.org/repos/asf/cxf/blob/27ec5612/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
index e52d93a..0561360 100644
--- a/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
+++ b/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans.xml
@@ -34,7 +34,7 @@
</hj:tlsServerParameters>
</hj:identifiedTLSServerParameters>
<hj:identifiedThreadingParameters id="sampleThreading1">
- <hj:threadingParameters minThreads="111" maxThreads="120"/>
+ <hj:threadingParameters minThreads="111" maxThreads="120" threadNamePrefix="TestPrefix"/>
</hj:identifiedThreadingParameters>
<hj:engine port="9000" maxIdleTime="30000">
<hj:threadingParametersRef id="sampleThreading1"/>
@@ -43,7 +43,7 @@
<hj:threadingParameters minThreads="21" maxThreads="389"/>
</hj:engine>
<hj:engine port="9001" maxIdleTime="40000" sendServerVersion="false">
- <hj:threadingParameters minThreads="99" maxThreads="777"/>
+ <hj:threadingParameters minThreads="99" maxThreads="777" threadNamePrefix="AnotherPrefix"/>
<hj:connector>
<beans:bean class="org.eclipse.jetty.server.bio.SocketConnector">
<beans:property name="port" value="9001"/>