On 06/20/2013 03:42 PM, gelo1234 wrote:
Can you provide me with some simple example of that new language interpreter (module) ? :)

http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sitemap/src/main/java/org/apache/cocoon/sitemap/expression/SettingsInterpreter.java?diff_format=h&view=markup
That is REALLY easy example, takes the spring defined settings and resolves its value. used in the sitemap like {global:org.apache.cocoon.mode}

salu2

Greetings,
Greg



2013/6/20 Thorsten Scherler <scherler@gmail.com>
On 06/20/2013 03:02 PM, gelo1234 wrote:

I've got Cocoon site that hosts multiple www domains, all based on the same sitemap.xmap with <map:mount uri-prefix="" src="domain_X" check-reload="yes"/>

so the configuration is as follows:

<map:pipeline>
              <map:select type="cutomDomainSelector">
                       <map:when test="domainA">
                            <map:mount uri-prefix="" src="./domaina" check-reload="yes"/>
                       </map:when>
                       <map:when test="domainB">
                             <map:mount uri-prefix="" src="./domainb" check-reload="yes"/>
                       </map:when>
               </map:select>
</map:pipeline>

Is it still possible with C3 ? Or should I use some separate blocks config ?
The problem with separate blocks config is that I want to use empty URI (not different) for each site

So
site1: http://www.domainA.org/
site2: http://www.domainB.org/

NOT

http://www.some.org/domainA/
http://www.some.org/domainB/

under one C3 war (sitemap.xmap config).

I'd suggest to empower some reverse proxy in order to make things easier here.

Reverse Proxy would give the opposite effect - collecting into one URL from multiple domain servers. I would like to have
only ONE backend server that serves as the origin for multiple domains.

With mod_jk/mod_proxy I can setup multiple workers for each domain but where should I point them to serve my clients if having only one backend server with C3 ?


Lets say I have a separate Cocoon block for each www domain. In C2.1 I had a MAIN sitemap.xmap (Controller) that controlled which context to mount upon different Hostname requests.

In C3 the only way I could achieve that is passing through with each request INFO about Hostname value. That is not very elegant
solution. But I cannot find any other.

So either every <map:match ...> would need additional <map:select ...>:

 <!--  e.g. the main / context -->

   <map:match pattern="">
       <map:select value="{jexl:cocoon.request.hostName}">
          <map:when equals="domainA">
            <map:generate src="files/domainA/homepage.xml" />
            <map:transform src="files/xslt/homepage.xslt"/>
            <map:serialize />
          </map:when>
          <map:when equals="domainB">
            <map:generate src="files/domainB/homepage.xml" />
            <map:transform src="files/xslt/homepage.xslt"/>
            <map:serialize />
          </map:when>
  </map:match>

OR (a little bit more elegant and compact):

<map:match pattern="">
            <map:generate src="files/{jexl:cocoon:request.hostName}/homepage.xml"/>
            <map:transform src="files/xslt/homepage.xslt"/>
            <map:serialize />
  </map:match>

I don't want to handle 100 VMs with C3 app for each www domain. That would be very resource-expensive config.

I would like to have only ONE C3 app for all www domains.

so why not:

<map:match pattern="">
            <map:generate src="servlet:{jexl:cocoon:request.hostName}/homepage.xml"/>
            <map:transform src="files/xslt/homepage.xslt"/>
            <map:serialize />
  </map:match>

Or even simply create a new language interpreter (formally known as module) which does the resolving. That has the benefit that you can use full blown java and use spring config file to do the mapping or a simple properties file.

salu2


Greetings,
Greg

 



-- 
Thorsten Scherler <scherler.at.gmail.com>
codeBusters S.L. - web based systems
<consulting, training and solutions>

http://www.codebusters.es/



-- 
Thorsten Scherler <scherler.at.gmail.com>
codeBusters S.L. - web based systems
<consulting, training and solutions>

http://www.codebusters.es/