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.18
Committed: Tue Mar 13 20:56:01 2001 UTC (23 years, 2 months ago) by tdb
Branch: MAIN
Changes since 1.17: +4 -4 lines
Log Message:
Now has correct code for disconnecting from the ORB.

We were using the ORB to do the disconnect however it appears this is deprecated.  Thus we now use the new method of deactivating from the POA.

File Contents

# Content
1 //---PACKAGE DECLARATION---
2 package uk.ac.ukc.iscream.core;
3
4 //---IMPORTS---
5 import uk.ac.ukc.iscream.util.*;
6 import uk.ac.ukc.iscream.componentmanager.*;
7 import java.util.Properties;
8 import java.util.Date;
9 import java.text.DateFormat;
10
11 /**
12 * An implementation of the Configuration IDL
13 * This class allows i-scream modules to read and even
14 * set their configuration from a central location.
15 *
16 * When classes want their configuration, they contact
17 * the ConfigurationManager, which will locate their config,
18 * open it and pass it to a Configuration object which is
19 * then passed back to the calling class.
20 *
21 * Essentially this class behaves in a similar fashion
22 * to the java.util.Properties class.
23 *
24 * @author $Author: tdb1 $
25 * @version $Id: ConfigurationServant.java,v 1.17 2001/03/13 19:14:15 tdb1 Exp $
26 */
27 class ConfigurationServant extends ConfigurationPOA {
28
29 //---FINAL ATTRIBUTES---
30
31 /**
32 * The current CVS revision of this class
33 */
34 public final String REVISION = "$Revision: 1.17 $";
35
36 //---STATIC METHODS---
37
38 //---CONSTRUCTORS---
39
40 /**
41 * Creates a new ConfigurationServant taking a hook
42 * to a Properties object containing the configuration.
43 *
44 * @param properties a Properties object that contains the full properties for this configuration
45 * @param fileList the list of config files used to build this configuration
46 * @param lastModified the most recent last modified value for the file list
47 * @param logRef a reference to the logger system
48 */
49 ConfigurationServant(Properties properties, String fileList, long lastModified) {
50 // assign local variables
51 _properties = properties;
52 _lastModified = lastModified;
53 _fileList = fileList;
54 _logger.write(toString(), Logger.SYSINIT, "created");
55 String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date(getLastModified()));
56 _logger.write(toString(), Logger.SYSMSG, "last modified - " + date);
57 _logger.write(toString(), Logger.DEBUG, "file list - " + _fileList);
58 }
59
60 //---PUBLIC METHODS---
61
62 /**
63 * A wrapper for java.util.Properties.getProperty
64 * When given a key it returns the value of that key
65 * ie, key = value
66 *
67 * @param key the key the value of which is wanted
68 */
69 public String getProperty(String key) {
70 return _properties.getProperty(key);
71 }
72
73 /**
74 * Overrides the {@link java.lang.Object#toString() Object.toString()}
75 * method to provide clean logging (every class should have this).
76 *
77 * This uses the uk.ac.ukc.iscream.util.FormatName class
78 * to format the toString()
79 *
80 * @return the name of this class and its CVS revision
81 */
82 public String toString() {
83 return FormatName.getName(
84 _name,
85 getClass().getName(),
86 REVISION);
87 }
88
89 /**
90 * Unhooks this Configuration object from the ORB
91 */
92 public void disconnect() {
93 try {
94 byte[] oid = _refman.getRootPOA().servant_to_id(this);
95 _refman.getRootPOA().deactivate_object(oid);
96 } catch(Exception e) {
97 _logger.write(this.toString(), Logger.ERROR, "disconnect failed: "+e);
98 }
99 }
100
101
102 //---PRIVATE METHODS---
103
104 /**
105 * Overridden for debugging purposes
106 * to see when an instance of this class
107 * is destroyed
108 */
109 protected void finalize() throws Throwable {
110 _logger.write(this.toString(), Logger.DEBUG, "finalized");
111 }
112
113 //---ACCESSOR/MUTATOR METHODS---
114
115 /**
116 * Returns the date stamp of the configuration file
117 * this object is using.
118 *
119 * @return the last modified time for the file
120 */
121 public long getLastModified() {
122 return _lastModified;
123 }
124
125 /**
126 * Returns the list of files used to build the Properties
127 * this object is using.
128 *
129 * @return the list of files
130 */
131 public String getFileList() {
132 return _fileList;
133 }
134
135 //---ATTRIBUTES---
136
137 /**
138 * The properties object that this class provides a CORBA interface to
139 */
140 private Properties _properties = new Properties();
141
142 /**
143 * This holds a reference to the
144 * system logger that is being used.
145 */
146 private Logger _logger = ReferenceManager.getInstance().getLogger();
147
148 /**
149 * A reference to the reference manager in use
150 */
151 private ReferenceManager _refman = ReferenceManager.getInstance();
152
153 /**
154 * This is the friendly identifier of the
155 * component this class is running in.
156 * eg, a Filter may be called "filter1",
157 * If this class does not have an owning
158 * component, a name from the configuration
159 * can be placed here. This name could also
160 * be changed to null for utility classes.
161 */
162 private String _name = Core.NAME;
163
164 /**
165 * The date stamp of the configuration file
166 * this object is using
167 */
168 private long _lastModified;
169
170 /**
171 * The list of files that were used to build this configuration
172 */
173 private String _fileList;
174
175 //---STATIC ATTRIBUTES---
176
177 }