EMMA Coverage Report (generated Mon Mar 20 21:34:30 PST 2006)
[all classes][com.moesol.util]

COVERAGE SUMMARY FOR SOURCE FILE [DeveloperProperties.java]

nameclass, %method, %block, %line, %
DeveloperProperties.java100% (1/1)38%  (3/8)23%  (29/124)16%  (5.6/35)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class DeveloperProperties100% (1/1)38%  (3/8)23%  (29/124)16%  (5.6/35)
DeveloperProperties (): void 0%   (0/1)0%   (0/3)0%   (0/1)
extendPropertiesFromUserHome (Properties): void 0%   (0/1)0%   (0/42)0%   (0/13)
getDeveloperPropertiesPath (): String 0%   (0/1)0%   (0/12)0%   (0/1)
getPropertyCache (): Properties 0%   (0/1)0%   (0/17)0%   (0/8)
mustUseSystem (): boolean 0%   (0/1)0%   (0/6)0%   (0/3)
getProperty (String, String): String 100% (1/1)40%  (6/15)40%  (2/5)
<static initializer> 100% (1/1)76%  (19/25)88%  (2.6/3)
getProperty (String): String 100% (1/1)100% (4/4)100% (1/1)

1/*
2 * $Id: DeveloperProperties.java,v 1.3 2006/02/01 04:42:14 hastings Exp $
3 *
4 * (c) Copyright, Moebius Solutions, Inc., 2004
5 *
6 *                       All Rights Reserved
7 *
8 * This material may be reproduced by or for the U. S. Government
9 * pursuant to the copyright license under the clause at
10 * DFARS 252.227-7014 (OCT 2001).
11 */
12 
13package com.moesol.util;
14 
15import java.io.File;
16import java.io.FileInputStream;
17import java.io.FileNotFoundException;
18import java.io.IOException;
19import java.util.Properties;
20import java.util.logging.Level;
21import java.util.logging.Logger;
22 
23/**
24 * @author robert
25 */
26public class DeveloperProperties {
27        private static final Logger s_logger = Logger.getLogger(DeveloperProperties.class.getName());
28        
29        public static String getProperty(String name) {
30                return getProperty(name, null);
31        }
32        public static String getProperty(String name, String default_value) {
33                if (System.getProperty(name) != null) {
34                        return System.getProperty(name);
35                }
36                if (mustUseSystem()) {
37                        return default_value;
38                }
39                return getPropertyCache().getProperty(name, default_value);
40        }
41        private static boolean mustUseSystem() {
42                if (s_properties_cache == null) {
43                        getPropertyCache();
44                }
45                return s_must_use_system;
46        }
47        private static Properties getPropertyCache() {
48                if (s_properties_cache != null) {
49                        return s_properties_cache;
50                }
51                try {
52                        s_properties_cache = new Properties(System.getProperties());
53                        extendPropertiesFromUserHome(s_properties_cache);
54                } catch (SecurityException e) {
55                        // This may happen in some security contexts
56                        s_must_use_system = true;
57                }
58                return s_properties_cache;
59        }
60        private static void extendPropertiesFromUserHome(Properties p) {
61                String file_name = getDeveloperPropertiesPath();
62                s_logger.log(Level.FINE, "Using: {0}", file_name);
63                FileInputStream fis;
64                try {
65                        fis = new FileInputStream(file_name);
66                        try {
67                                p.load(fis);
68                        } catch (IOException e) {
69                                logger.log(Level.INFO, "error loading?", e);
70                        } finally {
71                                fis.close();
72                        }
73                } catch (FileNotFoundException e) {
74                        // It's okay for there to be no file
75                } catch (IOException e) {
76                        logger.log(Level.INFO, "error closing?", e);
77                }
78        }
79        private static String getDeveloperPropertiesPath() {
80                return System.getProperty("user.home") + File.separator + "com.moesol.developer.properties";
81        }
82        
83        private static boolean s_must_use_system = false;
84        private static Properties s_properties_cache;
85        private static Logger logger = Logger.getLogger(DeveloperProperties.class.getName());
86}

[all classes][com.moesol.util]
EMMA 2.0.5312 (C) Vladimir Roubtsov