ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/core/ConfigurationServant.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/core/ConfigurationServant.java (file contents):
Revision 1.10 by ajm, Mon Nov 20 17:11:44 2000 UTC vs.
Revision 1.23 by tdb, Wed Feb 5 16:43:47 2003 UTC

# Line 1 | Line 1
1 < //---PACKAGE DECLARATION---
2 <
3 < //---IMPORTS---
4 < import uk.ac.ukc.iscream.core.*;
5 < import java.util.*;
6 < import java.io.*;
7 < import java.text.DateFormat;
8 <
9 < /**
10 < * An implementation of the Configuration IDL
11 < * This class allows i-scream modules to read and even
12 < * set their configuration from a central location.
13 < *
14 < * When classes want their configuration, they contact
15 < * the Configurator, which will locate their config,
16 < * open it and pass it to a Configuration object which is
17 < * then passed back to the calling class.
18 < *
19 < * Essentially this class behaves in a similar fashion
20 < * to the java.util.Properties class.
21 < *
22 < * @author  $Author$
23 < * @version $Id$
24 < */
25 < class ConfigurationServant extends ConfigurationPOA {
26 <
27 < //---FINAL ATTRIBUTES---
28 <
29 <    /**
30 <     * The current CVS revision of this class
31 <     */
32 <    public final String REVISION = "$Revision$";
33 <    
34 < //---STATIC METHODS---
35 <
36 < //---CONSTRUCTORS---
37 <
38 <    /**
39 <     * Creates a new ConfigurationServant taking a hook
40 <     * to a file containing the configuration.
41 <     *
42 <     * @param propertiesStream an InputStream connected to the configuration
43 <     */
44 <    ConfigurationServant(Properties properties, long lastModified, Logger logRef) {
45 <        _properties = properties;
46 <        _lastModified = lastModified;
47 <        _logRef = logRef;
48 <        _logRef.write(this.toString(), Logger.SYSINIT, "created");
49 <        String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date(getLastModified()));
50 <        _logRef.write(this.toString(), Logger.SYSMSG, "last modified - " + date);
51 <    }
52 <
53 < //---PUBLIC METHODS---
54 <
55 <    /**
56 <     * A wrapper for java.util.Properties.getProperty
57 <     * When given a key it returns the value of that key
58 <     * ie, key = value
59 <     *
60 <     * @param key the key the value of which is wanted
61 <     */
62 <    public String getProperty(String key) {
63 <        return _properties.getProperty(key);
64 <    }
65 <    
66 <    /**
67 <     * Overrides the {@link java.lang.Object#toString() Object.toString()}
68 <     * method to provide clean logging (every class should have this).
69 <     *
70 <     * @return the name of this class and its CVS revision
71 <     */
72 <    public String toString() {
73 <        return this.getClass().getName() + "(" + REVISION.substring(11, REVISION.length() - 2) + ")";
74 <    }
75 <
76 < //---PRIVATE METHODS---
77 <
78 <    protected void finalize() throws Throwable {
79 <        _logRef.write(this.toString(), Logger.DEBUG, "finalized (ick, us english!)");
80 <    }
81 <
82 < //---ACCESSOR/MUTATOR METHODS---
83 <
84 <    /**
85 <     * Returns the date stamp of the configuration file
86 <     * this object is using.
87 <     *
88 <     * @return the last modified time for the file
89 <     */
90 <    public long getLastModified() {
91 <        return _lastModified;
92 <    }
93 <
94 < //---ATTRIBUTES---
95 <
96 <    /**
97 <     * The properties object that this class provides a CORBA interface to
98 <     */
99 <    private Properties _properties = new Properties();
100 <
101 <    /**
102 <     * Reference to a Logger
103 <     */
104 <    private Logger _logRef;
105 <
106 <    /**
107 <     * The date stamp of the configuration file
108 <     * this object is using
109 <     */
110 <    private long _lastModified;
111 <    
112 < //---STATIC ATTRIBUTES---
113 <
114 < }
1 > /*
2 > * i-scream central monitoring system
3 > * http://www.i-scream.org.uk
4 > * Copyright (C) 2000-2002 i-scream
5 > *
6 > * This program is free software; you can redistribute it and/or
7 > * modify it under the terms of the GNU General Public License
8 > * as published by the Free Software Foundation; either version 2
9 > * of the License, or (at your option) any later version.
10 > *
11 > * This program is distributed in the hope that it will be useful,
12 > * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 > * GNU General Public License for more details.
15 > *
16 > * You should have received a copy of the GNU General Public License
17 > * along with this program; if not, write to the Free Software
18 > * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 > */
20 >
21 > //---PACKAGE DECLARATION---
22 > package uk.org.iscream.cms.server.core;
23 >
24 > //---IMPORTS---
25 > import uk.org.iscream.cms.util.*;
26 > import uk.org.iscream.cms.server.componentmanager.*;
27 > import java.util.Properties;
28 > import java.util.Date;
29 > import java.text.DateFormat;
30 >
31 > /**
32 > * An implementation of the Configuration IDL
33 > * This class allows i-scream modules to read and even
34 > * set their configuration from a central location.
35 > *
36 > * When classes want their configuration, they contact
37 > * the ConfigurationManager, which will locate their config,
38 > * open it and pass it to a Configuration object which is
39 > * then passed back to the calling class.
40 > *
41 > * Essentially this class behaves in a similar fashion
42 > * to the java.util.Properties class.
43 > *
44 > * @author  $Author$
45 > * @version $Id$
46 > */
47 > class ConfigurationServant extends ConfigurationPOA {
48 >
49 > //---FINAL ATTRIBUTES---
50 >
51 >    /**
52 >     * The current CVS revision of this class
53 >     */
54 >    public final String REVISION = "$Revision$";
55 >    
56 > //---STATIC METHODS---
57 >
58 > //---CONSTRUCTORS---
59 >
60 >    /**
61 >     * Creates a new ConfigurationServant taking a hook
62 >     * to a Properties object containing the configuration.
63 >     *
64 >     * @param properties a Properties object that contains the full properties for this configuration
65 >     * @param fileList the list of config files used to build this configuration
66 >     * @param lastModified the most recent last modified value for the file list
67 >     * @param logRef a reference to the logger system
68 >     */
69 >    ConfigurationServant(Properties properties, String fileList, long lastModified) {
70 >        // assign local variables
71 >        _properties = properties;
72 >        _lastModified = lastModified;
73 >        _fileList = fileList;
74 >        _logger.write(toString(), Logger.SYSINIT, "created");
75 >        String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date(getLastModified()));
76 >        _logger.write(toString(), Logger.SYSMSG, "last modified - " + date);
77 >        _logger.write(toString(), Logger.DEBUG, "file list - " + _fileList);
78 >    }
79 >
80 > //---PUBLIC METHODS---
81 >
82 >    /**
83 >     * A wrapper for java.util.Properties.getProperty
84 >     * When given a key it returns the value of that key
85 >     * ie, key = value
86 >     *
87 >     * @param key the key the value of which is wanted
88 >     */
89 >    public String getProperty(String key) {
90 >        return _properties.getProperty(key);
91 >    }
92 >    
93 >    /**
94 >     * Overrides the {@link java.lang.Object#toString() Object.toString()}
95 >     * method to provide clean logging (every class should have this).
96 >     *
97 >     * This uses the uk.org.iscream.cms.util.FormatName class
98 >     * to format the toString()
99 >     *
100 >     * @return the name of this class and its CVS revision
101 >     */
102 >    public String toString() {
103 >        return FormatName.getName(
104 >            _name,
105 >            getClass().getName(),
106 >            REVISION);
107 >    }
108 >    
109 >    /**
110 >     * Unhooks this Configuration object from the ORB
111 >     */
112 >    public void disconnect() {
113 >        try {
114 >            byte[] oid = _refman.getRootPOA().servant_to_id(this);
115 >            _refman.getRootPOA().deactivate_object(oid);
116 >        } catch(Exception e) {
117 >            _logger.write(this.toString(), Logger.ERROR, "disconnect failed: "+e);
118 >        }
119 >    }
120 >        
121 >
122 > //---PRIVATE METHODS---
123 >
124 >    /**
125 >     * Overridden for debugging purposes
126 >     * to see when an instance of this class
127 >     * is destroyed
128 >     */
129 >    protected void finalize() throws Throwable {
130 >        _logger.write(this.toString(), Logger.DEBUG, "finalized");
131 >    }
132 >
133 > //---ACCESSOR/MUTATOR METHODS---
134 >
135 >    /**
136 >     * Returns the date stamp of the configuration file
137 >     * this object is using.
138 >     *
139 >     * @return the last modified time for the file
140 >     */
141 >    public long getLastModified() {
142 >        return _lastModified;
143 >    }
144 >
145 >    /**
146 >     * Returns the list of files used to build the Properties
147 >     * this object is using.
148 >     *
149 >     * @return the list of files
150 >     */
151 >    public String getFileList() {
152 >        return _fileList;
153 >    }
154 >
155 > //---ATTRIBUTES---
156 >
157 >    /**
158 >     * The properties object that this class provides a CORBA interface to
159 >     */
160 >    private Properties _properties = new Properties();
161 >
162 >    /**
163 >     * This holds a reference to the
164 >     * system logger that is being used.
165 >     */
166 >    private Logger _logger = ReferenceManager.getInstance().getLogger();
167 >
168 >    /**
169 >     * A reference to the reference manager in use
170 >     */
171 >    private ReferenceManager _refman = ReferenceManager.getInstance();
172 >    
173 >    /**
174 >     * This is the friendly identifier of the
175 >     * component this class is running in.
176 >     * eg, a Filter may be called "filter1",
177 >     * If this class does not have an owning
178 >     * component,  a name from the configuration
179 >     * can be placed here.  This name could also
180 >     * be changed to null for utility classes.
181 >     */
182 >    private String _name = Core.NAME;
183 >
184 >    /**
185 >     * The date stamp of the configuration file
186 >     * this object is using
187 >     */
188 >    private long _lastModified;
189 >    
190 >    /**
191 >     * The list of files that were used to build this configuration
192 >     */
193 >    private String _fileList;
194 >    
195 > //---STATIC ATTRIBUTES---
196 >
197 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines