01: /*
02: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
03: *
04: * "The contents of this file are subject to the Mozilla Public License
05: * Version 1.1 (the "License"); you may not use this file except in
06: * compliance with the License. You may obtain a copy of the License at
07: * http://www.mozilla.org/MPL/
08: *
09: * Software distributed under the License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11: * License for the specific language governing rights and limitations under
12: * the License.
13: *
14: * The Original Code is ICEfaces 1.5 open source software code, released
15: * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16: * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17: * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18: *
19: * Contributor(s): _____________________.
20: *
21: * Alternatively, the contents of this file may be used under the terms of
22: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23: * License), in which case the provisions of the LGPL License are
24: * applicable instead of those above. If you wish to allow use of your
25: * version of this file only under the terms of the LGPL License and not to
26: * allow others to use your version of this file under the MPL, indicate
27: * your decision by deleting the provisions above and replace them with
28: * the notice and other provisions required by the LGPL License. If you do
29: * not delete the provisions above, a recipient may use your version of
30: * this file under either the MPL or the LGPL License."
31: *
32: */
33:
34: package com.icesoft.faces.async.render;
35:
36: import edu.emory.mathcs.backport.java.util.concurrent.ThreadFactory;
37:
38: /**
39: * The Rendering API uses it's own ThreadFactory so that we can set the name,
40: * daemon status, and context class loader.
41: *
42: * @author ICEsoft Technologies, Inc.
43: */
44: class RenderThreadFactory implements ThreadFactory {
45:
46: public static final String PREFIX = "Render Thread - ";
47:
48: private static int threadCounter = 0;
49:
50: /**
51: * Return a new Thread using the supplied Runnable. Each thread is named
52: * using the PREFIX and a counter. The daemon status is set to true. We
53: * also set the context class loader for the thread as some J2EE containers
54: * don't do this properly.
55: *
56: * @param runnable
57: * @return A new Thread to use in the {@link RenderHub}s thread pools.
58: */
59: public Thread newThread(Runnable runnable) {
60: Thread thread = new Thread(runnable, PREFIX + (threadCounter++));
61: thread.setDaemon(true);
62: return thread;
63: }
64: }
|