This is what we did at our place to, but I could not find a way to do this for
Torque.properties.

Right now I include our torque file as the first line in the Torque.properties.
Any ideas on how to do this better?

Thanks
Pat


"Glenn R. Golden" wrote:

> Josh -
>
> What I do is change the web.xml to point to my own properties file, put
> in all my overrides, then include tr.p from my properties file.
>
> - Glenn
>
> On Wednesday, September 18, 2002, at 08:37  AM, Josh Hone wrote:
>
> > Hi Glenn -
> >
> > No, my version is not very new at all.  So my personal properties
> > include in TR.p must be before the include of JR.p?
> >
> > Josh Hone
> >
> >
> >> From: Glenn Golden <[EMAIL PROTECTED]>
> >> Reply-To: "Jetspeed Users List" <[EMAIL PROTECTED]>
> >> To: 'Jetspeed Users List' <[EMAIL PROTECTED]>
> >> Subject: RE: JR.prop duplicate booleans break...
> >> Date: Wed, 18 Sep 2002 08:25:24 -0400
> >>
> >> Josh -
> >>
> >> I just recently fixed this for Jetspeed properties (properties aimed at
> >> Turbine may not be done in this way), so that you can override the jr.p
> >> values in your own resources.properties.  Make sure your values come
> >> *first*.  The first setting will be used.
> >>
> >> Are you using the latest code from cvs?
> >>
> >> If you are running with this fix already in, let me know and I'll look
> >> into
> >> it further.
> >>
> >> Thanks!
> >>
> >> Here's the cvs message from that checkin:
> >>
> >> * * * * * * * * * * * * * * *
> >>
> >> 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/JetspeedRes
> >> ources.java
> >>
> >>   Index: JetspeedResources.java
> >>   ===================================================================
> >>   RCS file:
> >> /home/cvs/jakarta-
> >> jetspeed/src/java/org/apache/jetspeed/services/resources/J
> >> etspeedResources.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]>
> >>
> >>
> >> > -----Original Message-----
> >> > From: Josh Hone [mailto:[EMAIL PROTECTED]]
> >> > Sent: Tuesday, September 17, 2002 9:58 PM
> >> > To: [EMAIL PROTECTED]
> >> > Subject: JR.prop duplicate booleans break...
> >> >
> >> >
> >> > Hi all -
> >> >
> >> > I have noticed that if I have duplicate boolean values for
> >> > some properties
> >> > that the machine gives you a horrible exception and does not
> >> > like it at all.
> >> >   It says that the value assigned to the property is not
> >> > boolean.  Here is
> >> > what I did:
> >> >
> >> > I copied some properties from JR.p to my own properties
> >> > files.  Then I
> >> > edited some (for the email config) and restarted everything.
> >> > Upon opening
> >> > the portal, I encountered the horrible exception for a
> >> > property that was
> >> > duplicated in both properties files.  It was the same both places.  I
> >> > commented it out and restarted everything.  This time I was
> >> > able to log in
> >> > but again received a Horrible Exception, pointing to a
> >> > property that I did
> >> > alter.  Both times the error message was the same.
> >> >
> >> > The issue was resolved as I removed the duplicate areas.  I
> >> > deleted the ones
> >> > I changed in my personal file from JR.p.  I also deleted the
> >> > ones I did not
> >> > change from my personal file.  Then the system works fine (I
> >> > just have to
> >> > get out of the firewall...).
> >> >
> >> > Is this a bug?
> >> >
> >> > I am interested in this mainly because for an upgrade of a
> >> > jetspeed system,
> >> > it is much easier to maintain your own properties files.  It
> >> > gets much
> >> > harder when you have to manually go into the default files to
> >> > look for
> >> > things to edit.  Not harder for me personally, but for
> >> > whoever after me
> >> > looks after this portal.
> >> >
> >> > Josh Hone
> >> >
> >> > _________________________________________________________________
> >> > Chat with friends online, try MSN Messenger: http://messenger.msn.com
> >> >
> >> >
> >> > --
> >> > To unsubscribe, e-mail:
> >> > <mailto:jetspeed-user-> [EMAIL PROTECTED]>
> >> > For
> >> > additional commands,
> >> > e-mail: <mailto:[EMAIL PROTECTED]>
> >> >
> >>
> >> --
> >> To unsubscribe, e-mail:   <mailto:jetspeed-user-
> >> [EMAIL PROTECTED]>
> >> For additional commands, e-mail: <mailto:jetspeed-user-
> >> [EMAIL PROTECTED]>
> >
> >
> >
> >
> > _________________________________________________________________
> > MSN Photos is the easiest way to share and print your photos:
> > http://photos.msn.com/support/worldwide.aspx
> >
> >
> > --
> > To unsubscribe, e-mail:   <mailto:jetspeed-user-
> > [EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:jetspeed-user-
> > [EMAIL PROTECTED]>
> >
>
> - Glenn
>
> ---------------------------------------------------------------------
> Glenn R. Golden    Systems Research Programmer
> School of Information             University of Michigan
> [EMAIL PROTECTED]                            734-615-1419
> ---------------------------------------------------------------------
>
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to