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.4 by tdb, Mon Nov 13 16:36:03 2000 UTC vs.
Revision 1.18 by tdb, Tue Mar 13 20:56:01 2001 UTC

# Line 1 | Line 1
1   //---PACKAGE DECLARATION---
2 + package uk.ac.ukc.iscream.core;
3  
4   //---IMPORTS---
5 < import uk.ac.ukc.iscream.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 +    /**
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      /**
# Line 94 | Line 122 | class ConfigurationServant extends ConfigurationPOA {
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      /**
# Line 102 | Line 140 | class ConfigurationServant extends ConfigurationPOA {
140      private Properties _properties = new Properties();
141  
142      /**
143 <     * Reference to a Logger
143 >     * This holds a reference to the
144 >     * system logger that is being used.
145       */
146 <    private Logger _logRef;
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  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines