Jahia Dev Forum > How to disable the...

0 (0 Good)
0 (0 Bad)

How to disable the cache for DAM files

by  abhinitb »  2013/04/22 06:53

Hi,

Can anyone provide any pointers for the disabling of cache for the DAM files.

Best Regards,

Abhinit

  • How to disable the cache for DAM files
    2013/04/22 06:53

    abhinitb <p> Hi,</p> <p> Can anyone provide any pointers for the disabling of cache for the DAM files.</p> <p> Best Regards,</p> <p> Abhinit</p>

  • Number of messages  28
    Registration date Apr 22, 2013
    0 (0 Good)
    0 (0 Bad)

    Re: How to disable the cache for DAM files

    by  shyrkov »  2013/04/22 07:20

    Hello Abhinit,

    which cache do you mean?

    In Jahia 6.6 we have a cache for the content of "small" files, i.e. if a file size does not exceed 64 KB its content is cached.

    If you would like to disable  that cache, you can add the "cache-threshold" parameter (with the value of 0) for the org.jahia.services.content.files.FileServlet in the <jahia-web-app-dir>/WEB-INF/web.xml file:

        <servlet>
            <servlet-name>Files</servlet-name>
            <servlet-class>org.jahia.services.content.files.FileServlet</servlet-class>
            <init-param>
                <param-name>cache-threshold</param-name>
                <param-value>0</param-value>
            </init-param>
            <load-on-startup>99</load-on-startup>
        </servlet>
     

    This will tell the FileServlet to not cache the content of files at all.

     

    Kind regards

    Sergiy

  • Re: How to disable the cache for DAM files
    2013/04/22 07:20

    shyrkov <p> Hello Abhinit,</p> <p> which cache do you mean?</p> <p> In Jahia 6.6 we have a cache for the content of &quot;small&quot; files, i.e. if a file size does not exceed 64 KB its content is cached.</p> <p> If you would like to disable&nbsp; that cache, you can add the &quot;cache-threshold&quot; parameter (with the value of 0) for the org.jahia.services.content.files.FileServlet in the &lt;jahia-web-app-dir&gt;/WEB-INF/web.xml file:</p> <p> &nbsp;&nbsp;&nbsp; &lt;servlet&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;Files&lt;/servlet-name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;org.jahia.services.content.files.FileServlet&lt;/servlet-class&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-name&gt;cache-threshold&lt;/param-name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param-value&gt;0&lt;/param-value&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;99&lt;/load-on-startup&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;/servlet&gt;<br /> &nbsp;</p> <p> This will tell the FileServlet to not cache the content of files at all.</p> <p> &nbsp;</p> <p> Kind regards</p> <p> Sergiy</p>

  • Number of messages  407
    Registration date Apr 22, 2013
    0 (0 Good)
    0 (0 Bad)

    Re: Re: How to disable the cache for DAM files

    by  abhinitb »  2013/04/22 07:39

    Hi Sergiy.

    Thanks for the response.

    The image asset from the DAM is having the response header : Cache-Control: public, must-revalidate, max-age=1 because of which the image is not getting cached on the web server. Is there any way to change this header response in Jahia. The images are bigger than 64KB.

     

     

    Best Regards,

    Abhinit

     

     

     

  • Re: Re: How to disable the cache for DAM files
    2013/04/22 07:39

    abhinitb <p> Hi&nbsp;<span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">Sergiy.</span></p> <p> Thanks for the response.</p> <p> The image asset from the DAM is having the response header :&nbsp;<span style="border-color: rgb(84, 84, 84); font-family: 'Lucida Grande', sans-serif; color: rgb(84, 84, 84); font-size: 11px; vertical-align: top; margin-right: 0.5em;"><b>Cache-Control:&nbsp;</b></span><span style="color: rgb(0, 0, 0); border-color: rgb(0, 0, 0); margin-top: 1px; font-family: Consolas, 'Lucida Console', monospace; word-break: break-all; margin-right: 100px;">public, must-revalidate, max-age=1 because of which the image is not getting cached on the web server. Is there any way to change this header response in Jahia. The images are bigger than 64KB.</span></p> <p> &nbsp;</p> <p> &nbsp;</p> <p> Best Regards,</p> <p> Abhinit</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p>

  • Number of messages  28
    Registration date Apr 22, 2013
    0 (0 Good)
    0 (0 Bad)

    Re: Re: Re: How to disable the cache for DAM files

    by  shyrkov »  2013/04/22 07:57

    Hello Abhinit,

    this is actually a desired behaviour. As those assets are considered dynamic we do not allow browsers to cache them forever.

    Rather we force browsers to revalidate if the asset has changed by sending if-modified-since requests which in case of a non-modified asset result in a really fast 304 "Not modified" response from the server (we additionally have a cache for asset last mofified timestamps so, the the check for modified resource is really fast).

    So, in effect the asset (e.g. an image) is cached on the browser side, but the browser sends "if modified-since" request to check if it needs to reload the asset from the server.

     

    If you still would like to change the behaviour for our dynamic assets (served by the /files servlet) you will have to override the corresponding URL rewriting rule:

     

        <rule>
            <name>JCR files</name>
            <note>Do not set any cache expiration for JCR files</note>
            <from>^/(files|repository)/.*$</from>
            <set type="response-header" name="Cache-Control">public, must-revalidate, max-age=1</set>
            <set type="request" name="jahiaCacheControlSet">done</set>         
        </rule>
     

    which is located inside the JAr file: <jahia-web-app-dir>/WEB-INF/lib/jahia-impl-6.6.1.6-SNAPSHOT.jar/org/jahia/services/seo/urlrewrite/last-urlrewrite.xml

    You can override it by e.g. creating a file, named last-urlrewrite-my-custom.xml in the folder <jahia-web-app-dir>/WEB-INF/etc/config or creating that file in your own module, putting it into META-INF folder of the module (e.g. META-INF/last-urlrewrite-my-custom.xml).

    An example of the last-urlrewrite-my-custom.xml could be:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
            "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">

    <urlrewrite>
        <rule>
            <name>JCR files</name>
            <note>Override caching for assets to 1 month</note>
            <from>^/(files|repository)/.*$</from>
            <set type="expires">1 month</set>
            <set type="response-header" name="Cache-Control">public, max-age=2678400</set>
            <set type="request" name="jahiaCacheControlSet">done</set>   
        </rule>
    </urlrewrite>

     

    to allow browser side caching (without re-validation) of JCR assets for 1 month or:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
            "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">

    <urlrewrite>
        <rule>
            <name>JCR files</name>
            <note>Do not cache JCR assets at all</note>
            <from>^/(files|repository)/.*$</from>
            <set type="response-header" name="Expires">Wed, 09 May 1979 05:30:00 GMT</set>
            <set type="response-header" name="Cache-Control">no-cache, no-store, must-revalidate, proxy-revalidate, max-age=0</set>
            <set type="response-header" name="Pragma">no-cache</set>
            <set type="request" name="jahiaCacheControlSet">done</set>         
        </rule>
    </urlrewrite>

    in case you would like to disable browser-side caching for files at all.

     

    Kind regards

    Sergiy

     

  • Re: Re: Re: How to disable the cache for DAM files
    2013/04/22 07:57

    shyrkov <p> Hello Abhinit,</p> <p> this is actually a desired behaviour. As those assets are considered dynamic we do not allow browsers to cache them forever.</p> <p> Rather we force browsers to revalidate if the asset has changed by sending if-modified-since requests which in case of a non-modified asset result in a really fast 304 &quot;Not modified&quot; response from the server (we additionally have a cache for asset last mofified timestamps so, the the check for modified resource is really fast).</p> <p> So, in effect the asset (e.g. an image) is cached on the browser side, but the browser sends &quot;if modified-since&quot; request to check if it needs to reload the asset from the server.</p> <p> &nbsp;</p> <p> If you still would like to change the behaviour for our dynamic assets (served by the /files servlet) you will have to override the corresponding URL rewriting rule:</p> <p> &nbsp;</p> <p> &nbsp;&nbsp;&nbsp; &lt;rule&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;JCR files&lt;/name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;note&gt;Do not set any cache expiration for JCR files&lt;/note&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from&gt;^/(files|repository)/.*$&lt;/from&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;response-header&quot; name=&quot;Cache-Control&quot;&gt;public, must-revalidate, max-age=1&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;request&quot; name=&quot;jahiaCacheControlSet&quot;&gt;done&lt;/set&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp;&nbsp; &lt;/rule&gt;<br /> &nbsp;</p> <p> which is located inside the JAr file: &lt;jahia-web-app-dir&gt;/WEB-INF/lib/jahia-impl-6.6.1.6-SNAPSHOT.jar/org/jahia/services/seo/urlrewrite/last-urlrewrite.xml</p> <p> You can override it by e.g. creating a file, named last-urlrewrite-my-custom.xml in the folder &lt;jahia-web-app-dir&gt;/WEB-INF/etc/config or creating that file in your own module, putting it into META-INF folder of the module (e.g. META-INF/last-urlrewrite-my-custom.xml).</p> <p> An example of the last-urlrewrite-my-custom.xml could be:</p> <p> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br /> &lt;!DOCTYPE urlrewrite PUBLIC &quot;-//tuckey.org//DTD UrlRewrite 3.2//EN&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;http://tuckey.org/res/dtds/urlrewrite3.2.dtd&quot;&gt;<br /> <br /> &lt;urlrewrite&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;rule&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;JCR files&lt;/name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;note&gt;Override caching for assets to 1 month&lt;/note&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from&gt;^/(files|repository)/.*$&lt;/from&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;expires&quot;&gt;1 month&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;response-header&quot; name=&quot;Cache-Control&quot;&gt;public, max-age=2678400&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;request&quot; name=&quot;jahiaCacheControlSet&quot;&gt;done&lt;/set&gt;&nbsp; &nbsp;<br /> &nbsp;&nbsp;&nbsp; &lt;/rule&gt;<br /> &lt;/urlrewrite&gt;</p> <p> &nbsp;</p> <p> to allow browser side caching (without re-validation) of JCR assets for 1 month or:</p> <p> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br /> &lt;!DOCTYPE urlrewrite PUBLIC &quot;-//tuckey.org//DTD UrlRewrite 3.2//EN&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;http://tuckey.org/res/dtds/urlrewrite3.2.dtd&quot;&gt;<br /> <br /> &lt;urlrewrite&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;rule&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;JCR files&lt;/name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;note&gt;Do not cache JCR assets at all&lt;/note&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from&gt;^/(files|repository)/.*$&lt;/from&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;response-header&quot; name=&quot;Expires&quot;&gt;Wed, 09 May 1979 05:30:00 GMT&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;response-header&quot; name=&quot;Cache-Control&quot;&gt;no-cache, no-store, must-revalidate, proxy-revalidate, max-age=0&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;response-header&quot; name=&quot;Pragma&quot;&gt;no-cache&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;request&quot; name=&quot;jahiaCacheControlSet&quot;&gt;done&lt;/set&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br /> &nbsp;&nbsp;&nbsp; &lt;/rule&gt;<br /> &lt;/urlrewrite&gt;</p> <p> in case you would like to disable browser-side caching for files at all.</p> <p> &nbsp;</p> <p> Kind regards</p> <p> Sergiy</p> <p> &nbsp;</p>

  • Number of messages  407
    Registration date Apr 22, 2013
    0 (0 Good)
    0 (0 Bad)

    Re: Re: Re: Re: How to disable the cache for DAM files

    by  abhinitb »  2013/04/22 09:23

    Hi Sergiy,

    Thanks for such a helpful response. 

    Could you please validate the understanding that putting the cache expiration as 1 would mean that although it will revalidate but still it will use the cache on CDN. 

    Best Regards,

    Abhinit

  • Re: Re: Re: Re: How to disable the cache for DAM files
    2013/04/22 09:23

    abhinitb <p> Hi Sergiy,</p> <p> Thanks for such a helpful response.&nbsp;</p> <p> Could you please validate the understanding that putting the cache expiration as 1 would mean that although it will revalidate but still it will use the cache on CDN.&nbsp;</p> <p> Best Regards,</p> <p> Abhinit</p>

  • Number of messages  28
    Registration date Apr 22, 2013
    0 (0 Good)
    0 (0 Bad)

    Re: Re: Re: Re: Re: How to disable the cache for DAM files

    by  shyrkov »  2013/04/22 09:51

    Hello Abhinit,

    unfortunately, it was not clear that you are talking about an intermediate caching of JCR assets in a CDN.

    You need to check the specification of your CDN provider and how it handles the cases when "Cache-Control" is set to "public, must-revalidate, max-age=1". You could adjust the Cache-Control response header value or set addtional headers (if required by the CDN) to tune the behaviour.

     

    Kind regards

    Sergiy

  • Re: Re: Re: Re: Re: How to disable the cache for DAM files
    2013/04/22 09:51

    shyrkov <p> Hello Abhinit,</p> <p> unfortunately, it was not clear that you are talking about an intermediate caching of JCR assets in a CDN.</p> <p> You need to check the specification of your CDN provider and how it handles the cases when &quot;Cache-Control&quot; is set to &quot;public, must-revalidate, max-age=1&quot;. You could adjust the Cache-Control response header value or set addtional headers (if required by the CDN) to tune the behaviour.</p> <p> &nbsp;</p> <p> Kind regards</p> <p> Sergiy</p>

  • Number of messages  407
    Registration date Apr 22, 2013
    0 (0 Good)
    0 (0 Bad)

    Re: Re: Re: Re: How to disable the cache for DAM files

    by  abhinitb »  2013/05/21 07:55

    I Added below text in META-INF/last-urlrewrite-my-custom.xml of my module.

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
            "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">

    <urlrewrite>
        <rule>
            <name>JCR files</name>
            <note>Override caching for assets to 1 month</note>
            <from>^/(files|repository)/.*$</from>
            <set type="expires">1 month</set>
            <set type="response-header" name="Cache-Control">public, max-age=2678400</set>
            <set type="request" name="jahiaCacheControlSet">done</set>   
        </rule>
    </urlrewrite>

    In the Header Response of a Image, I am getting two entries

    1. Cache-Control:
      public, must-revalidate, max-age=1
    2. Cache-Control:
      public, max-age=2678400
     
    Could you Please let me know how can we override the cache-control entry in the response header instead of the case above where we are getting the cache control entries twice.

     

  • Re: Re: Re: Re: How to disable the cache for DAM files
    2013/05/21 07:55

    abhinitb <p> I Added below text in META-INF/last-urlrewrite-my-custom.xml of my module.</p> <p> &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br /> &lt;!DOCTYPE urlrewrite PUBLIC &quot;-//tuckey.org//DTD UrlRewrite 3.2//EN&quot;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;http://tuckey.org/res/dtds/urlrewrite3.2.dtd&quot;&gt;<br /> <br /> &lt;urlrewrite&gt;<br /> &nbsp;&nbsp;&nbsp; &lt;rule&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name&gt;JCR files&lt;/name&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;note&gt;Override caching for assets to 1 month&lt;/note&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;from&gt;^/(files|repository)/.*$&lt;/from&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;expires&quot;&gt;1 month&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;response-header&quot; name=&quot;Cache-Control&quot;&gt;public, max-age=2678400&lt;/set&gt;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set type=&quot;request&quot; name=&quot;jahiaCacheControlSet&quot;&gt;done&lt;/set&gt;&nbsp; &nbsp;<br /> &nbsp;&nbsp;&nbsp; &lt;/rule&gt;<br /> &lt;/urlrewrite&gt;</p> <p> In the Header Response of a Image, I am getting two entries</p> <ol class="children expanded" style="box-sizing: border-box; position: relative; margin: 0px; color: rgb(0, 0, 0); cursor: default; min-width: 100%; padding: 2px 6px !important; list-style-type: none; -webkit-padding-start: 12px; display: block; font-family: 'Lucida Grande', sans-serif; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> <li style="box-sizing: border-box; padding: 0px 0px 0px 14px; margin-top: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap;" title=""> <div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap;"> Cache-Control:</div> <div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; white-space: pre-wrap; font-size: 12px !important; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px;"> public, must-revalidate, max-age=1</div> </li> <li style="box-sizing: border-box; padding: 0px 0px 0px 14px; margin-top: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap;" title=""> <div class="header-name" style="box-sizing: border-box; color: rgb(84, 84, 84); display: inline-block; margin-right: 0.5em; font-weight: bold; vertical-align: top; white-space: pre-wrap;"> Cache-Control:</div> <div class="header-value source-code" style="box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; white-space: pre-wrap; font-size: 12px !important; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px;"> public, max-age=2678400</div> </li> </ol> <div class="header-value source-code" style="box-sizing: border-box; padding: 0px 0px 0px 14px; margin-top: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap;box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; white-space: pre-wrap; font-size: 12px !important; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px;"> &nbsp;</div> <div class="header-value source-code" style="box-sizing: border-box; padding: 0px 0px 0px 14px; margin-top: 1px; margin-left: -2px; word-wrap: break-word; white-space: nowrap;box-sizing: border-box; font-family: Consolas, 'Lucida Console', monospace; white-space: pre-wrap; font-size: 12px !important; display: inline; margin-right: 100px; word-break: break-all; margin-top: 1px;"> Could you Please let me know how can we override the cache-control entry in the response header instead of the case above where we are getting the cache control entries twice.</div> <p> &nbsp;</p>

  • Number of messages  28
    Registration date May 21, 2013
    Contact
    Share
    Feedback

    Get in touch

    Whether you are a current user or if you are just evaluating Jahia, we are here to help.

    Contact us

    Share this page