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]

Reply via email to