Hi Patrick,

Are you suggesting that I extend "org.apache.tapestry.ApplicationServlet"?

Regards
Sean

Patrick Casey wrote:
        A static initializer block in your Servlet class would do eager
loading, wouldn't it? That's where I usually do the job and I can't recall
ever having problems with sequencing (doesn't mean it never happens, just
that I haven't run into it).

        --- Pat


-----Original Message-----
From: sean gao [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 30, 2005 11:09 AM
To: Tapestry users
Subject: Re: global configuration and usage of
org.apache.tapestry.property-source

Thanks.

The good old fashioned solution works. But I would like the .properties
to be loaded eagerly when application starts up ( to avoid the
Properties lazy-initialisation issue or the DCL bug, see
http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-double.html)

Was just wondering whether if Tapestry has an flexible way of handling
this. By "flexible" I mean declarative and configurable, say, something
like spring's "PropertiesFactoryBean".

"org.apache.tapestry.property-source" extension (See the second question
I asked)seems promising. I implemented
org.apache.tapestry.engine.IPropertySource, this enables me to specify
the .properties file to load in my .application file. The only problem I
am having is figure out out a way to get tapestry to load the
.properties eagerly at application startup rather than performing a lazy
initialisation which can be problematic.

I might end up declaring a Properties instance using
PropertiesFactoryBean in spring and inject into tapestry.

Please advise.

Thanks
Sean


Patrick Casey wrote:

        Couldn't you just use a physical properties file? Am I missing some
reason that you can't just drop the properties file in your classpath

and

use the good old fashioned:

InputStream in =


this.class.getClassLoader().getResourceAsStream("application.properties");

                if (in == null) {
                        Log.warn("We couldn't find your
application.properties file. Using all defaults.");
                }
        Properties foo = new Properties();
        try {
                        foo.load(in);
                } catch (IOException e) {
                        Log.error("Couldn't parse your
application.properties file");
                        Log.error("Proceeding with all default values, but
you should really fix the properties");

                }

        --- Pat



-----Original Message-----
From: sean gao [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 30, 2005 1:18 AM
To: [email protected]
Subject: global configuration and usage of org.apache.tapestry.property-
source

can anybody help me on these two questions please?
Thanks
Sean



<Question 1>
I would like load  configurable global properties  in my application
These are name/value pairs such as
tempfolder.path=/home/users/temp
default.color=white
stored in .properties files or in a database.

Ideally I would like to be able to set something like this in the
application specification file
 <property name="org.apache.tapestry.global-config">
     config.properties{,config2.properties,config3.properties}
 </property>
But this seems to be impossible without patching tapestry3

Guess I could extend  BaseEngine or define a custom version of Global .
Just wondering which is the common way of achieving this in tapestry?

<Question 2>
It is mentioned in the user guide


http://jakarta.apache.org/tapestry/3.0.3/doc/TapestryUsersGuide/configur

at

ion.extensions.html


"  org.apache.tapestry.property-source (IPropertySource
<../api/org/apache/tapestry/engine/IPropertySource.html>)
  This extension is fit into the configuration property search path,
after the servlet context, but before JVM system           properties.
A typical use would be to access some set of configuration properties
stored in a database.
"
Can anyone give an example?

Thanks
Sean

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







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





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




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





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




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

Reply via email to