KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > enterprise > admin > monitor > registry > spi > reconfig > DynamicReconfigurator


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the License). You may not use this file except in
5  * compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * https://glassfish.dev.java.net/public/CDDLv1.0.html or
9  * glassfish/bootstrap/legal/CDDLv1.0.txt.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * Header Notice in each file and include the License file
15  * at glassfish/bootstrap/legal/CDDLv1.0.txt.
16  * If applicable, add the following below the CDDL Header,
17  * with the fields enclosed by brackets [] replaced by
18  * you own identifying information:
19  * "Portions Copyrighted [year] [name of copyright owner]"
20  *
21  * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
22  */

23
24 /* DynamicReconfigurator.java
25  * $Id: DynamicReconfigurator.java,v 1.3 2005/12/25 03:43:38 tcfujii Exp $
26  * $Revision: 1.3 $
27  * $Date: 2005/12/25 03:43:38 $
28  * Indentation Information:
29  * 0. Please (try to) preserve these settings.
30  * 1. Tabs are preferred over spaces.
31  * 2. In vi/vim -
32  * :set tabstop=4 :set shiftwidth=4 :set softtabstop=4
33  * 3. In S1 Studio -
34  * 1. Tools->Options->Editor Settings->Java Editor->Tab Size = 4
35  * 2. Tools->Options->Indentation Engines->Java Indentation Engine->Expand Tabs to Spaces = False.
36  * 3. Tools->Options->Indentation Engines->Java Indentation Engine->Number of Spaces per Tab = 4.
37  */

38
39 package com.sun.enterprise.admin.monitor.registry.spi.reconfig;
40
41 import com.sun.enterprise.admin.monitor.registry.StatsHolder;
42 import com.sun.enterprise.admin.monitor.registry.MonitoredObjectType;
43 import com.sun.enterprise.admin.monitor.registry.MonitoringLevel;
44 import com.sun.enterprise.admin.monitor.registry.MonitoringLevelListener;
45
46 import com.sun.enterprise.admin.monitor.registry.spi.ValueListMap;
47
48 /**
49  *
50  * @author <a HREF="mailto:Kedar.Mhaswade@sun.com">Kedar Mhaswade</a>
51  * @since S1AS8.0
52  * @version $Revision: 1.3 $
53  */

54 public final class DynamicReconfigurator implements ChangeHandler {
55     
56     private final ValueListMap listeners;
57     private ChangeHandler successor;
58     
59     public DynamicReconfigurator(ValueListMap listeners) {
60         this.listeners = listeners;
61         chain();
62     }
63     public void addListener(MonitoredObjectType type, MonitoringLevelListener listener) {
64         if (listeners != null)
65             listeners.put(type, listener);
66     }
67     public void removeListener(MonitoringLevelListener listener) {
68         listeners.remove(listener);
69     }
70     public void handleChange(MonitoredObjectType type, MonitoringLevel from, MonitoringLevel to) {
71         successor.handleChange(type, from, to);
72     }
73     
74     private void chain() {
75         // exercise care while forming this chain.
76
final ChangeHandler c = new EmptyChangeHandler();
77         final ChangeHandler j = new JVMChangeHandler(c, listeners);
78         final ChangeHandler w = new WebContainerChangeHandler(j, listeners);
79         final ChangeHandler e = new EjbContainerChangeHandler(w, listeners);
80         final ChangeHandler ts = new TransactionServiceChangeHandler(e, listeners);
81         final ChangeHandler hs = new HttpServiceChangeHandler(ts, listeners);
82         final ChangeHandler orb = new OrbChangeHandler(hs, listeners);
83         final ChangeHandler tp = new ThreadPoolChangeHandler(orb, listeners);
84         final ChangeHandler cp = new ConnectionPoolChangeHandler(tp, listeners);
85         this.successor = cp;
86     }
87 }
88
Popular Tags