Modified: websites/production/tapestry/content/2022/01/26/tapestry-580-release.html ============================================================================== --- websites/production/tapestry/content/2022/01/26/tapestry-580-release.html (original) +++ websites/production/tapestry/content/2022/01/26/tapestry-580-release.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -99,7 +110,8 @@ <div class="dropdown-menu" aria-labelledby="developmentNavbarDropdown"> <a class="dropdown-item" href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a> <a class="dropdown-item" href="https://issues.apache.org/jira/browse/TAP5">Issues</a> - </div> + <a class="dropdown-item" href="/development-roadmap.html" title="Development Roadmap">Roadmap</a> +</div> </li><li class="nav-item dropdown"> <a class="nav-link dropdown-toggle active" id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Apache
Modified: websites/production/tapestry/content/2022/04/04/tapestry-581-release.html ============================================================================== --- websites/production/tapestry/content/2022/04/04/tapestry-581-release.html (original) +++ websites/production/tapestry/content/2022/04/04/tapestry-581-release.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -99,7 +110,8 @@ <div class="dropdown-menu" aria-labelledby="developmentNavbarDropdown"> <a class="dropdown-item" href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a> <a class="dropdown-item" href="https://issues.apache.org/jira/browse/TAP5">Issues</a> - </div> + <a class="dropdown-item" href="/development-roadmap.html" title="Development Roadmap">Roadmap</a> +</div> </li><li class="nav-item dropdown"> <a class="nav-link dropdown-toggle active" id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Apache Modified: websites/production/tapestry/content/2022/06/20/tapestry-582-released.html ============================================================================== --- websites/production/tapestry/content/2022/06/20/tapestry-582-released.html (original) +++ websites/production/tapestry/content/2022/06/20/tapestry-582-released.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -99,7 +110,8 @@ <div class="dropdown-menu" aria-labelledby="developmentNavbarDropdown"> <a class="dropdown-item" href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a> <a class="dropdown-item" href="https://issues.apache.org/jira/browse/TAP5">Issues</a> - </div> + <a class="dropdown-item" href="/development-roadmap.html" title="Development Roadmap">Roadmap</a> +</div> </li><li class="nav-item dropdown"> <a class="nav-link dropdown-toggle active" id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Apache Modified: websites/production/tapestry/content/about.html ============================================================================== --- websites/production/tapestry/content/about.html (original) +++ websites/production/tapestry/content/about.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/ajax-and-zones.html ============================================================================== --- websites/production/tapestry/content/ajax-and-zones.html (original) +++ websites/production/tapestry/content/ajax-and-zones.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/ajax-components-faq.html ============================================================================== --- websites/production/tapestry/content/ajax-components-faq.html (original) +++ websites/production/tapestry/content/ajax-components-faq.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -144,11 +155,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="AjaxComponentsFAQ-AjaxComponents">Ajax Components</h1><p>Main article: <a href="ajax-and-zones.html">Ajax and Zones</a></p><h2 id="AjaxComponentsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1712225793764 {padding: 0px;} -div.rbtoc1712225793764 ul {margin-left: 0px;} -div.rbtoc1712225793764 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737721057742 {padding: 0px;} +div.rbtoc1737721057742 ul {margin-left: 0px;} +div.rbtoc1737721057742 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1712225793764"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737721057742"> <ul class="toc-indentation"><li><a href="#AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I have to specify both id and t:id for Zone components?</a></li><li><a href="#AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How do I update the content of a Zone from an event handler method?</a></li><li><a href="#AjaxComponentsFAQ-HowtoIupdatemultiplezonesinasingleeventhandler?">How to I update multiple zones in a single event handler?</a></li><li><a href="#AjaxComponentsFAQ-What'sthatweirdnumberinthemiddleoftheclientidsafteraZoneisupdated?">What's that weird number in the middle of the client ids after a Zone is updated?</a></li><li><a href="#AjaxComponentsFAQ-WhydoIsometimesgettheexception"Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement."whenrenderinganemptyZone?">Why do I sometimes get the exception "The rendered content did not include any elements that allow for the positioning of the hidden form field's element." when rendering an empty Zone?</a></li></ul> </div><h2 id="AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I have to specify both <code>id</code> and <code>t:id</code> for Zone components?</h2><p>The examples for the Zone component (in the Component Reference) consistently specify both <code>id</code> and <code>t:id</code> and this is probably a good idea.</p><p>Generally speaking, if you don't specify the client-side id (the <code>id</code> attribute), it will be the same as the Tapestry component id (<code>t:id</code>).</p><p>However, there are any number of exceptions to this rule. The Zone may be rendering inside a Loop (in which case, each rendering will have a unique client side id). The Zone may be rendering as part of a partial page render, in which case, a random unique id is inserted into the id. There are other examples where Tapestry component ids in nested components may also clash.</p><p>The point is, to be sure, specify the exact client id. This will be the value for the <code>zone</code> p arameter of the triggering component (such as a Form, PageLink, ActionLink, etc.).</p><h2 id="AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How do I update the content of a Zone from an event handler method?</h2><p>When a client-side link or form triggers an update, the return value from the event handler method is used to construct a partial page response; this partial page response includes markup content that is used to update the Zone's client-side <code><div></code> element.</p><p>Where does that content come from? You inject it into your page.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <pre><code class="language-xml"><t:zone id="search" t:id="searchZone"> Modified: websites/production/tapestry/content/ajax-components.html ============================================================================== --- websites/production/tapestry/content/ajax-components.html (original) +++ websites/production/tapestry/content/ajax-components.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/ajax-javascript.html ============================================================================== --- websites/production/tapestry/content/ajax-javascript.html (original) +++ websites/production/tapestry/content/ajax-javascript.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/aliases.html ============================================================================== --- websites/production/tapestry/content/aliases.html (original) +++ websites/production/tapestry/content/aliases.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/annotations.html ============================================================================== --- websites/production/tapestry/content/annotations.html (original) +++ websites/production/tapestry/content/annotations.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/application-module-class-cheat-sheet.html ============================================================================== --- websites/production/tapestry/content/application-module-class-cheat-sheet.html (original) +++ websites/production/tapestry/content/application-module-class-cheat-sheet.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -144,11 +155,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><p>The <strong>Application Module</strong> class is a simple Java class used to configure Tapestry. A system of annotations and naming conventions allows Tapestry to determine what services are provided by the module to your application. This is the place where you bind your custom implementation of services, contribute to, decorate and override existing services.</p><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1712225603386 {padding: 0px;} -div.rbtoc1712225603386 ul {margin-left: 0px;} -div.rbtoc1712225603386 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737720863541 {padding: 0px;} +div.rbtoc1737720863541 ul {margin-left: 0px;} +div.rbtoc1737720863541 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1712225603386"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737720863541"> <ul class="toc-indentation"><li>Related Articles</li></ul> <ul><li><a href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming conventions</a> <ul class="toc-indentation"><li><a href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind method</a></li><li><a href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder methods</a></li><li><a href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute methods</a> Modified: websites/production/tapestry/content/applications.html ============================================================================== --- websites/production/tapestry/content/applications.html (original) +++ websites/production/tapestry/content/applications.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/assets.html ============================================================================== --- websites/production/tapestry/content/assets.html (original) +++ websites/production/tapestry/content/assets.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -188,7 +199,7 @@ <span class="icon aui-icon content-type-page" title="Page">Page:</span> </div> <div class="details"> - <a href="request-processing.html">Request Processing</a> + <a href="configuration.html">Configuration</a> </div> @@ -197,7 +208,7 @@ <span class="icon aui-icon content-type-page" title="Page">Page:</span> </div> <div class="details"> - <a href="configuration.html">Configuration</a> + <a href="request-processing.html">Request Processing</a> </div> Modified: websites/production/tapestry/content/autoloading-modules.html ============================================================================== --- websites/production/tapestry/content/autoloading-modules.html (original) +++ websites/production/tapestry/content/autoloading-modules.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/banner.html ============================================================================== --- websites/production/tapestry/content/banner.html (original) +++ websites/production/tapestry/content/banner.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/bannerv2.html ============================================================================== --- websites/production/tapestry/content/bannerv2.html (original) +++ websites/production/tapestry/content/bannerv2.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/bean-validation.html ============================================================================== --- websites/production/tapestry/content/bean-validation.html (original) +++ websites/production/tapestry/content/bean-validation.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/beaneditform-faq.html ============================================================================== --- websites/production/tapestry/content/beaneditform-faq.html (original) +++ websites/production/tapestry/content/beaneditform-faq.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -144,11 +155,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="BeanEditFormFAQ-BeanEditForm">BeanEditForm</h1><p>Main Article: <a href="beaneditform-guide.html">BeanEditForm Guide</a></p><h2 id="BeanEditFormFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1737227526224 {padding: 0px;} -div.rbtoc1737227526224 ul {margin-left: 0px;} -div.rbtoc1737227526224 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737720872213 {padding: 0px;} +div.rbtoc1737720872213 ul {margin-left: 0px;} +div.rbtoc1737720872213 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1737227526224"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737720872213"> <ul class="toc-indentation"><li><a href="#BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why do I get exceptions about instantiating a bean when using BeanEditForm?</a></li><li><a href="#BeanEditFormFAQ-What'sthedifferencebetweenBeanEditorandBeanEditForm?">What's the difference between BeanEditor and BeanEditForm?</a></li><li><a href="#BeanEditFormFAQ-HowdoIcustomizethelayoutoftheBeanEditForm?">How do I customize the layout of the BeanEditForm?</a></li></ul> </div><h2 id="BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why do I get exceptions about instantiating a bean when using BeanEditForm?</h2><p>When you render a BeanEditForm, or when the rendered form is submitted, Tapestry must instantiate an instance of the object to be edited. This occurs when the BeanEditForm's <code>object</code> parameter is bound to null: Tapestry instantiates an instance of the property type so that the BeanEditForm has an object to read default values from, or to push submitted values into.</p><p>By default, this uses the standard <a href="injection-in-detail.html">injection mechanism</a>, which means that Tapestry will identify the public constructor with the most parameters, and attempt to find objects and other objects for each constructor parameter.</p><p>There's two ways to fine tune this so you don't get errors:</p><ul><li>Place an @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache /tapestry5/ioc/annotations/Inject.html">Inject</a> annotation on the correct constructor to use (often, the constructor with no parameters).</li></ul><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <pre><code class="language-java">public class MyBean { Modified: websites/production/tapestry/content/beaneditform-guide.html ============================================================================== --- websites/production/tapestry/content/beaneditform-guide.html (original) +++ websites/production/tapestry/content/beaneditform-guide.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/blogs.html ============================================================================== --- websites/production/tapestry/content/blogs.html (original) +++ websites/production/tapestry/content/blogs.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/books.html ============================================================================== --- websites/production/tapestry/content/books.html (original) +++ websites/production/tapestry/content/books.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/building-tapestry-from-source.html ============================================================================== --- websites/production/tapestry/content/building-tapestry-from-source.html (original) +++ websites/production/tapestry/content/building-tapestry-from-source.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/built-in-mixins.html ============================================================================== --- websites/production/tapestry/content/built-in-mixins.html (original) +++ websites/production/tapestry/content/built-in-mixins.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/built-in-modules.html ============================================================================== --- websites/production/tapestry/content/built-in-modules.html (original) +++ websites/production/tapestry/content/built-in-modules.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/case-insensitivity.html ============================================================================== --- websites/production/tapestry/content/case-insensitivity.html (original) +++ websites/production/tapestry/content/case-insensitivity.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/chainbuilder-service.html ============================================================================== --- websites/production/tapestry/content/chainbuilder-service.html (original) +++ websites/production/tapestry/content/chainbuilder-service.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/cheat-sheets.html ============================================================================== --- websites/production/tapestry/content/cheat-sheets.html (original) +++ websites/production/tapestry/content/cheat-sheets.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/class-reloading.html ============================================================================== --- websites/production/tapestry/content/class-reloading.html (original) +++ websites/production/tapestry/content/class-reloading.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -179,11 +190,11 @@ <p>One of the best features of Tapestry is automatic reloading of changed classes and templates. <em>Page and component</em> classes will automatically reload when changed. Likewise, changes to component templates and other related resources will also be picked up immediately. In addition, starting in version 5.2, your service classes will also be reloaded automatically after changes (if you're using <a href="ioc.html">Tapestry IoC</a>). Starting in version 5.8.3, you enable multiple classloader mode, which allows smarter page class invalidation.</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title conf-macro-render">Not necessarily throwing away all cached page instances</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Since Tapestry 5.8.3, Tapestry can be run in multiple classloaders mode. When it's on, only the affected cached page instances are discarded and rebuilt instead of all of them. </p></div></div><h2 id="ClassReloading-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1712225620397 {padding: 0px;} -div.rbtoc1712225620397 ul {margin-left: 0px;} -div.rbtoc1712225620397 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737720880453 {padding: 0px;} +div.rbtoc1737720880453 ul {margin-left: 0px;} +div.rbtoc1737720880453 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1712225620397"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737720880453"> <ul class="toc-indentation"><li><a href="#ClassReloading-TemplateReloading">Template Reloading</a></li><li><a href="#ClassReloading-ClassReloading">Class Reloading</a></li><li><a href="#ClassReloading-PackagesScanned">Packages Scanned</a></li><li><a href="#ClassReloading-FileSystemOnly">File System Only</a></li><li><a href="#ClassReloading-ClassLoaderIssues">Class Loader Issues</a></li><li><a href="#ClassReloading-ClassCastExceptions">ClassCastExceptions</a></li><li><a href="#ClassReloading-HandlingReloadsinyourCode">Handling Reloads in your Code</a></li><li><a href="#ClassReloading-CheckingForUpdates">Checking For Updates</a></li><li><a href="#ClassReloading-TroubleshootingLiveClassReloading">Troubleshooting Live Class Reloading</a> <ul class="toc-indentation"><li><a href="#ClassReloading-QuickChecklist">Quick Checklist</a></li><li><a href="#ClassReloading-IfLiveClassReloadingdoesn'twork">If Live Class Reloading doesn't work</a> <ul class="toc-indentation"><li><a href="#ClassReloading-ProductionMode">Production Mode</a></li><li><a href="#ClassReloading-BuildPathIssues">Build Path Issues</a></li><li><a href="#ClassReloading-BuildingAutomatically">Building Automatically</a></li><li><a href="#ClassReloading-TurnoffJVMhotcodeswapping&automaticrestarts">Turn off JVM hot code swapping & automatic restarts</a></li></ul> Modified: websites/production/tapestry/content/client-side-javascript.html ============================================================================== --- websites/production/tapestry/content/client-side-javascript.html (original) +++ websites/production/tapestry/content/client-side-javascript.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/clustering-issues.html ============================================================================== --- websites/production/tapestry/content/clustering-issues.html (original) +++ websites/production/tapestry/content/clustering-issues.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/coffeescript.html ============================================================================== --- websites/production/tapestry/content/coffeescript.html (original) +++ websites/production/tapestry/content/coffeescript.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/committers.html ============================================================================== --- websites/production/tapestry/content/committers.html (original) +++ websites/production/tapestry/content/committers.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/community.html ============================================================================== --- websites/production/tapestry/content/community.html (original) +++ websites/production/tapestry/content/community.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -144,11 +155,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><p>Tapestry has an active community of users and developers. This is an overview of how to participate, along with a list of some of the great contributions of the community members.</p><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1712225645158 {padding: 0px;} -div.rbtoc1712225645158 ul {margin-left: 0px;} -div.rbtoc1712225645158 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737720905448 {padding: 0px;} +div.rbtoc1737720905448 ul {margin-left: 0px;} +div.rbtoc1737720905448 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1712225645158"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737720905448"> <ul class="toc-indentation"><li><a href="#Community-GettingInvolved">Getting Involved</a> <ul class="toc-indentation"><li><a href="#Community-ReportingProblems/GettingSupport">Reporting Problems / Getting Support</a></li><li><a href="#Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing translations for Tapestry built-in messages</a></li><li><a href="#Community-SourceCodeAccess">Source Code Access</a></li><li><a href="#Community-BecomingaContributor">Becoming a Contributor</a></li><li><a href="#Community-BecomingaCommitter">Becoming a Committer</a></li></ul> </li><li><a href="#Community-CommunityContributions">Community Contributions</a> Modified: websites/production/tapestry/content/component-cheat-sheet.html ============================================================================== --- websites/production/tapestry/content/component-cheat-sheet.html (original) +++ websites/production/tapestry/content/component-cheat-sheet.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -179,7 +190,7 @@ <span class="icon aui-icon content-type-page" title="Page">Page:</span> </div> <div class="details"> - <a href="component-reference.html">Component Reference</a> + <a href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a> </div> @@ -188,7 +199,7 @@ <span class="icon aui-icon content-type-page" title="Page">Page:</span> </div> <div class="details"> - <a href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a> + <a href="component-reference.html">Component Reference</a> </div> Modified: websites/production/tapestry/content/component-classes.html ============================================================================== --- websites/production/tapestry/content/component-classes.html (original) +++ websites/production/tapestry/content/component-classes.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -170,7 +181,7 @@ <span class="icon aui-icon content-type-page" title="Page">Page:</span> </div> <div class="details"> - <a href="component-reference.html">Component Reference</a> + <a href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a> </div> @@ -179,7 +190,7 @@ <span class="icon aui-icon content-type-page" title="Page">Page:</span> </div> <div class="details"> - <a href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a> + <a href="component-reference.html">Component Reference</a> </div> Modified: websites/production/tapestry/content/component-events-faq.html ============================================================================== --- websites/production/tapestry/content/component-events-faq.html (original) +++ websites/production/tapestry/content/component-events-faq.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -144,11 +155,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="ComponentEventsFAQ-ComponentEvents">Component Events</h1><p>Main Article: <a href="component-events.html">Component Events</a></p><h2 id="ComponentEventsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1737227525347 {padding: 0px;} -div.rbtoc1737227525347 ul {margin-left: 0px;} -div.rbtoc1737227525347 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737721002837 {padding: 0px;} +div.rbtoc1737721002837 ul {margin-left: 0px;} +div.rbtoc1737721002837 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1737227525347"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737721002837"> <ul class="toc-indentation"><li><a href="#ComponentEventsFAQ-WhydoesTapestrysendaredirectafteraformissubmitted?">Why does Tapestry send a redirect after a form is submitted?</a></li><li><a href="#ComponentEventsFAQ-IspecifiedazoneinmyActionLink/EventLink,sowhydoesn'tmyeventfireviaajax(request.isXHR()isfalse)?">I specified a zone in my ActionLink/EventLink, so why doesn't my event fire via ajax (request.isXHR() is false)?</a></li></ul> </div><h2 id="ComponentEventsFAQ-WhydoesTapestrysendaredirectafteraformissubmitted?">Why does Tapestry send a redirect after a form is submitted?</h2><p>This is an extension of the <a class="external-link" href="http://en.wikipedia.org/wiki/Post/Redirect/Get" rel="nofollow">Post/Redirect/Get</a> approach. It ensures that after an operation that updates server-side state, such as a form submission, if the user resubmits the resulting page, the operation is <strong>not</strong> performed a second time; instead just the results of the operation, reflecting the changed server-side state, is re-rendered.</p><p>This has the unwanted requirement that any data needed to render the response must persist between the event request (the form submission) and the render request; this often means that fields must be annotated with @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a>. Modified: websites/production/tapestry/content/component-events.html ============================================================================== --- websites/production/tapestry/content/component-events.html (original) +++ websites/production/tapestry/content/component-events.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/component-libraries.html ============================================================================== --- websites/production/tapestry/content/component-libraries.html (original) +++ websites/production/tapestry/content/component-libraries.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/component-mixins.html ============================================================================== --- websites/production/tapestry/content/component-mixins.html (original) +++ websites/production/tapestry/content/component-mixins.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> Modified: websites/production/tapestry/content/component-parameters.html ============================================================================== --- websites/production/tapestry/content/component-parameters.html (original) +++ websites/production/tapestry/content/component-parameters.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -248,11 +259,11 @@ </div></div><p>A component may have any number of parameters. Each parameter has a specific name, a specific Java type (which may be a primitive value), and may be <em>optional</em> or <em>required</em>.</p><p>Within a component class, parameters are declared by using the @<a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Parameter.html">Parameter</a> annotation on a private field, as we'll see below.</p><p><span class="confluence-anchor-link" id="ComponentParameters-bindingparameters"></span></p><h1 id="ComponentParameters-ParameterBindings">Parameter Bindings</h1><p>In Tapestry, a parameter is not a slot into which data is pushed: it is a <em>connection</em> between a field of the component (marked with the @Parameter annotation) and a property or resource of the component's container. (Components can be nested, so the container can be either the page or another component.)</p><div class="navmenu" style="float:right; backgro und:white; margin:3px; padding:3px"> <div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Contents</b></div><div class="panelContent"> <style type="text/css">/*<![CDATA[*/ -div.rbtoc1737227503546 {padding: 0px;} -div.rbtoc1737227503546 ul {margin-left: 0px;} -div.rbtoc1737227503546 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737720833868 {padding: 0px;} +div.rbtoc1737720833868 ul {margin-left: 0px;} +div.rbtoc1737720833868 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style><div class="toc-macro rbtoc1737227503546"> +/*]]>*/</style><div class="toc-macro rbtoc1737720833868"> <ul class="toc-indentation"><li><a href="#ComponentParameters-ParameterBindings">Parameter Bindings</a></li><li><a href="#ComponentParameters-BindingExpressions">Binding Expressions</a></li><li><a href="#ComponentParameters-@Parameterannotation">@Parameter annotation</a></li><li><a href="#ComponentParameters-Don'tusethe${...}syntax!">Don't use the ${...} syntax!</a></li><li><a href="#ComponentParameters-InformalParameters">Informal Parameters</a></li><li><a href="#ComponentParameters-ParametersAreBi-Directional">Parameters Are Bi-Directional</a></li><li><a href="#ComponentParameters-InheritedParameterBindings">Inherited Parameter Bindings</a></li><li><a href="#ComponentParameters-ComputedParameterBindingDefaults">Computed Parameter Binding Defaults</a></li><li><a href="#ComponentParameters-UnboundParameters">Unbound Parameters</a></li><li><a href="#ComponentParameters-ParameterTypeCoercion">Parameter Type Coercion</a></li><li><a href="#ComponentParameters-ParameterNames">Parameter N ames</a></li><li><a href="#ComponentParameters-DeterminingifBound">Determining if Bound</a></li><li><a href="#ComponentParameters-PublishingParameters">Publishing Parameters</a></li></ul> </div> </div></div></div> <p>The connection between a component and a property (or resource) of its container is called a <em>binding</em>. The binding is two-way: the component can read the bound property by reading its parameter field. Likewise, a component that updates its parameter field will update the bound property.</p><p>This is important in a lot of cases; for example a TextField component can read <em>and update</em> the property bound to its value parameter. It reads the value when rendering, but updates the value when the form is submitted.</p><p>The component listed below is a looping component; it renders its body a number of times, defined by its <code>start</code> and <code>end</code> parameters (which set the boundaries of the loop). The component can update a <code>result</code> parameter bound to a property of its container; it will automatically count up or down depending on whether <code>start</code> or <code>end</code> is larger.</p><div class="code panel pdl" st yle="border-width: 1px;"><div class="codeContent panelContent pdl"> Modified: websites/production/tapestry/content/component-reference.html ============================================================================== --- websites/production/tapestry/content/component-reference.html (original) +++ websites/production/tapestry/content/component-reference.html Fri Jan 24 12:18:16 2025 @@ -50,12 +50,23 @@ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js" defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js" defer></script> - <script type="text/javascript"> - window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; - ga('create', 'UA-400821-1', 'auto'); - ga('send', 'pageview'); + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ + _paq.push(["setDoNotTrack", true]); + _paq.push(["disableCookies"]); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'matomo.php']); + _paq.push(['setSiteId', '71']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); + })(); </script> - <script async src="https://www.google-analytics.com/analytics.js"></script> + <!-- End Matomo Code --> </head> <body> <!-- /// Navigation Start --> @@ -188,11 +199,11 @@ <p></p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1712225622253 {padding: 0px;} -div.rbtoc1712225622253 ul {margin-left: 0px;} -div.rbtoc1712225622253 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1737720882353 {padding: 0px;} +div.rbtoc1737720882353 ul {margin-left: 0px;} +div.rbtoc1737720882353 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1712225622253"> +/*]]>*/</style></p><div class="toc-macro rbtoc1737720882353"> <ul class="toc-indentation"><li><a href="#ComponentReference-Tapestry-providedComponents">Tapestry-provided Components</a> <ul class="toc-indentation"><li><a href="#ComponentReference-AJAX-specificComponents">AJAX-specific Components</a></li><li><a href="#ComponentReference-BeanDisplaying&Editing">Bean Displaying & Editing</a></li><li><a href="#ComponentReference-ConditionalandLoopingComponents">Conditional and Looping Components</a></li><li><a href="#ComponentReference-FormComponents">Form Components</a></li><li><a href="#ComponentReference-Grids,TablesandTrees">Grids, Tables and Trees</a></li><li><a href="#ComponentReference-LinksandButtons">Links and Buttons</a></li><li><a href="#ComponentReference-OutputandMessages">Output and Messages</a></li><li><a href="#ComponentReference-Miscellaneous">Miscellaneous</a></li></ul> </li><li><a href="#ComponentReference-TapestryMixins">Tapestry Mixins</a></li><li><a href="#ComponentReference-TapestryPages">Tapestry Pages</a></li><li><a href="#ComponentReference-BaseComponents">Base Components</a></li><li><a href="#ComponentReference-OtherComponentLibraries">Other Component Libraries</a></li></ul>