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.3 by tdb, Mon Nov 13 16:11:03 2000 UTC vs.
Revision 1.16 by tdb, Tue Mar 13 19:05:22 2001 UTC

# Line 1 | Line 1
1   //---PACKAGE DECLARATION---
2 + package uk.ac.ukc.iscream.core;
3  
4   //---IMPORTS---
5 < import core.*;
6 < import java.util.*;
7 < import java.io.*;
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
# Line 11 | Line 14 | import java.io.*;
14   * set their configuration from a central location.
15   *
16   * When classes want their configuration, they contact
17 < * the Configurator, which will locate their config,
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   *
# Line 36 | Line 39 | class ConfigurationServant extends ConfigurationPOA {
39  
40      /**
41       * Creates a new ConfigurationServant taking a hook
42 <     * to a file containing the configuration.
42 >     * to a Properties object containing the configuration.
43       *
44 <     * @param propertiesStream an InputStream connected to the configuration
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(File configurationFile, Logger logRef) {
50 <        _lastModified = configurationFile.lastModified();
51 <        
52 <        _logRef = logRef;
53 <        _logRef.write(this.toString(), "created - last modified:" + getLastModified());
54 <        
55 <        try {
56 <            InputStream configurationStream = new FileInputStream(configurationFile);
57 <            _properties.load(configurationStream);
52 <        } catch (Exception e) {
53 <            // ****************************************
54 <            // either IOException from the .load() or
55 <            // a SecurityException or FileNotFoundException from
56 <            // the inputStream, not sure what to do yet!!!
57 <        }
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---
# Line 71 | Line 71 | class ConfigurationServant extends ConfigurationPOA {
71      }
72      
73      /**
74 <     * Overrides the {@link #java.lang.Object.toString() Object.toString()}
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 this.getClass().getName() + ":" + REVISION;
83 >        return FormatName.getName(
84 >            _name,
85 >            getClass().getName(),
86 >            REVISION);
87      }
88  
89 +    public void disconnect() {
90 +        try {
91 +            org.omg.CORBA.Object objRef = _refman.getRootPOA().servant_to_reference(this);
92 +            _refman.getORB().disconnect(objRef);
93 +        } catch(Exception e) {
94 +            _logger.write(this.toString(), Logger.ERROR, "disconnect failed: "+e);
95 +        }
96 +    }
97 +        
98 +
99   //---PRIVATE METHODS---
100  
101 +    /**
102 +     * Overridden for debugging purposes
103 +     * to see when an instance of this class
104 +     * is destroyed
105 +     */
106 +    protected void finalize() throws Throwable {
107 +        _logger.write(this.toString(), Logger.DEBUG, "finalized");
108 +    }
109 +
110   //---ACCESSOR/MUTATOR METHODS---
111  
112      /**
# Line 94 | Line 119 | class ConfigurationServant extends ConfigurationPOA {
119          return _lastModified;
120      }
121  
122 +    /**
123 +     * Returns the list of files used to build the Properties
124 +     * this object is using.
125 +     *
126 +     * @return the list of files
127 +     */
128 +    public String getFileList() {
129 +        return _fileList;
130 +    }
131 +
132   //---ATTRIBUTES---
133  
134      /**
# Line 102 | Line 137 | class ConfigurationServant extends ConfigurationPOA {
137      private Properties _properties = new Properties();
138  
139      /**
140 <     * Reference to a Logger
140 >     * This holds a reference to the
141 >     * system logger that is being used.
142       */
143 <    private Logger _logRef;
143 >    private Logger _logger = ReferenceManager.getInstance().getLogger();
144  
145      /**
146 +     * A reference to the reference manager in use
147 +     */
148 +    private ReferenceManager _refman = ReferenceManager.getInstance();
149 +    
150 +    /**
151 +     * This is the friendly identifier of the
152 +     * component this class is running in.
153 +     * eg, a Filter may be called "filter1",
154 +     * If this class does not have an owning
155 +     * component,  a name from the configuration
156 +     * can be placed here.  This name could also
157 +     * be changed to null for utility classes.
158 +     */
159 +    private String _name = Core.NAME;
160 +
161 +    /**
162       * The date stamp of the configuration file
163       * this object is using
164       */
165      private long _lastModified;
166 +    
167 +    /**
168 +     * The list of files that were used to build this configuration
169 +     */
170 +    private String _fileList;
171      
172   //---STATIC ATTRIBUTES---
173  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines