KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > pool > performance > SleepingObjectFactory


1 /*
2  * Copyright 1999-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.commons.pool.performance;
18
19 import org.apache.commons.pool.PoolableObjectFactory;
20
21 /**
22  * Sleepy ObjectFactory (everything takes a while longer)
23  *
24  * @author Dirk Verbeeck
25  * @version $Revision$ $Date: 2005-02-26 05:13:28 -0800 (Sat, 26 Feb 2005) $
26  */

27 public class SleepingObjectFactory implements PoolableObjectFactory {
28
29     private int counter = 0;
30     private boolean debug = false;
31
32     public Object JavaDoc makeObject() throws Exception JavaDoc {
33         Object JavaDoc obj = new Integer JavaDoc(counter++);
34         debug("makeObject", obj);
35         sleep(500);
36         return obj;
37     }
38
39     public void destroyObject(Object JavaDoc obj) throws Exception JavaDoc {
40         debug("destroyObject", obj);
41         sleep(250);
42     }
43
44     public boolean validateObject(Object JavaDoc obj) {
45         debug("validateObject", obj);
46         sleep(30);
47         return true;
48     }
49
50     public void activateObject(Object JavaDoc obj) throws Exception JavaDoc {
51         debug("activateObject", obj);
52         sleep(10);
53     }
54
55     public void passivateObject(Object JavaDoc obj) throws Exception JavaDoc {
56         debug("passivateObject", obj);
57         sleep(10);
58     }
59     
60     private void debug(String JavaDoc method, Object JavaDoc obj) {
61         if (debug) {
62             String JavaDoc thread = "thread" + Thread.currentThread().getName();
63             System.out.println(thread + ": " + method + " " + obj);
64         }
65     }
66     
67     private void sleep(long millis) {
68         try {
69             Thread.sleep(millis);
70         }
71         catch (InterruptedException JavaDoc e) {
72         }
73     }
74
75     public boolean isDebug() {
76         return debug;
77     }
78
79     public void setDebug(boolean b) {
80         debug = b;
81     }
82 }
83
Popular Tags