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
Revision: 1.9
Committed: Mon Nov 20 15:49:46 2000 UTC (23 years, 5 months ago) by tdb
Branch: MAIN
Changes since 1.8: +6 -2 lines
Log Message:
Debugging to see if/when the class is cleaned up by the Garbage Collector.

File Contents

# Content
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: tdb1 $
23 * @version $Id: ConfigurationServant.java,v 1.8 2000/11/16 18:02:11 tdb1 Exp $
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: 1.8 $";
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(File configurationFile, Logger logRef) {
45 _lastModified = configurationFile.lastModified();
46 _logRef = logRef;
47
48 String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date(getLastModified()));
49 _logRef.write(this.toString(), Logger.SYSMSG, "created: " + configurationFile.getName() + "(" + date + ")" );
50
51 try {
52 InputStream configurationStream = new FileInputStream(configurationFile);
53 _properties.load(configurationStream);
54 } catch (Exception e) {
55 // ****************************************
56 // either IOException from the .load() or
57 // a SecurityException or FileNotFoundException from
58 // the inputStream, not sure what to do yet!!!
59 }
60 }
61
62 //---PUBLIC METHODS---
63
64 /**
65 * A wrapper for java.util.Properties.getProperty
66 * When given a key it returns the value of that key
67 * ie, key = value
68 *
69 * @param key the key the value of which is wanted
70 */
71 public String getProperty(String key) {
72 return _properties.getProperty(key);
73 }
74
75 /**
76 * Overrides the {@link java.lang.Object#toString() Object.toString()}
77 * method to provide clean logging (every class should have this).
78 *
79 * @return the name of this class and its CVS revision
80 */
81 public String toString() {
82 return this.getClass().getName() + "(" + REVISION.substring(11, REVISION.length() - 2) + ")";
83 }
84
85 //---PRIVATE METHODS---
86
87 protected void finalize() throws Throwable {
88 _logRef.write(this.toString(), Logger.DEBUG, "finalized (ick, us english!)");
89 }
90
91 //---ACCESSOR/MUTATOR METHODS---
92
93 /**
94 * Returns the date stamp of the configuration file
95 * this object is using.
96 *
97 * @return the last modified time for the file
98 */
99 public long getLastModified() {
100 return _lastModified;
101 }
102
103 //---ATTRIBUTES---
104
105 /**
106 * The properties object that this class provides a CORBA interface to
107 */
108 private Properties _properties = new Properties();
109
110 /**
111 * Reference to a Logger
112 */
113 private Logger _logRef;
114
115 /**
116 * The date stamp of the configuration file
117 * this object is using
118 */
119 private long _lastModified;
120
121 //---STATIC ATTRIBUTES---
122
123 }