excalibur-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jorg Heymans (JIRA)" <...@excalibur.apache.org>
Subject [jira] Commented: (EXLBR-31) When check-includes for stylesheets is true for caching, it only works for one level deep included/imported stylesheets: if you change an imported or included stylesheet the change does not take effect until you update the main stylesheet.
Date Sun, 29 Oct 2006 16:36:17 GMT
    [ http://issues.apache.org/jira/browse/EXLBR-31?page=comments#action_12445445 ] 
            
Jorg Heymans commented on EXLBR-31:
-----------------------------------

Applied, thanks Ard.

> When check-includes for stylesheets is true for caching, it only works for one level
deep included/imported stylesheets: if you change an imported or included stylesheet the change
does not take effect until you update the main stylesheet.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: EXLBR-31
>                 URL: http://issues.apache.org/jira/browse/EXLBR-31
>             Project: Excalibur Components
>          Issue Type: Bug
>          Components: XMLUtil
>    Affects Versions: 1.2
>            Reporter: Ard Schrijvers
>         Attachments: XSLTProcessorImpl.java.patch
>
>
> When using cached stylesheets, and have for example in cocoon in the TraxTransformer
the check-includes set to true, the includes are only checked one level deep. So a change
in directly imported/included xsls do affect the validity of the main (the very first one)
stylesheet, but a change in an imported stylesheet of an imported one do need invalidate the
main styleheet (therefor, you need to touch the main stylesheet all the time when you work
with many importing styleheets and use them hierarchically). 
> The bug is in XSLTProcessorImpl in public javax.xml.transform.Source resolve( String
href, String base ), at List includes = (List)m_includesMap.get( base );. The problem lies
in the "base", because the base is related to the stylesheet "calling" the import, so, if
it is an import calling an import, the "base" is different from the main stylesheet, therefor
not adding its validity to the main stylesheet aggregated validity. 
> I added a global "m_id" of the main stylesheet that is now used in XSLTProcessorImpl,
and replace "base" in List includes = (List)m_includesMap.get( base ) by List includes = (List)m_includesMap.get(
m_id );. This solves the invalidation of main stylesheets. 
> See patch.
> Ard Schrijvers

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@excalibur.apache.org
For additional commands, e-mail: dev-help@excalibur.apache.org


Mime
View raw message