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"/>