KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > tanukisoftware > wrapper > test > LongRunningBackgroundThreads


1 package org.tanukisoftware.wrapper.test;
2
3 /*
4  * Copyright (c) 1999, 2006 Tanuki Software Inc.
5  *
6  * Permission is hereby granted, free of charge, to any person
7  * obtaining a copy of the Java Service Wrapper and associated
8  * documentation files (the "Software"), to deal in the Software
9  * without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sub-license,
11  * and/or sell copies of the Software, and to permit persons to
12  * whom the Software is furnished to do so, subject to the
13  * following conditions:
14  *
15  * The above copyright notice and this permission notice shall be
16  * included in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  * OTHER DEALINGS IN THE SOFTWARE.
26  *
27  *
28  * Portions of the Software have been derived from source code
29  * developed by Silver Egg Technology under the following license:
30  *
31  * Copyright (c) 2001 Silver Egg Technology
32  *
33  * Permission is hereby granted, free of charge, to any person
34  * obtaining a copy of this software and associated documentation
35  * files (the "Software"), to deal in the Software without
36  * restriction, including without limitation the rights to use,
37  * copy, modify, merge, publish, distribute, sub-license, and/or
38  * sell copies of the Software, and to permit persons to whom the
39  * Software is furnished to do so, subject to the following
40  * conditions:
41  *
42  * The above copyright notice and this permission notice shall be
43  * included in all copies or substantial portions of the Software.
44  */

45
46 import org.tanukisoftware.wrapper.WrapperManager;
47
48 /**
49  *
50  *
51  * @author Leif Mortenson <leif@tanukisoftware.com>
52  */

53 public class LongRunningBackgroundThreads implements Runnable JavaDoc {
54     private volatile int _threadCount;
55     
56     /*---------------------------------------------------------------
57      * Runnable Method
58      *-------------------------------------------------------------*/

59     public void run() {
60         ++_threadCount;
61         int loops = 0;
62         
63         while(loops < 10) {
64             loops++;
65             System.out.println(Thread.currentThread().getName() + " loop #" + loops);
66             try {
67                 Thread.sleep(500);
68             } catch (InterruptedException JavaDoc e) {
69             }
70         }
71         System.out.println(Thread.currentThread().getName() + " stopping.");
72         if(--_threadCount <= 0){
73             System.out.println("The JVM and then the wrapper should exit now.");
74         }
75     }
76     
77     /*---------------------------------------------------------------
78      * Main Method
79      *-------------------------------------------------------------*/

80     public static void main(String JavaDoc[] args) {
81         System.out.println("Long-running Background Threads Running...");
82         
83         LongRunningBackgroundThreads app = new LongRunningBackgroundThreads();
84         for (int i = 0; i < 2; i++) {
85             Thread JavaDoc thread = new Thread JavaDoc(app, "App-Thread-" + i);
86             thread.start();
87         }
88         
89         System.out.println("Running as a service: " + WrapperManager.isLaunchedAsService());
90         System.out.println("Controlled by wrapper: " + WrapperManager.isControlledByNativeWrapper());
91         
92         System.out.println("Long-running Background Threads Main Done...");
93     }
94 }
95
Popular Tags