(file) Return to GlobalConfig.java CVS log (file) (dir) Up to [Pegasus] / pegasus-JavaCIMClient / cimclient / org / snia / wbemcfg

  1 kumpf 1.1 //
  2           // GlobalConfig.java
  3           //
  4           // The contents of this file are subject to the SNIA Public License Version 1.0
  5           // (the "License"); you may not use this file except in compliance with the
  6           // License. You may obtain a copy of the License at
  7           //
  8           //	http://www.snia.org/resources/openSource.html
  9           //
 10           // Software distributed under the License is distributed on an "AS IS" basis,
 11           // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 
 12           // License for the specific language governing rights and limitations
 13           // under the License.
 14           //
 15           // The Original Code is GlobalConfig.java
 16           // 
 17           // The Initial Developer of the Original Code is David Simons.
 18           //
 19           // Contributor(s): Nag Boranna
 20           //
 21           //
 22 kumpf 1.1 // This source uses the Solaris WBEM APIs version 2.2. 
 23           // Synchronization will be maintained with the Solaris WBEM APIS,
 24           // which are being standardized through the Java Community Process.
 25           //
 26           //
 27 mday  1.1.4.1 // $Id: GlobalConfig.java,v 1.1 2003/07/17 18:32:55 kumpf Exp $
 28 kumpf 1.1     //
 29               package org.snia.wbemcfg;
 30               
 31               import java.util.Properties;
 32               import java.io.FileInputStream;
 33               import java.io.IOException;
 34               
 35               import org.snia.wbemcmd.utils.Log;
 36               
 37               
 38               /**
 39                * GlobalConfig provides config information in a centralized location
 40                * These configurations are used by both CIMOM and the client API.
 41                * This will use the properties if defined in cim.properties else the
 42                * default configuration will be used.
 43                *
 44                * GlobalConfig defines all the properties as static properties. Once
 45                * the GlobalConfig object gets initialized the values can not be changed.
 46                *
 47                * This class is shared by bith CIMOM and CIM Client API. CIM Clients may not
 48                * use all the properties defined here; However, CIMOM may use.
 49 kumpf 1.1      */
 50               public class GlobalConfig 
 51               {
 52                   
 53                   ///////////////////////////////////////////////////////////////////
 54                   // Following properties are used by both CIMOM and Client API.
 55                   //
 56                   ///////////////////////////////////////////////////////////////////
 57               
 58                   /**
 59                    *  httpClient specifies the class that will be used
 60                    *  to act as an HTTPClient currently it can be set to either.
 61                    * 
 62                    */ 
 63                   static public String httpClient = "org.snia.wbemcmd.xml.HTTPOutputSimple";
 64               
 65               
 66                   /**
 67                    * Provides basic XML request, response logging.
 68                    */
 69                   static public boolean DEBUG_XML= false;
 70 kumpf 1.1     
 71               
 72                   /**
 73                    * Provides XML parser level(each XML node) logging.
 74                    */
 75                   static public boolean DEBUG_XMLDECODE = false;      
 76                   
 77               
 78                   /**
 79                    *  Name of file with absolute path used for client Log.
 80                    */
 81                   static public String clientLogFilePath = null;
 82               
 83                   /**
 84                    * Default logging file.
 85                    */
 86                   static public String defaultLogFile = "log.txt";
 87               
 88               
 89                   /**
 90                    * Specify the Socket Provider used to create sockets for HTTP 
 91 kumpf 1.1          * communication. 
 92                    */
 93                   static public String httpSocketProvider = "org.snia.wbemcmd.xml.PlainSocketProvider";
 94               
 95               
 96                   /**
 97                    * Specify the Socket Provider used to create sockets for HTTPS
 98                    * communication. 
 99                    */
100                   static public String httpsSocketProvider = "org.snia.wbemcmd.xml.JSSESocketProvider";
101               
102               
103                   /**
104                    * Used only with JSSESocketProvider. Remote Clients may specify 
105                    * their own Certification Manager to use on client side. 
106                    *
107                    *  e.g., TrustManager= "org.mycompany.cimapp.myCertManager";
108                    */
109                   static public String TrustManager = null;
110               
111               
112 kumpf 1.1         ///////////////////////////////////////////////////////////////////
113                   // Following properties are used by CIMOM only.
114                   //
115                   ///////////////////////////////////////////////////////////////////
116               
117                   /**
118                      disconnectAfterTransfer determines whether the connection is dropped and made
119                      for each operation (when true). If false then the connection is held open.
120                      Holding the connection open is faster.
121                    */
122                   static public boolean disconnectAfterTransfer=false;
123               
124               
125                   /**
126                      compressStrings when true forces the server to share
127                      as much information as possible across definitions to
128                      save memory. The impact of this is a slight increase
129                      in CPU utilization when creating classes (etc), though
130                      not when retrieving AND a potential memory leak. When
131                      a class is removed any strings it used won't be.
132                    */
133 kumpf 1.1         static public boolean compressStrings=true;
134               
135               
136                   /**
137                      Set true if contentLength header is to be set on a response,
138                      otherwise the connection will be dropped at the end of the
139                      transmission (implies disconnectAfterTransfer). Enable
140                      this (set to true) for improved performance.
141                    */
142                   static public boolean useContentLength=true;
143               
144                   /**
145                      Enables threads when true
146                    */
147                   static public boolean useThreads=true;
148               
149                   /**
150                      Maximum number of threads for CIMOM
151                    */
152                   static public int maxThreadCounter=32;
153               
154 kumpf 1.1         /**
155                      Call yield after sending a request/response
156                    */
157                   static public boolean forceYield=true;
158               
159                   /**
160                      Specifies whether MOF parsing should be strict. Non strict
161                      parsing will allow classes to specify references without
162                      being formally qualified as an ASSOCIATION. This is necessary
163                      for the DMTF CIM 2.3 schema which does not correctly
164                      specify such qualifiers.
165                    */
166                   static public boolean strictParse=false;
167               
168                   /**
169                      Specifies whether persistence is required for qualifiers,
170                      classes and instances
171                    */
172                   static public boolean usePersistence=true;
173               
174                   /**
175 kumpf 1.1            basicAuthModule specifies the class that will be used
176                      to authenticate a basic authorization
177                    */
178                   static public String basicAuthModule = "org.snia.wbemcmd.xml.BasicAuthorization";
179               
180                   //
181                   // Set true to enable authorization
182                   //
183                   static public boolean requireAuthorization=false;
184               
185               
186                   /**
187                      Specify persistence directory
188                      On Unix systems set the following to /var/sniacimom/persistence
189                    */
190                   static public String persistenceDir="persistence" + java.io.File.separator;
191               
192                   /**
193                      This specifies whether providers should be called with a Vector
194                      of CIMValue instances (when callMethodsWithValues = true) otherwise
195                      providers will be called with a Vector of CIMProperty
196 kumpf 1.1          */
197                   static public boolean callMethodsWithValues = false;
198               
199                   /**
200                      Set true to enable the delivery of CIMEvents in a concurrent manner (e.g.
201                      in a separate Thread). The default value is "false".  The purpose of
202                      this new property is to control an alternative way to send the
203                      events toward the registered CIMProvider(s).  Whenever this property
204                      is "true" a separate Thread is used for the delivery of the
205                      CIMEvent(s) toward the registered CIMProvider(s) in order to prevent
206                      the current Thread to be blocked for the time required to execute the
207                      handlers.  This property can be turned-back to "false" as soon as
208                      some reentrancy problems will be appearing into the CIM-Repository
209                      or in the provider itself.
210                     */
211                   static public boolean concurrentDeliveryOfEvents = false;
212               
213               
214               
215                   /////////////////////////////////////////////////////////////////////
216                   // Set methods to set the properties
217 kumpf 1.1         //
218                   /////////////////////////////////////////////////////////////////////
219               
220                   /**
221                    * Sets the httpSocketProvider to the one specified.
222                    * @param  value - Socket Provider name.
223                    */
224                   public static void setHTTPSocketProvider(String value )
225                   {
226                        httpSocketProvider = value;
227                   }
228               
229                   /**
230                    * Sets the httpsSocketProvider to the one specified.
231                    * @param  value - Socket Provider name.
232                    */
233                   public static void setHTTPSSocketProvider(String value )
234                   {
235                        httpsSocketProvider = value;
236                   }
237               
238 kumpf 1.1         /**
239                    * Sets the TrustManager to the one specified.
240                    * @param  value - Trust manager name.
241                    */
242                   public static void setTrustManager(String value )
243                   {
244                        TrustManager = value;
245                   }
246               
247                   /**
248                    * Sets the httpclient to the one specified.
249                    * @param  value - httpClient name.
250                    */
251                   public static void setHttpClient(String value )
252                   {
253                        httpClient = value;
254                   }
255               
256                   /////////////////////////////////////////////////////////////////////
257                   // Load properties from the properties file
258                   //
259 kumpf 1.1         /////////////////////////////////////////////////////////////////////
260                   static {
261               
262               	String value = System.getProperty("org.snia.wbem.cimom.properties");
263               	if (value!=null) 
264                       {
265               	    Properties cfg = new Properties();
266               	
267               	    try {
268               	        FileInputStream ins = new FileInputStream(value);
269               	        cfg.load(ins);
270               	    
271               	        // set configuration variables.	    
272               	        value = cfg.getProperty("DEBUG_XML");
273               	        if ( value != null )
274                               {
275               		    DEBUG_XML = new Boolean(value).booleanValue();
276                               }
277               	    
278               	        value = cfg.getProperty("DEBUG_XMLDECODE");
279               	        if ( value != null )
280 kumpf 1.1                     {
281               		    DEBUG_XMLDECODE = new Boolean(value).booleanValue();;
282                               }
283               	    
284               	        value = cfg.getProperty("clientLogFilePath");
285               	        if ( value != null )
286                               {
287                                   //TODO: Validate the file path
288                                   //try
289                                   //{
290                                   //    File file = new File(value);
291                                   // 
292                                   //} catch() {
293                                   //
294                                   //}
295               
296               		    clientLogFilePath = value;
297               
298                                   //
299                                   // Set the Log file path
300                                   //
301 kumpf 1.1                         Log.assignLogFileName(clientLogFilePath);                    
302               
303                               }
304               	    
305                               value = cfg.getProperty("TrustManager");
306                               if ( value != null )
307                               {
308                                   TrustManager = value;
309                               }
310               
311               /*
312               
313                              // FOR 2.0 added by Bapu
314               	        value = cfg.getProperty("basicAuthModule");
315               	        if ( value != null)
316               		       basicAuthModule = value;
317               
318                               value = cfg.getProperty("requireAuthorization");
319                               if ( value != null )
320                                   requireAuthorization = new Boolean(value).booleanValue();
321                              // end of FOR 2.0 added by Bapu
322 kumpf 1.1     
323               	        value = cfg.getProperty("httpClient");
324               	        if ( value != null)
325                               {
326               		    httpClient = value;
327                               }
328               
329               	        value = cfg.getProperty("httpSocketProvider");
330               	        if ( value != null ) 
331                               {
332               		    httpSocketProvider = value;
333                               }
334               
335               	        value = cfg.getProperty("httpsSocketProvider");
336               	        if ( value != null ) 
337                               {
338               		    httpsSocketProvider = value;
339                               }
340               
341               */
342               
343 kumpf 1.1     	    } catch ( IOException e ) {
344               	        Log.println("Could not find the property file.\n");
345               	    } catch ( Exception e ) {
346               	        Log.println("Error setting properties, " +
347               			       "default configurations are used.\n");
348                	    }
349                       }
350                   }
351               
352               }

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2