1. In cocoon.xconf, setup an input module like this:
<component-instance name="local-properties"
class="org.apache.cocoon.components.modules.input.PropertiesFileModule">
<file src="C:\env\local.properties"/>
</component-instance>
& setup *both* datasources like this:
<datasources>
<jdbc name="dbdev">
<dburl>jdbc:oracle:thin:@localhost:1521:dbdev</dburl>
...
</jdbc>
<jdbc name="dblive">
<dburl>jdbc:oracle:thin:@localhost:1521:dblive</dburl>
...
</jdbc>
...
2. in c:\env\local.properties
dbc=dbdev
or dbc=dblive (depending on the system)
3. In each sitemap, if you were using the SQLTransformer, for example:
<map:transform type="sql">
<map:parameter name="use-connection"
value="{local-properties:dbc}" />
...
...or XSP
<map:generate src="{1}.xsp" type="serverpages"/>
<map:parameter name="dbc" value="{local-properties:dbc}"/>
and
<esql:pool><xsp:expr>parameters.getParameter("dbc")</xsp:expr></esql:pool>
Kim Toms wrote:
I was wondering something similiar; I have a system where database
servers are deployed, and I'd like to pull reports off of them. I
have a list of database servers in a local database, do I have to
manually edit the cocoon.xconf file as I deploy each new server?
On 6/21/05, *Lars Huttar* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote:
Dear Cocoon-based webapp developers,
I would be interested to hear how others have handled this issue.
You have Cocoon applications whose source code is stored in a
repository. You want to be able to install them on multiple
development
machines (on each developer's desktop), on test servers, and on
production servers.
The environments (dev, test, production) use separate database servers
as well as separate web servers.
But when you checkout the source code from the repository onto various
web servers, they're all pointing to the same database server,
because
they all have the same datasources defined in cocoon.xconf.
You could then go in and modify cocoon.xconf separately for each
environment, but that could get to be a lot of time-consuming and
error-prone work. (We currently have 38 datasources defined for
all our
applications! Maybe not all of them are still used, but most are, I
believe.)
How do you automate this task?
I'm trying to think of some way to set one global variable that points
to a dev, test, or production database server, so that code only
needs
to be changed in one place... and preferably not every time
datasources
are added or changed. Maybe it should be done by defining an XML
entity?
Thanks for any responses.
Lars
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]