ggolden 2002/09/09 19:01:27
Modified: src/java/org/apache/jetspeed/services/resources
JetspeedResources.java
Log:
When overriding settings in the JetspeedResources.properties (and
TurbineResources.properties), we might want to set a value with our
site's setting, a value that is also set in the standard jr.p and tr.p distribution
files. It's nice to be able to use these files unchanged so we can keep up easily
with Jetspeed development.
If the value we are setting is a string, this already works - the first value set to
the property is used, so we can just do our settings before the standard files
are read in.
If the value we are setting is a boolean, long, float, double, or int, this doesn't
work - we get class cast exceptions.
JetspeedSecurity, which is used by Jetspeed code to access the configuration values,
now catches these class cast exceptions, and also takes the calls to getString. If
there's an array of values, it will use the first one (it's the combination of the
array of values that mess up the reading without this).
Note: this only works for Jetspeed properties - turbine properties don't use this
code. Only string properties can be overridden by setting your site values first
for turbine properties.
Note: This code would be best deep inside turbine, but can live here till Turbine
handles these cases.
Revision Changes Path
1.13 +322 -2
jakarta-jetspeed/src/java/org/apache/jetspeed/services/resources/JetspeedResources.java
Index: JetspeedResources.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/resources/JetspeedResources.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- JetspeedResources.java 26 Jul 2002 01:47:21 -0000 1.12
+++ JetspeedResources.java 10 Sep 2002 02:01:27 -0000 1.13
@@ -55,16 +55,22 @@
package org.apache.jetspeed.services.resources;
import org.apache.turbine.services.resources.TurbineResources;
+import org.apache.turbine.util.Log;
/**
* This class defines the Jetspeed properties keys.
* All properties can be retrieved using TurbineResources or JetspeedResources
- * directly
+ * directly.
+ *
+ * This class also overrides the covers for many of the get routines. It handles
the cases
+ * where we want a single value, perhaps as a boolean or float, but the
configuration may have
+ * an array of values. In these cases, we let the first value override all the
others and use it.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Kevin A. Burton</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Rapha�l Luta</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Tom Adams</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Chris Kimpton</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Glenn R. Golden</a>
* @version $Id$
*/
public class JetspeedResources extends TurbineResources {
@@ -156,7 +162,321 @@
*/
public static final String PATH_PANEL_KEY = "select-panel";
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a boolean value.
+ *
+ * @param name The resource name.
+ * @return The value of the named resource as a boolean.
+ */
+ public static boolean getBoolean(String name)
+ {
+ try
+ {
+ return TurbineResources.getBoolean (name);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return new Boolean(values[0]).booleanValue();
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purppose of this method is to get the configuration
+ * resource with the given name as a boolean value, or a default
+ * value.
+ *
+ * @param name The resource name.
+ * @param def The default value of the resource.
+ * @return The value of the named resource as a boolean.
+ */
+ public static boolean getBoolean(String name,
+ boolean def)
+ {
+ try
+ {
+ return TurbineResources.getBoolean(name, def);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return new Boolean(values[0]).booleanValue();
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a double.
+ *
+ * @param name The resoource name.
+ * @return The value of the named resource as double.
+ */
+ public static double getDouble(String name)
+ {
+ try
+ {
+ return TurbineResources.getDouble(name);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Double.parseDouble(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a double, or a default value.
+ *
+ * @param name The resource name.
+ * @param def The default value of the resource.
+ * @return The value of the named resource as a double.
+ */
+ public static double getDouble(String name,
+ double def)
+ {
+ try
+ {
+ return TurbineResources.getDouble(name, def);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Double.parseDouble(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a float.
+ *
+ * @param name The resource name.
+ * @return The value of the resource as a float.
+ */
+ public static float getFloat(String name)
+ {
+ try
+ {
+ return TurbineResources.getFloat(name);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Float.parseFloat(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a float, or a default value.
+ *
+ * @param name The resource name.
+ * @param def The default value of the resource.
+ * @return The value of the resource as a float.
+ */
+ public static float getFloat(String name,
+ float def)
+ {
+ try
+ {
+ return TurbineResources.getFloat(name, def);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Float.parseFloat(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as an integer.
+ *
+ * @param name The resource name.
+ * @return The value of the resource as an integer.
+ */
+ public static int getInt(String name)
+ {
+ try
+ {
+ return TurbineResources.getInt(name);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Integer.parseInt(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as an integer, or a default value.
+ *
+ * @param name The resource name.
+ * @param def The default value of the resource.
+ * @return The value of the resource as an integer.
+ */
+ public static int getInt(String name,
+ int def)
+ {
+ try
+ {
+ return TurbineResources.getInt(name, def);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Integer.parseInt(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a long.
+ *
+ * @param name The resource name.
+ * @return The value of the resource as a long.
+ */
+ public static long getLong(String name)
+ {
+ try
+ {
+ return TurbineResources.getLong(name);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Long.parseLong(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a long, or a default value.
+ *
+ * @param name The resource name.
+ * @param def The default value of the resource.
+ * @return The value of the resource as a long.
+ */
+ public static long getLong(String name,
+ long def)
+ {
+ try
+ {
+ return TurbineResources.getLong(name, def);
+ }
+ catch (ClassCastException e)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+
+ // try again with the first
+ if ((values != null) && (values.length > 0))
+ return Long.parseLong(values[0]);
+
+ // otherwise, just throw the exception
+ throw e;
+ }
+ }
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a string.
+ *
+ * @param name The resource name.
+ * @return The value of the resource as a string.
+ */
+ public static String getString(String name)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+ if ((values != null) && (values.length > 0))
+ return values[0];
+ return TurbineResources.getString(name);
+ }
+ /**
+ * The purpose of this method is to get the configuration resource
+ * with the given name as a string, or a default value.
+ *
+ * @param name The resource name.
+ * @param def The default value of the resource.
+ * @return The value of the resource as a string.
+ */
+ public static String getString(String name,
+ String def)
+ {
+ // get the possible list
+ String[] values = getStringArray(name);
+ if ((values != null) && (values.length > 0))
+ return values[0];
+
+ return TurbineResources.getString(name, def);
+ }
}
+
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>