Author: smumford
Date: 2011-12-04 23:33:56 -0500 (Sun, 04 Dec 2011)
New Revision: 8191
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalPermissionConfiguration/default145.xml
epp/docs/branches/5.2/Reference_Guide/en-US/icons/icon.svg
epp/docs/branches/5.2/Reference_Guide/en-US/modules/Advanced/Foundations/Configuring_Services.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/NavigationController.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/PortalLifecycle.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/backup/exojcr-backup-service.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/jbosscache-configuration-templates.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/other/jcr-resources.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/ftp.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/query-handler-config.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/statistics.xml
Log:
JBEPP-1431: Actioning QE feedback
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -7,15 +7,15 @@
<gadget name="Todo">
<path>/gadgets/Todo/Todo.xml</path>
</gadget>
-
+
<gadget name="Calendar">
<path>/gadgets/Calendar/Calendar.xml</path>
</gadget>
-
+
<gadget name="Calculator">
<path>/gadgets/Calculator/Calculator.xml</path>
</gadget>
-
+
<gadget name="rssAggregator">
<path>/gadgets/rssAggregator/rssAggregator.xml</path>
</gadget>
@@ -23,4 +23,8 @@
<gadget name="Currency">
<
url>http://www.donalobrien.net/apps/google/currency.xml</url>
</gadget>
+
+ <gadget name="ServiceMangement">
+ <path>/gadgets/ServiceManagement/ServiceManagement.xml</path>
+ </gadget>
</gadgets>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalPermissionConfiguration/default145.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalPermissionConfiguration/default145.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalPermissionConfiguration/default145.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -25,16 +25,16 @@
<value>/platform/guests</value>
</value-param>
<values-param>
- <name>mandatory.groups</name>
- <description>Groups that can not be deleted.</description>
- <value>/platform/administrators</value>
- <value>/platform/users</value>
- <value>/platform/guests</value>
- </values-param>
- <values-param>
- <name>mandatory.mstypes</name>
- <description>Membership type that can not be deleted.</description>
- <value>member</value>
- </values-param>
+ <name>mandatory.groups</name>
+ <description>Groups that can not be deleted.</description>
+ <value>/platform/administrators</value>
+ <value>/platform/users</value>
+ <value>/platform/guests</value>
+ </values-param>
+ <values-param>
+ <name>mandatory.mstypes</name>
+ <description>Membership type that can not be deleted.</description>
+ <value>member</value>
+ </values-param>
</init-params>
-</component>
+</component>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/icons/icon.svg
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/icons/icon.svg 2011-12-05 03:51:59 UTC
(rev 8190)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/icons/icon.svg 2011-12-05 04:33:56 UTC
(rev 8191)
@@ -1,3936 +1,19 @@
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
-<!-- Created with Inkscape (
http://www.inkscape.org/) -->
-<svg
-
xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
-
xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
-
xmlns:cc="http://web.resource.org/cc/"
-
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-
xmlns:svg="http://www.w3.org/2000/svg"
-
xmlns="http://www.w3.org/2000/svg"
-
xmlns:xlink="http://www.w3.org/1999/xlink"
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd&q...
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- version="1.0"
- width="32"
- height="32"
- id="svg3017"
- sodipodi:version="0.32"
- inkscape:version="0.44+devel"
- sodipodi:docname="book.svg"
- sodipodi:docbase="/home/andy/Desktop">
- <metadata
- id="metadata489">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <sodipodi:namedview
- inkscape:window-height="480"
- inkscape:window-width="858"
- inkscape:pageshadow="0"
- inkscape:pageopacity="0.0"
- guidetolerance="10.0"
- gridtolerance="10.0"
- objecttolerance="10.0"
- borderopacity="1.0"
- bordercolor="#666666"
- pagecolor="#ffffff"
- id="base"
- inkscape:zoom="1"
- inkscape:cx="16"
- inkscape:cy="15.944056"
- inkscape:window-x="0"
- inkscape:window-y="33"
- inkscape:current-layer="svg3017" />
- <defs
- id="defs3019">
- <linearGradient
- id="linearGradient2381">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="stop2383" />
- <stop
- style="stop-color:white;stop-opacity:0"
- offset="1"
- id="stop2385" />
+<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0"
width="32" height="32" id="svg3017">
+ <defs id="defs3019">
+ <linearGradient id="linearGradient2381">
+ <stop id="stop2383"
style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop2385"
style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
</linearGradient>
- <linearGradient
- x1="415.73831"
- y1="11.854"
- x2="418.13361"
- y2="18.8104"
- id="XMLID_1758_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="0"
- id="stop3903" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="1"
- id="stop3905" />
- <a:midPointStop
- style="stop-color:#CCCCCC"
- offset="0" />
- <a:midPointStop
- style="stop-color:#CCCCCC"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#F2F2F2"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="500.70749"
- y1="-13.2441"
- x2="513.46442"
- y2="-2.1547"
- id="XMLID_1757_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0"
- id="stop3890" />
- <stop
- style="stop-color:#96bad6;stop-opacity:1"
- offset="1"
- id="stop3892" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#96BAD6"
- offset="1" />
- </linearGradient>
- <clipPath
- id="XMLID_1755_">
- <use
- id="use3874"
- x="0"
- y="0"
- width="744.09448"
- height="600"
- xlink:href="#XMLID_343_" />
- </clipPath>
- <linearGradient
- x1="505.62939"
- y1="-14.9526"
- x2="527.49402"
- y2="-0.7536"
- id="XMLID_1756_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0"
- id="stop3877" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0.51120001"
- id="stop3879" />
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0.64609998"
- id="stop3881" />
- <stop
- style="stop-color:#16336e;stop-opacity:1"
- offset="1"
- id="stop3883" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5112" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.6461" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#16336E"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="471.0806"
- y1="201.07761"
- x2="481.91711"
- y2="210.4977"
- id="XMLID_1754_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#6498c1;stop-opacity:1"
- offset="0.005618"
- id="stop3863" />
- <stop
- style="stop-color:#79a9cc;stop-opacity:1"
- offset="0.2332"
- id="stop3865" />
- <stop
- style="stop-color:#a4cde2;stop-opacity:1"
- offset="0.74049997"
- id="stop3867" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="1"
- id="stop3869" />
- <a:midPointStop
- style="stop-color:#6498C1"
- offset="5.618000e-003" />
- <a:midPointStop
- style="stop-color:#6498C1"
- offset="0.4438" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="516.57672"
- y1="-15.769"
- x2="516.57672"
- y2="0.84280002"
- id="XMLID_1753_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0"
- id="stop3851" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="1"
- id="stop3853" />
- <a:midPointStop
- style="stop-color:#B2B2B2"
- offset="0" />
- <a:midPointStop
- style="stop-color:#B2B2B2"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#F2F2F2"
- offset="1" />
- </linearGradient>
- <clipPath
- id="XMLID_1751_">
- <use
- id="use3837"
- x="0"
- y="0"
- width="744.09448"
- height="600"
- xlink:href="#XMLID_338_" />
- </clipPath>
- <linearGradient
- x1="506.09909"
- y1="-11.5137"
- x2="527.99609"
- y2="2.7063999"
- id="XMLID_1752_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0"
- id="stop3840" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0.51120001"
- id="stop3842" />
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0.64609998"
- id="stop3844" />
- <stop
- style="stop-color:#16336e;stop-opacity:1"
- offset="1"
- id="stop3846" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5112" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.6461" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#16336E"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="468.2915"
- y1="204.7612"
- x2="479.39871"
- y2="214.4166"
- id="XMLID_1750_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0"
- id="stop3830" />
- <stop
- style="stop-color:#96bad6;stop-opacity:1"
- offset="1"
- id="stop3832" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#96BAD6"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="502.70749"
- y1="115.3013"
- x2="516.39001"
- y2="127.1953"
- id="XMLID_1749_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0"
- id="stop3818" />
- <stop
- style="stop-color:#96bad6;stop-opacity:1"
- offset="1"
- id="stop3820" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#96BAD6"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="501.0903"
- y1="-19.2544"
- x2="531.85413"
- y2="0.72390002"
- id="XMLID_1748_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0"
- id="stop3803" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0.51120001"
- id="stop3805" />
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0.64609998"
- id="stop3807" />
- <stop
- style="stop-color:#16336e;stop-opacity:1"
- offset="1"
- id="stop3809" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5112" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.6461" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#16336E"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="481.23969"
- y1="212.5742"
- x2="472.92981"
- y2="207.4967"
- id="XMLID_2275_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#f3403f;stop-opacity:1"
- offset="0"
- id="stop9947" />
- <stop
- style="stop-color:#d02a28;stop-opacity:1"
- offset="0.37889999"
- id="stop9949" />
- <stop
- style="stop-color:#b21714;stop-opacity:1"
- offset="0.77649999"
- id="stop9951" />
- <stop
- style="stop-color:#a6100c;stop-opacity:1"
- offset="1"
- id="stop9953" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0.4213" />
- <a:midPointStop
- style="stop-color:#A6100C"
- offset="1" />
- </linearGradient>
- <clipPath
- id="XMLID_2273_">
- <use
- id="use9933"
- x="0"
- y="0"
- width="744.09448"
- height="600"
- xlink:href="#XMLID_960_" />
- </clipPath>
- <linearGradient
- x1="473.7681"
- y1="209.17529"
- x2="486.98099"
- y2="213.2001"
- id="XMLID_2274_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#f3403f;stop-opacity:1"
- offset="0"
- id="stop9936" />
- <stop
- style="stop-color:#d02a28;stop-opacity:1"
- offset="0.37889999"
- id="stop9938" />
- <stop
- style="stop-color:#b21714;stop-opacity:1"
- offset="0.77649999"
- id="stop9940" />
- <stop
- style="stop-color:#a6100c;stop-opacity:1"
- offset="1"
- id="stop9942" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0.4213" />
- <a:midPointStop
- style="stop-color:#A6100C"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="478.21341"
- y1="-131.9297"
- x2="469.85818"
- y2="-140.28481"
- id="XMLID_2272_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
- <stop
- style="stop-color:#f3403f;stop-opacity:1"
- offset="0"
- id="stop9917" />
- <stop
- style="stop-color:#d02a28;stop-opacity:1"
- offset="0.37889999"
- id="stop9919" />
- <stop
- style="stop-color:#b21714;stop-opacity:1"
- offset="0.77649999"
- id="stop9921" />
- <stop
- style="stop-color:#a6100c;stop-opacity:1"
- offset="1"
- id="stop9923" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0.4213" />
- <a:midPointStop
- style="stop-color:#A6100C"
- offset="1" />
- </linearGradient>
- <marker
- refX="0"
- refY="0"
- orient="auto"
- style="overflow:visible"
- id="TriangleInM">
- <path
- d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
- transform="scale(-0.4,-0.4)"
- style="fill:#5c5c4f"
- id="path3197" />
- </marker>
- <linearGradient
- x1="200.7363"
- y1="100.4028"
- x2="211.99519"
- y2="89.143997"
- id="XMLID_3298_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#bfbfbf;stop-opacity:1"
- offset="0"
- id="stop20103" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="1"
- id="stop20105" />
- <a:midPointStop
- offset="0"
- style="stop-color:#BFBFBF" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#BFBFBF" />
- <a:midPointStop
- offset="1"
- style="stop-color:#F2F2F2" />
- </linearGradient>
- <linearGradient
- x1="200.7363"
- y1="100.4028"
- x2="211.99519"
- y2="89.143997"
- id="linearGradient36592"
- xlink:href="#XMLID_3298_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <linearGradient
- x1="181.2925"
- y1="110.8481"
- x2="192.6369"
- y2="99.5037"
- id="XMLID_3297_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0"
- id="stop20096" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="stop20098" />
- <a:midPointStop
- offset="0"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="1"
- style="stop-color:#CCCCCC" />
- </linearGradient>
- <linearGradient
- x1="181.2925"
- y1="110.8481"
- x2="192.6369"
- y2="99.5037"
- id="linearGradient36595"
- xlink:href="#XMLID_3297_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <linearGradient
- x1="211.77589"
- y1="105.7749"
- x2="212.6619"
- y2="108.2092"
- id="XMLID_3296_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#0f6124;stop-opacity:1"
- offset="0"
- id="stop20087" />
- <stop
- style="stop-color:#219630;stop-opacity:1"
- offset="1"
- id="stop20089" />
- <a:midPointStop
- offset="0"
- style="stop-color:#0F6124" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#0F6124" />
- <a:midPointStop
- offset="1"
- style="stop-color:#219630" />
- </linearGradient>
- <linearGradient
- x1="211.77589"
- y1="105.7749"
- x2="212.6619"
- y2="108.2092"
- id="linearGradient36677"
- xlink:href="#XMLID_3296_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <linearGradient
- x1="208.9834"
- y1="116.8296"
- x2="200.0811"
- y2="96.834602"
- id="XMLID_3295_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0"
- id="stop20076" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0.5"
- id="stop20078" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="stop20080" />
- <a:midPointStop
- offset="0"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="1"
- style="stop-color:#FFFFFF" />
- </linearGradient>
- <linearGradient
- x1="208.9834"
- y1="116.8296"
- x2="200.0811"
- y2="96.834602"
- id="linearGradient36604"
- xlink:href="#XMLID_3295_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <linearGradient
- x1="195.5264"
- y1="97.911102"
- x2="213.5213"
- y2="115.9061"
- id="XMLID_3294_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="0"
- id="stop20069" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="stop20071" />
- <a:midPointStop
- offset="0"
- style="stop-color:#CCCCCC" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#CCCCCC" />
- <a:midPointStop
- offset="1"
- style="stop-color:#FFFFFF" />
- </linearGradient>
- <linearGradient
- x1="195.5264"
- y1="97.911102"
- x2="213.5213"
- y2="115.9061"
- id="linearGradient36607"
- xlink:href="#XMLID_3294_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <linearGradient
- x1="186.1938"
- y1="109.1343"
- x2="206.6881"
- y2="88.639999"
- id="XMLID_3293_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0"
- id="stop20056" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0.16850001"
- id="stop20058" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0.23029999"
- id="stop20060" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0.2809"
- id="stop20062" />
- <stop
- style="stop-color:#c2c2c2;stop-opacity:1"
- offset="0.5"
- id="stop20064" />
- <a:midPointStop
- offset="0"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.1685"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.2303"
- style="stop-color:#FFFFFF" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#FFFFFF" />
- <a:midPointStop
- offset="0.2809"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#C2C2C2" />
- </linearGradient>
- <linearGradient
- x1="186.1938"
- y1="109.1343"
- x2="206.6881"
- y2="88.639999"
- id="linearGradient36610"
- xlink:href="#XMLID_3293_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <linearGradient
- x1="184.8569"
- y1="112.2676"
- x2="211.94099"
- y2="89.541397"
- id="XMLID_3292_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0"
- id="stop20043" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0.16850001"
- id="stop20045" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0.23029999"
- id="stop20047" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0.2809"
- id="stop20049" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="stop20051" />
- <a:midPointStop
- offset="0"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.1685"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.2303"
- style="stop-color:#FFFFFF" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#FFFFFF" />
- <a:midPointStop
- offset="0.2809"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="1"
- style="stop-color:#CCCCCC" />
- </linearGradient>
- <linearGradient
- x1="184.8569"
- y1="112.2676"
- x2="211.94099"
- y2="89.541397"
- id="linearGradient36613"
- xlink:href="#XMLID_3292_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
- <marker
- refX="0"
- refY="0"
- orient="auto"
- style="overflow:visible"
- id="TriangleOutM">
- <path
- d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
- transform="scale(0.4,0.4)"
-
style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
- id="path3238" />
- </marker>
- <linearGradient
- x1="165.3"
- y1="99.5"
- x2="165.3"
- y2="115.9"
- id="XMLID_3457_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#999;stop-opacity:1"
- offset="0"
- id="stop8309" />
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0.30000001"
- id="stop8311" />
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="1"
- id="stop8313" />
- <a:midPointstop
- offset="0"
- style="stop-color:#999999" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#999999" />
- <a:midPointstop
- offset="0.3"
- style="stop-color:#B2B2B2" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#B2B2B2" />
- <a:midPointstop
- offset="1"
- style="stop-color:#B2B2B2" />
- </linearGradient>
- <linearGradient
- x1="165.3"
- y1="99.5"
- x2="165.3"
- y2="115.9"
- id="lg1997"
- xlink:href="#XMLID_3457_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <linearGradient
- x1="175"
- y1="99.800003"
- x2="175"
- y2="112.5"
- id="XMLID_3456_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#737373;stop-opacity:1"
- offset="0"
- id="stop8300" />
- <stop
- style="stop-color:#191919;stop-opacity:1"
- offset="0.60000002"
- id="stop8302" />
- <stop
- style="stop-color:#191919;stop-opacity:1"
- offset="1"
- id="stop8304" />
- <a:midPointstop
- offset="0"
- style="stop-color:#737373" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#737373" />
- <a:midPointstop
- offset="0.6"
- style="stop-color:#191919" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#191919" />
- <a:midPointstop
- offset="1"
- style="stop-color:#191919" />
- </linearGradient>
- <linearGradient
- x1="175"
- y1="99.800003"
- x2="175"
- y2="112.5"
- id="lg2000"
- xlink:href="#XMLID_3456_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <linearGradient
- x1="168.8"
- y1="107.1"
- x2="164.5"
- y2="110"
- id="XMLID_3455_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#666;stop-opacity:1"
- offset="0"
- id="stop8291" />
- <stop
- style="stop-color:#191919;stop-opacity:1"
- offset="0.69999999"
- id="stop8293" />
- <stop
- style="stop-color:#191919;stop-opacity:1"
- offset="1"
- id="stop8295" />
- <a:midPointstop
- offset="0"
- style="stop-color:#666666" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#666666" />
- <a:midPointstop
- offset="0.7"
- style="stop-color:#191919" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#191919" />
- <a:midPointstop
- offset="1"
- style="stop-color:#191919" />
- </linearGradient>
- <linearGradient
- x1="168.8"
- y1="107.1"
- x2="164.5"
- y2="110"
- id="lg2003"
- xlink:href="#XMLID_3455_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <linearGradient
- id="lg63694">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="stop63696" />
- <stop
- style="stop-color:white;stop-opacity:0"
- offset="1"
- id="stop63698" />
- </linearGradient>
- <linearGradient
- x1="458"
- y1="483"
- x2="465.20001"
- y2="271.39999"
- id="lg2006"
- xlink:href="#lg63694"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
- <linearGradient
- x1="176.3"
- y1="110.1"
- x2="158.7"
- y2="105"
- id="XMLID_3453_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#666;stop-opacity:1"
- offset="0"
- id="stop8271" />
- <stop
- style="stop-color:#737373;stop-opacity:1"
- offset="0.2"
- id="stop8273" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="stop8275" />
- <a:midPointstop
- offset="0"
- style="stop-color:#666666" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#666666" />
- <a:midPointstop
- offset="0.2"
- style="stop-color:#737373" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#737373" />
- <a:midPointstop
- offset="1"
- style="stop-color:#FFFFFF" />
- </linearGradient>
- <linearGradient
- x1="176.3"
- y1="110.1"
- x2="158.7"
- y2="105"
- id="lg2009"
- xlink:href="#XMLID_3453_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <linearGradient
- x1="173.60001"
- y1="118.9"
- x2="172.8"
- y2="128.2"
- id="XMLID_3449_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ecb300;stop-opacity:1"
- offset="0"
- id="stop8232" />
- <stop
- style="stop-color:#fff95e;stop-opacity:1"
- offset="0.60000002"
- id="stop8234" />
- <stop
- style="stop-color:#ecd600;stop-opacity:1"
- offset="1"
- id="stop8236" />
- <a:midPointstop
- offset="0"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.6"
- style="stop-color:#FFF95E" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFF95E" />
- <a:midPointstop
- offset="1"
- style="stop-color:#ECD600" />
- </linearGradient>
- <linearGradient
- x1="173.60001"
- y1="118.9"
- x2="172.8"
- y2="128.2"
- id="lg2016"
- xlink:href="#XMLID_3449_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <radialGradient
- cx="284.60001"
- cy="172.60001"
- r="6.5"
- fx="284.60001"
- fy="172.60001"
- id="XMLID_3448_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
- <stop
- style="stop-color:#ecb300;stop-opacity:1"
- offset="0"
- id="stop8219" />
- <stop
- style="stop-color:#ecb300;stop-opacity:1"
- offset="0.30000001"
- id="stop8221" />
- <stop
- style="stop-color:#c96b00;stop-opacity:1"
- offset="0.89999998"
- id="stop8223" />
- <stop
- style="stop-color:#9a5500;stop-opacity:1"
- offset="1"
- id="stop8225" />
- <a:midPointstop
- offset="0"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.3"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.9"
- style="stop-color:#C96B00" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#C96B00" />
- <a:midPointstop
- offset="1"
- style="stop-color:#9A5500" />
- </radialGradient>
- <radialGradient
- cx="284.60001"
- cy="172.60001"
- r="6.5"
- fx="284.60001"
- fy="172.60001"
- id="rg2020"
- xlink:href="#XMLID_3448_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)"
/>
- <linearGradient
- x1="158.10001"
- y1="123"
- x2="164.2"
- y2="126.6"
- id="XMLID_3447_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ecd600;stop-opacity:1"
- offset="0"
- id="stop8204" />
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0.30000001"
- id="stop8206" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="stop8208" />
- <a:midPointstop
- offset="0"
- style="stop-color:#ECD600" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#ECD600" />
- <a:midPointstop
- offset="0.3"
- style="stop-color:#FFFFB3" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFFFB3" />
- <a:midPointstop
- offset="1"
- style="stop-color:#FFFFFF" />
- </linearGradient>
- <linearGradient
- x1="158.10001"
- y1="123"
- x2="164.2"
- y2="126.6"
- id="lg2026"
- xlink:href="#XMLID_3447_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <radialGradient
- cx="280.89999"
- cy="163.7"
- r="10.1"
- fx="280.89999"
- fy="163.7"
- id="XMLID_3446_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="stop8197" />
- <stop
- style="stop-color:#fff95e;stop-opacity:1"
- offset="1"
- id="stop8199" />
- <a:midPointstop
- offset="0"
- style="stop-color:#FFFFFF" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFFFFF" />
- <a:midPointstop
- offset="1"
- style="stop-color:#FFF95E" />
- </radialGradient>
- <radialGradient
- cx="280.89999"
- cy="163.7"
- r="10.1"
- fx="280.89999"
- fy="163.7"
- id="rg2029"
- xlink:href="#XMLID_3446_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
- <linearGradient
- x1="156.5"
- y1="122.7"
- x2="180.10001"
- y2="122.7"
- id="XMLID_3445_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ecb300;stop-opacity:1"
- offset="0"
- id="stop8184" />
- <stop
- style="stop-color:#ffe900;stop-opacity:1"
- offset="0.2"
- id="stop8186" />
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0.30000001"
- id="stop8188" />
- <stop
- style="stop-color:#ffe900;stop-opacity:1"
- offset="0.40000001"
- id="stop8190" />
- <stop
- style="stop-color:#d68100;stop-opacity:1"
- offset="1"
- id="stop8192" />
- <a:midPointstop
- offset="0"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.2"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="0.3"
- style="stop-color:#FFFFB3" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFFFB3" />
- <a:midPointstop
- offset="0.4"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="1"
- style="stop-color:#D68100" />
- </linearGradient>
- <linearGradient
- x1="156.5"
- y1="122.7"
- x2="180.10001"
- y2="122.7"
- id="lg2032"
- xlink:href="#XMLID_3445_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <linearGradient
- x1="156.39999"
- y1="115.4"
- x2="180.10001"
- y2="115.4"
- id="XMLID_3444_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ecb300;stop-opacity:1"
- offset="0"
- id="stop8171" />
- <stop
- style="stop-color:#ffe900;stop-opacity:1"
- offset="0.2"
- id="stop8173" />
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0.30000001"
- id="stop8175" />
- <stop
- style="stop-color:#ffe900;stop-opacity:1"
- offset="0.40000001"
- id="stop8177" />
- <stop
- style="stop-color:#d68100;stop-opacity:1"
- offset="1"
- id="stop8179" />
- <a:midPointstop
- offset="0"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#ECB300" />
- <a:midPointstop
- offset="0.2"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="0.3"
- style="stop-color:#FFFFB3" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFFFB3" />
- <a:midPointstop
- offset="0.4"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="0.5"
- style="stop-color:#FFE900" />
- <a:midPointstop
- offset="1"
- style="stop-color:#D68100" />
- </linearGradient>
- <linearGradient
- x1="156.39999"
- y1="115.4"
- x2="180.10001"
- y2="115.4"
- id="lg2035"
- xlink:href="#XMLID_3444_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
- <linearGradient
- x1="379.70001"
- y1="167.89999"
- x2="383.89999"
- y2="172.89999"
- id="lg4286_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s16159" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0.1"
- id="s16161" />
- <stop
- style="stop-color:#737373;stop-opacity:1"
- offset="1"
- id="s16163" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.1" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#737373"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="379.60001"
- y1="167.8"
- x2="383.79999"
- y2="172"
- id="lg6416"
- xlink:href="#lg4286_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)"
/>
- <linearGradient
- x1="384.20001"
- y1="169.8"
- x2="384.79999"
- y2="170.39999"
- id="lg4285_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
- <stop
- style="stop-color:#737373;stop-opacity:1"
- offset="0"
- id="s16152" />
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="1"
- id="s16154" />
- <ns:midPointStop
- style="stop-color:#737373"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#737373"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#D9D9D9"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="384.20001"
- y1="169.8"
- x2="384.79999"
- y2="170.39999"
- id="lg6453"
- xlink:href="#lg4285_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
- <linearGradient
- x1="380.5"
- y1="172.60001"
- x2="382.79999"
- y2="173.7"
- id="lg4284_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
- <stop
- style="stop-color:gray;stop-opacity:1"
- offset="0"
- id="s16145" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="1"
- id="s16147" />
- <ns:midPointStop
- style="stop-color:#808080"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#808080"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#E5E5E5"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="380.5"
- y1="172.60001"
- x2="382.79999"
- y2="173.7"
- id="lg6456"
- xlink:href="#lg4284_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
- <radialGradient
- cx="347.29999"
- cy="244.5"
- r="5.1999998"
- fx="347.29999"
- fy="244.5"
- id="lg4282_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
- <stop
- style="stop-color:#333;stop-opacity:1"
- offset="0"
- id="s16135" />
- <stop
- style="stop-color:#999;stop-opacity:1"
- offset="1"
- id="s16137" />
- <ns:midPointStop
- style="stop-color:#333333"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#333333"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#999999"
- offset="1" />
- </radialGradient>
- <linearGradient
- x1="310.39999"
- y1="397.70001"
- x2="310.89999"
- y2="399.5"
- id="lg4280_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
- <stop
- style="stop-color:#ffcd00;stop-opacity:1"
- offset="0"
- id="s16111" />
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0.60000002"
- id="s16113" />
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="1"
- id="s16115" />
- <ns:midPointStop
- style="stop-color:#FFCD00"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFCD00"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0.6" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="310.39999"
- y1="397.70001"
- x2="310.89999"
- y2="399.5"
- id="lg6467"
- xlink:href="#lg4280_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
- <linearGradient
- x1="310.89999"
- y1="395.79999"
- x2="313.29999"
- y2="403.10001"
- id="lg4279_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0"
- id="s16100" />
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0.40000001"
- id="s16102" />
- <stop
- style="stop-color:#ffcd00;stop-opacity:1"
- offset="0.89999998"
- id="s16104" />
- <stop
- style="stop-color:#ffcd00;stop-opacity:1"
- offset="1"
- id="s16106" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0.4" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFCD00"
- offset="0.9" />
- <ns:midPointStop
- style="stop-color:#FFCD00"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFCD00"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="310.89999"
- y1="395.79999"
- x2="313.29999"
- y2="403.10001"
- id="lg6465"
- xlink:href="#lg4279_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
- <linearGradient
- x1="307.79999"
- y1="395.20001"
- x2="313.79999"
- y2="413.60001"
- id="lg4278_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
- <stop
- style="stop-color:#ffffb3;stop-opacity:1"
- offset="0"
- id="s16091" />
- <stop
- style="stop-color:#fcd72f;stop-opacity:1"
- offset="0.40000001"
- id="s16093" />
- <stop
- style="stop-color:#ffcd00;stop-opacity:1"
- offset="1"
- id="s16095" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFFFB3"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FCD72F"
- offset="0.4" />
- <ns:midPointStop
- style="stop-color:#FCD72F"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFCD00"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="306.5"
- y1="393"
- x2="309"
- y2="404"
- id="lg6400"
- xlink:href="#lg4278_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
- <linearGradient
- x1="352.10001"
- y1="253.60001"
- x2="348.5"
- y2="237.8"
- id="lg4276_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
- <stop
- style="stop-color:#ffff87;stop-opacity:1"
- offset="0"
- id="s16077" />
- <stop
- style="stop-color:#ffad00;stop-opacity:1"
- offset="1"
- id="s16079" />
- <ns:midPointStop
- style="stop-color:#FFFF87"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFFF87"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFAD00"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="335.60001"
- y1="354.79999"
- x2="337.89999"
- y2="354.79999"
- id="lg4275_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="s16057" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0.80000001"
- id="s16059" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="s16061" />
- <ns:midPointStop
- style="stop-color:#D9D9D9"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#D9D9D9"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.8" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="335.60001"
- y1="354.79999"
- x2="337.89999"
- y2="354.79999"
- id="lg6463"
- xlink:href="#lg4275_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
- <linearGradient
- x1="337.39999"
- y1="353.10001"
- x2="339.39999"
- y2="357.10001"
- id="lg4274_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s16048" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0.1"
- id="s16050" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="s16052" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.1" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#CCCCCC"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="337.39999"
- y1="353.10001"
- x2="339.39999"
- y2="357.10001"
- id="lg6461"
- xlink:href="#lg4274_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
- <linearGradient
- x1="334.39999"
- y1="355.5"
- x2="335.5"
- y2="356.79999"
- id="lg4273_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s16041" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="s16043" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="5.6e-003" />
- <ns:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#CCCCCC"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="334.39999"
- y1="355.5"
- x2="335.5"
- y2="356.79999"
- id="lg6381"
- xlink:href="#lg4273_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
- <linearGradient
- x1="348.39999"
- y1="247.39999"
- x2="354.10001"
- y2="242"
- id="lg4271_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0"
- id="s16025" />
- <stop
- style="stop-color:#9e9e9e;stop-opacity:1"
- offset="0.40000001"
- id="s16027" />
- <stop
- style="stop-color:black;stop-opacity:1"
- offset="1"
- id="s16029" />
- <ns:midPointStop
- style="stop-color:#F2F2F2"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#F2F2F2"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#000000"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="351.29999"
- y1="257.29999"
- x2="346.29999"
- y2="235.5"
- id="lg4270_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ffff87;stop-opacity:1"
- offset="0"
- id="s16007" />
- <stop
- style="stop-color:#ffad00;stop-opacity:1"
- offset="1"
- id="s16009" />
- <ns:midPointStop
- style="stop-color:#FFFF87"
- offset="0" />
- <ns:midPointStop
- style="stop-color:#FFFF87"
- offset="0.5" />
- <ns:midPointStop
- style="stop-color:#FFAD00"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="351.29999"
- y1="257.29999"
- x2="346.29999"
- y2="235.5"
- id="lg6459"
- xlink:href="#lg4270_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
- <linearGradient
- x1="43.799999"
- y1="32.5"
- x2="63.299999"
- y2="66.400002"
- id="XMLID_2708_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="stop75318" />
- <stop
- style="stop-color:#fffcea;stop-opacity:1"
- offset="1"
- id="stop75320" />
- <a:midPointStop
- style="stop-color:#FFFFFF"
- offset="0" />
- <a:midPointStop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#FFFCEA"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="43.799999"
- y1="32.5"
- x2="63.299999"
- y2="66.400002"
- id="lg1907"
- xlink:href="#XMLID_2708_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-29,-22.6)" />
- <linearGradient
- x1="52.5"
- y1="40.400002"
- x2="58.200001"
- y2="64"
- id="XMLID_2707_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#ffdea0;stop-opacity:1"
- offset="0"
- id="stop75305" />
- <stop
- style="stop-color:#ffd89e;stop-opacity:1"
- offset="0.30000001"
- id="stop75307" />
- <stop
- style="stop-color:#ffd79e;stop-opacity:1"
- offset="0.30000001"
- id="stop75309" />
- <stop
- style="stop-color:#dbaf6d;stop-opacity:1"
- offset="0.69999999"
- id="stop75311" />
- <stop
- style="stop-color:#6f4c24;stop-opacity:1"
- offset="1"
- id="stop75313" />
- <a:midPointStop
- style="stop-color:#FFDEA0"
- offset="0" />
- <a:midPointStop
- style="stop-color:#FFDEA0"
- offset="0.6" />
- <a:midPointStop
- style="stop-color:#FFD79E"
- offset="0.3" />
- <a:midPointStop
- style="stop-color:#FFD79E"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#DBAF6D"
- offset="0.7" />
- <a:midPointStop
- style="stop-color:#DBAF6D"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#6F4C24"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="52.5"
- y1="40.400002"
- x2="58.200001"
- y2="64"
- id="lg1910"
- xlink:href="#XMLID_2707_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-29,-22.6)" />
- <linearGradient
- x1="58"
- y1="73.199997"
- x2="44.5"
- y2="19"
- id="XMLID_2704_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-29,-22.6)">
- <stop
- style="stop-color:#d4a96c;stop-opacity:1"
- offset="0.5"
- id="stop75284" />
- <stop
- style="stop-color:#dcb273;stop-opacity:1"
- offset="0.60000002"
- id="stop75286" />
- <stop
- style="stop-color:#f0ca87;stop-opacity:1"
- offset="0.80000001"
- id="stop75288" />
- <stop
- style="stop-color:#ffdc96;stop-opacity:1"
- offset="0.69999999"
- id="stop75290" />
- <stop
- style="stop-color:#c18a42;stop-opacity:1"
- offset="1"
- id="stop75292" />
- <a:midPointStop
- style="stop-color:#D4A96C"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#D4A96C"
- offset="0.6" />
- <a:midPointStop
- style="stop-color:#FFDC96"
- offset="0.7" />
- <a:midPointStop
- style="stop-color:#FFDC96"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#C18A42"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="53.700001"
- y1="32"
- x2="53.700001"
- y2="64.599998"
- id="XMLID_2703_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#e5c9b0;stop-opacity:1"
- offset="0"
- id="stop75268" />
- <stop
- style="stop-color:#e5c9b0;stop-opacity:1"
- offset="0.40000001"
- id="stop75270" />
- <stop
- style="stop-color:#c0aa94;stop-opacity:1"
- offset="1"
- id="stop75272" />
- <a:midPointStop
- style="stop-color:#E5C9B0"
- offset="0" />
- <a:midPointStop
- style="stop-color:#E5C9B0"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#E5C9B0"
- offset="0.4" />
- <a:midPointStop
- style="stop-color:#E5C9B0"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#C0AA94"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="53.700001"
- y1="32"
- x2="53.700001"
- y2="64.599998"
- id="lg1916"
- xlink:href="#XMLID_2703_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-29,-22.6)" />
- <linearGradient
- x1="224.31"
- y1="19.450001"
- x2="214.33"
- y2="11.46"
- id="XMLID_419_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#404040;stop-opacity:1"
- offset="0"
- id="s1903" />
- <stop
- style="stop-color:#6d6d6d;stop-opacity:1"
- offset="0.33000001"
- id="s1905" />
- <stop
- style="stop-color:#e9e9e9;stop-opacity:1"
- offset="1"
- id="s1907" />
- <a:midPointStop
- offset="0"
- style="stop-color:#404040" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#404040" />
- <a:midPointStop
- offset="0.33"
- style="stop-color:#6D6D6D" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#6D6D6D" />
- <a:midPointStop
- offset="1"
- style="stop-color:#E9E9E9" />
- </linearGradient>
- <linearGradient
- x1="221.84"
- y1="32.779999"
- x2="212.2"
- y2="20.27"
- id="lg1988"
- xlink:href="#XMLID_419_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
- <linearGradient
- x1="228.35001"
- y1="33.279999"
- x2="215.42999"
- y2="33.279999"
- id="lg1900"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s1902" />
- <stop
- style="stop-color:white;stop-opacity:0"
- offset="1"
- id="s1906" />
- <a:midPointStop
- style="stop-color:#575757"
- offset="0" />
- <a:midPointStop
- style="stop-color:#575757"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#6D6D6D"
- offset="0.33" />
- <a:midPointStop
- style="stop-color:#6D6D6D"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#D3D3D3"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="234.81"
- y1="33.279999"
- x2="228.27"
- y2="33.279999"
- id="lg1908"
- xlink:href="#lg1900"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
- <linearGradient
- x1="228.35001"
- y1="33.279999"
- x2="215.42999"
- y2="33.279999"
- id="XMLID_416_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#575757;stop-opacity:1"
- offset="0"
- id="s1874" />
- <stop
- style="stop-color:#6d6d6d;stop-opacity:1"
- offset="0.33000001"
- id="s1876" />
- <stop
- style="stop-color:#d3d3d3;stop-opacity:1"
- offset="1"
- id="s1878" />
- <a:midPointStop
- offset="0"
- style="stop-color:#575757" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#575757" />
- <a:midPointStop
- offset="0.33"
- style="stop-color:#6D6D6D" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#6D6D6D" />
- <a:midPointStop
- offset="1"
- style="stop-color:#D3D3D3" />
- </linearGradient>
- <linearGradient
- x1="228.35001"
- y1="33.279999"
- x2="215.42999"
- y2="33.279999"
- id="lg1991"
- xlink:href="#XMLID_416_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
- <radialGradient
- cx="603.19"
- cy="230.77"
- r="1.67"
- fx="603.19"
- fy="230.77"
- id="x5010_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
- <stop
- style="stop-color:#c9ffc9;stop-opacity:1"
- offset="0"
- id="stop29201" />
- <stop
- style="stop-color:#23a11f;stop-opacity:1"
- offset="1"
- id="stop29203" />
- <a:midPointStop
- offset="0"
- style="stop-color:#C9FFC9" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#C9FFC9" />
- <a:midPointStop
- offset="1"
- style="stop-color:#23A11F" />
- </radialGradient>
- <radialGradient
- cx="603.19"
- cy="230.77"
- r="1.67"
- fx="603.19"
- fy="230.77"
- id="radialGradient5711"
- xlink:href="#x5010_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
- <linearGradient
- x1="592.31"
- y1="162.60001"
- x2="609.32001"
- y2="145.59"
- id="lg5722"
- xlink:href="#x5003_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
- <linearGradient
- x1="601.48999"
- y1="170.16"
- x2="613.84003"
- y2="170.16"
- id="x5002_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="stop29134" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0.2"
- id="stop29136" />
- <stop
- style="stop-color:#999;stop-opacity:1"
- offset="1"
- id="stop29138" />
- <a:midPointStop
- offset="0"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.20"
- style="stop-color:#FFFFFF" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#FFFFFF" />
- <a:midPointStop
- offset="1"
- style="stop-color:#999999" />
- </linearGradient>
- <linearGradient
- x1="601.48999"
- y1="170.16"
- x2="613.84003"
- y2="170.16"
- id="lg5725"
- xlink:href="#x5002_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
- <linearGradient
- x1="592.20001"
- y1="156.45"
- x2="609.98999"
- y2="174.23"
- id="x5004_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="stop29157" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="stop29159" />
- <a:midPointStop
- offset="0"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="1"
- style="stop-color:#FFFFFF" />
- </linearGradient>
- <linearGradient
- x1="592.20001"
- y1="156.45"
- x2="609.98999"
- y2="174.23"
- id="lg5728"
- xlink:href="#x5004_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
- <linearGradient
- x1="592.31"
- y1="162.60001"
- x2="609.32001"
- y2="145.59"
- id="x5003_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0"
- id="stop29143" />
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="1"
- id="stop29145" />
- <a:midPointStop
- offset="0"
- style="stop-color:#F2F2F2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#F2F2F2" />
- <a:midPointStop
- offset="1"
- style="stop-color:#E5E5E5" />
- </linearGradient>
- <linearGradient
- x1="592.31"
- y1="162.60001"
- x2="609.32001"
- y2="145.59"
- id="lg5732"
- xlink:href="#x5003_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
- <linearGradient
- x1="592.20001"
- y1="156.45"
- x2="609.98999"
- y2="174.24001"
- id="x5000_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="stop29124" />
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="1"
- id="stop29126" />
- <a:midPointStop
- offset="0"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="1"
- style="stop-color:#FFFFFF" />
- </linearGradient>
- <linearGradient
- x1="592.20001"
- y1="156.45"
- x2="609.98999"
- y2="174.24001"
- id="lg5735"
- xlink:href="#x5000_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
- <linearGradient
- x1="308.54999"
- y1="149.89999"
- x2="299.72"
- y2="148.83"
- id="XMLID_2433_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#d6d6d6;stop-opacity:1"
- offset="0"
- id="71615" />
- <stop
- style="stop-color:#a5a5a5;stop-opacity:1"
- offset="1"
- id="71617" />
- <a:midPointStop
- offset="0"
- style="stop-color:#D6D6D6" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#D6D6D6" />
- <a:midPointStop
- offset="1"
- style="stop-color:#A5A5A5" />
- </linearGradient>
- <linearGradient
- x1="308.54999"
- y1="149.89999"
- x2="299.72"
- y2="148.83"
- id="lg1952"
- xlink:href="#XMLID_2433_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
- <radialGradient
- cx="307.39999"
- cy="121"
- r="23.35"
- fx="307.39999"
- fy="121"
- id="XMLID_2432_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
- <stop
- style="stop-color:#d2d2d2;stop-opacity:1"
- offset="0.19"
- id="71592" />
- <stop
- style="stop-color:#cfcfcf;stop-opacity:1"
- offset="0.44999999"
- id="71594" />
- <stop
- style="stop-color:#c7c7c7;stop-opacity:1"
- offset="0.60000002"
- id="71596" />
- <stop
- style="stop-color:#b9b9b9;stop-opacity:1"
- offset="0.74000001"
- id="71598" />
- <stop
- style="stop-color:#a4a4a4;stop-opacity:1"
- offset="0.86000001"
- id="71600" />
- <stop
- style="stop-color:#8a8a8a;stop-opacity:1"
- offset="0.95999998"
- id="71602" />
- <stop
- style="stop-color:gray;stop-opacity:1"
- offset="1"
- id="71604" />
- <a:midPointStop
- offset="0.19"
- style="stop-color:#D2D2D2" />
- <a:midPointStop
- offset="0.8"
- style="stop-color:#D2D2D2" />
- <a:midPointStop
- offset="1"
- style="stop-color:#808080" />
- </radialGradient>
- <radialGradient
- cx="307.39999"
- cy="121"
- r="23.35"
- fx="307.39999"
- fy="121"
- id="radialGradient2331"
- xlink:href="#XMLID_2432_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-276.62,-121.54)" />
- <linearGradient
- x1="294.13"
- y1="127.07"
- x2="294.13"
- y2="142.2"
- id="XMLID_2430_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#b5d8ff;stop-opacity:1"
- offset="0"
- id="71582" />
- <stop
- style="stop-color:black;stop-opacity:1"
- offset="1"
- id="71584" />
- <a:midPointStop
- offset="0"
- style="stop-color:#B5D8FF" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B5D8FF" />
- <a:midPointStop
- offset="1"
- style="stop-color:#000000" />
- </linearGradient>
- <linearGradient
- x1="294.13"
- y1="127.07"
- x2="294.13"
- y2="142.2"
- id="lg2820"
- xlink:href="#XMLID_2430_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
- <linearGradient
- x1="279.10999"
- y1="148.03"
- x2="309.16"
- y2="148.03"
- id="XMLID_2429_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#e1e1e1;stop-opacity:1"
- offset="0"
- id="71564" />
- <stop
- style="stop-color:#e1e1e1;stop-opacity:1"
- offset="0.25"
- id="71566" />
- <stop
- style="stop-color:#a5a5a5;stop-opacity:1"
- offset="0.44"
- id="71568" />
- <stop
- style="stop-color:#a5a5a5;stop-opacity:1"
- offset="1"
- id="71570" />
- <a:midPointStop
- offset="0"
- style="stop-color:#E1E1E1" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E1E1E1" />
- <a:midPointStop
- offset="0.25"
- style="stop-color:#E1E1E1" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E1E1E1" />
- <a:midPointStop
- offset="0.44"
- style="stop-color:#A5A5A5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#A5A5A5" />
- <a:midPointStop
- offset="1"
- style="stop-color:#A5A5A5" />
- </linearGradient>
- <linearGradient
- x1="279.10999"
- y1="148.03"
- x2="309.16"
- y2="148.03"
- id="lg2818"
- xlink:href="#XMLID_2429_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
- <radialGradient
- cx="622.34302"
- cy="14.449"
- r="26.496"
- fx="622.34302"
- fy="14.449"
- id="lg3499_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
- <stop
- style="stop-color:#23468e;stop-opacity:1"
- offset="0"
- id="stop10972" />
- <stop
- style="stop-color:#012859;stop-opacity:1"
- offset="1"
- id="stop10974" />
- <a:midPointStop
- offset="0"
- style="stop-color:#23468E" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#23468E" />
- <a:midPointStop
- offset="1"
- style="stop-color:#012859" />
- </radialGradient>
- <radialGradient
- cx="622.34302"
- cy="14.449"
- r="26.496"
- fx="622.34302"
- fy="14.449"
- id="rg5791"
- xlink:href="#lg3499_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
- <linearGradient
- x1="616.112"
- y1="76.247002"
- x2="588.14099"
- y2="60.742001"
- id="lg3497_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#01326e;stop-opacity:1"
- offset="0"
- id="stop10962" />
- <stop
- style="stop-color:#012859;stop-opacity:1"
- offset="1"
- id="stop10964" />
- <a:midPointStop
- offset="0"
- style="stop-color:#01326E" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#01326E" />
- <a:midPointStop
- offset="1"
- style="stop-color:#012859" />
- </linearGradient>
- <linearGradient
- x1="617.698"
- y1="82.445999"
- x2="585.95203"
- y2="54.848999"
- id="lg3496_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0"
- id="stop10950" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="stop10952" />
- <a:midPointStop
- offset="0"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#E5E5E5" />
- <a:midPointStop
- offset="1"
- style="stop-color:#CCCCCC" />
- </linearGradient>
- <linearGradient
- x1="617.698"
- y1="82.445999"
- x2="585.95203"
- y2="54.848999"
- id="lg5794"
- xlink:href="#lg3496_"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- x1="601.39001"
- y1="55.341"
- x2="588.29199"
- y2="71.515999"
- id="lg3495_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="stop10941" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0.52200001"
- id="stop10943" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="stop10945" />
- <a:midPointStop
- offset="0"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.522"
- style="stop-color:#F2F2F2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#F2F2F2" />
- <a:midPointStop
- offset="1"
- style="stop-color:#CCCCCC" />
- </linearGradient>
- <linearGradient
- x1="601.39001"
- y1="55.341"
- x2="588.29199"
- y2="71.515999"
- id="lg5771"
- xlink:href="#lg3495_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
- <linearGradient
- x1="611.34601"
- y1="55.279999"
- x2="590.39001"
- y2="81.157997"
- id="lg3494_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="stop10932" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0.52200001"
- id="stop10934" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="stop10936" />
- <a:midPointStop
- offset="0"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#D9D9D9" />
- <a:midPointStop
- offset="0.522"
- style="stop-color:#F2F2F2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#F2F2F2" />
- <a:midPointStop
- offset="1"
- style="stop-color:#CCCCCC" />
- </linearGradient>
- <linearGradient
- x1="611.34601"
- y1="55.279999"
- x2="590.39001"
- y2="81.157997"
- id="lg5774"
- xlink:href="#lg3494_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
- <linearGradient
- x1="798.72998"
- y1="69.839996"
- x2="799.04999"
- y2="70.709999"
- id="g3302_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#005e00;stop-opacity:1"
- offset="0"
- id="s6504" />
- <stop
- style="stop-color:#23a11f;stop-opacity:1"
- offset="1"
- id="s6506" />
- <a:midPointstop
- style="stop-color:#005E00"
- offset="0" />
- <a:midPointstop
- style="stop-color:#005E00"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#23A11F"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="798.72998"
- y1="69.839996"
- x2="799.04999"
- y2="70.709999"
- id="lg5851"
- xlink:href="#g3302_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
- <linearGradient
- x1="779.19"
- y1="122.73"
- x2="811.69"
- y2="149.74001"
- id="g3301_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0"
- id="s6483" />
- <stop
- style="stop-color:#eee;stop-opacity:1"
- offset="0.17"
- id="s6485" />
- <stop
- style="stop-color:#e3e3e3;stop-opacity:1"
- offset="0.34"
- id="s6487" />
- <stop
- style="stop-color:#cfcfcf;stop-opacity:1"
- offset="0.50999999"
- id="s6489" />
- <stop
- style="stop-color:#b4b4b4;stop-opacity:1"
- offset="0.67000002"
- id="s6491" />
- <stop
- style="stop-color:#919191;stop-opacity:1"
- offset="0.83999997"
- id="s6493" />
- <stop
- style="stop-color:#666;stop-opacity:1"
- offset="1"
- id="s6495" />
- <a:midPointstop
- style="stop-color:#F2F2F2"
- offset="0" />
- <a:midPointstop
- style="stop-color:#F2F2F2"
- offset="0.71" />
- <a:midPointstop
- style="stop-color:#666666"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="779.19"
- y1="122.73"
- x2="811.69"
- y2="149.74001"
- id="lg5855"
- xlink:href="#g3301_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
- <clipPath
- id="g3299_">
- <use
- id="use6469"
- x="0"
- y="0"
- width="1005.92"
- height="376.97"
- xlink:href="#g101_" />
- </clipPath>
- <radialGradient
- cx="1189.9301"
- cy="100.05"
- r="40.400002"
- fx="1189.9301"
- fy="100.05"
- id="g3300_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s6472" />
- <stop
- style="stop-color:white;stop-opacity:0"
- offset="1"
- id="s6474" />
- <a:midPointstop
- style="stop-color:#FFFFFF"
- offset="0" />
- <a:midPointstop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#000000"
- offset="1" />
- </radialGradient>
- <radialGradient
- cx="1199.74"
- cy="97.150002"
- r="40.400002"
- fx="1199.74"
- fy="97.150002"
- id="rg5860"
- xlink:href="#g3300_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
- <linearGradient
- x1="796.38"
- y1="67.580002"
- x2="781.28003"
- y2="58.549999"
- id="g3298_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#4c8bca;stop-opacity:1"
- offset="0"
- id="s6462" />
- <stop
- style="stop-color:#b7e9ff;stop-opacity:1"
- offset="1"
- id="s6464" />
- <a:midPointstop
- style="stop-color:#4C8BCA"
- offset="0" />
- <a:midPointstop
- style="stop-color:#4C8BCA"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#B7E9FF"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="800.97998"
- y1="140.72"
- x2="777.71997"
- y2="121.76"
- id="g3297_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0"
- id="s6448" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="s6450" />
- <a:midPointstop
- style="stop-color:#E5E5E5"
- offset="0" />
- <a:midPointstop
- style="stop-color:#E5E5E5"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#CCCCCC"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="800.97998"
- y1="140.72"
- x2="777.71997"
- y2="121.76"
- id="lg5890"
- xlink:href="#g3297_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
- <linearGradient
- x1="790.03998"
- y1="-16.33"
- x2="779.84003"
- y2="-3.73"
- id="g3296_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(0,70.17)">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="s6439" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0.51999998"
- id="s6441" />
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="1"
- id="s6443" />
- <a:midPointstop
- style="stop-color:#D9D9D9"
- offset="0" />
- <a:midPointstop
- style="stop-color:#D9D9D9"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#F2F2F2"
- offset="0.52" />
- <a:midPointstop
- style="stop-color:#F2F2F2"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#CCCCCC"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="790.03998"
- y1="-16.33"
- x2="779.84003"
- y2="-3.73"
- id="lg5866"
- xlink:href="#g3296_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
- <linearGradient
- x1="785.84003"
- y1="72.989998"
- x2="785.26001"
- y2="76.279999"
- id="g3293_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s6412" />
- <stop
- style="stop-color:#737373;stop-opacity:1"
- offset="1"
- id="s6414" />
- <a:midPointstop
- style="stop-color:#FFFFFF"
- offset="0" />
- <a:midPointstop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#737373"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="785.84003"
- y1="72.989998"
- x2="785.26001"
- y2="76.279999"
- id="lg5871"
- xlink:href="#g3293_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
- <linearGradient
- x1="789.37"
- y1="69.879997"
- x2="791.03998"
- y2="77.120003"
- id="g3292_"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#999;stop-opacity:1"
- offset="0"
- id="s6403" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="0.28"
- id="s6405" />
- <stop
- style="stop-color:#666;stop-opacity:1"
- offset="1"
- id="s6407" />
- <a:midPointstop
- style="stop-color:#999999"
- offset="0" />
- <a:midPointstop
- style="stop-color:#999999"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#F2F2F2"
- offset="0.28" />
- <a:midPointstop
- style="stop-color:#F2F2F2"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#666666"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="789.37"
- y1="69.879997"
- x2="791.03998"
- y2="77.120003"
- id="lg5874"
- xlink:href="#g3292_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
- <linearGradient
- x1="786.65997"
- y1="136.12"
- x2="786.71002"
- y2="134.33"
- id="g3290_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
- <stop
- style="stop-color:#d9d9d9;stop-opacity:1"
- offset="0"
- id="s6380" />
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="1"
- id="s6382" />
- <a:midPointstop
- style="stop-color:#D9D9D9"
- offset="0" />
- <a:midPointstop
- style="stop-color:#D9D9D9"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#B2B2B2"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="786.65997"
- y1="136.12"
- x2="786.71002"
- y2="134.33"
- id="lg5878"
- xlink:href="#g3290_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
- <radialGradient
- cx="1458.77"
- cy="-5.0999999"
- r="35.130001"
- fx="1458.77"
- fy="-5.0999999"
- id="g3289_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
- <stop
- style="stop-color:white;stop-opacity:1"
- offset="0"
- id="s6371" />
- <stop
- style="stop-color:#999;stop-opacity:1"
- offset="1"
- id="s6373" />
- <a:midPointstop
- style="stop-color:#FFFFFF"
- offset="0" />
- <a:midPointstop
- style="stop-color:#FFFFFF"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#999999"
- offset="1" />
- </radialGradient>
- <radialGradient
- cx="1458.77"
- cy="-5.0999999"
- r="35.130001"
- fx="1458.77"
- fy="-5.0999999"
- id="rg5881"
- xlink:href="#g3289_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
- <radialGradient
- cx="1612.98"
- cy="-4.4699998"
- r="36.580002"
- fx="1612.98"
- fy="-4.4699998"
- id="g3288_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0"
- id="s6362" />
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0.63999999"
- id="s6364" />
- <stop
- style="stop-color:#737373;stop-opacity:1"
- offset="1"
- id="s6366" />
- <a:midPointstop
- style="stop-color:#E5E5E5"
- offset="0" />
- <a:midPointstop
- style="stop-color:#E5E5E5"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#B2B2B2"
- offset="0.64" />
- <a:midPointstop
- style="stop-color:#B2B2B2"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#737373"
- offset="1" />
- </radialGradient>
- <radialGradient
- cx="1612.98"
- cy="-4.4699998"
- r="36.580002"
- fx="1612.98"
- fy="-4.4699998"
- id="rg5884"
- xlink:href="#g3288_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
- <radialGradient
- cx="1470.5"
- cy="-10.21"
- r="33.290001"
- fx="1470.5"
- fy="-10.21"
- id="g3287_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
- <stop
- style="stop-color:#e5e5e5;stop-opacity:1"
- offset="0"
- id="s6347" />
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0.38999999"
- id="s6349" />
- <stop
- style="stop-color:#b1b1b1;stop-opacity:1"
- offset="0.75"
- id="s6351" />
- <stop
- style="stop-color:#aaa;stop-opacity:1"
- offset="0.88"
- id="s6353" />
- <stop
- style="stop-color:#9e9e9e;stop-opacity:1"
- offset="0.97000003"
- id="s6355" />
- <stop
- style="stop-color:#999;stop-opacity:1"
- offset="1"
- id="s6357" />
- <a:midPointstop
- style="stop-color:#E5E5E5"
- offset="0" />
- <a:midPointstop
- style="stop-color:#E5E5E5"
- offset="0.5" />
- <a:midPointstop
- style="stop-color:#B2B2B2"
- offset="0.39" />
- <a:midPointstop
- style="stop-color:#B2B2B2"
- offset="0.87" />
- <a:midPointstop
- style="stop-color:#999999"
- offset="1" />
- </radialGradient>
- <radialGradient
- cx="1470.5"
- cy="-10.21"
- r="33.290001"
- fx="1470.5"
- fy="-10.21"
- id="rg5887"
- xlink:href="#g3287_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
- <pattern
- patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
- id="cream-spots"
- height="32"
- width="32"
- patternUnits="userSpaceOnUse">
- <g
- transform="translate(-365.3146,-513.505)"
- id="g3047">
- id="path2858" />
- <path
- inkscape:label="#path2854"
- sodipodi:nodetypes="czzzz"
- style="fill:#e3dcc0"
- id="path3060"
- d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504
381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C
372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504
390.31462,524.53704 390.31462,529.50504 z " />
-</g>
- </pattern>
- <pattern
- patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
- id="dark-cream-spots"
- height="32"
- width="32"
- patternUnits="userSpaceOnUse">
- <g
- transform="translate(-408.0946,-513.505)"
- id="dark-cream-spot"
- inkscape:label="#g3043">
- <path
- sodipodi:nodetypes="czzzz"
- style="fill:#c8c5ac"
- d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504
424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C
415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504
433.09458,524.53704 433.09458,529.50504 z "
- id="path2953" />
- </g>
- </pattern>
- <pattern
- patternTransform="matrix(0.375,0,0,0.375,379,400)"
- id="white-spots"
- height="32"
- width="32"
- patternUnits="userSpaceOnUse">
- <g
- transform="translate(-484.3997,-513.505)"
- id="white-spot"
- inkscape:label="#g3035">
- <path
- style="opacity:0.25;fill:white"
- id="path3033"
- d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504
500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C
491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504
509.39967,524.53704 509.39967,529.50504 z "
- sodipodi:nodetypes="czzzz" />
- </g>
- </pattern>
- <pattern
- patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
- id="black-spots"
- height="32"
- width="32"
- patternUnits="userSpaceOnUse">
- <g
- transform="translate(-448.3997,-513.505)"
- id="black-spot"
- inkscape:label="#g3039">
- <path
- sodipodi:nodetypes="czzzz"
- d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504
464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C
455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504
473.39967,524.53704 473.39967,529.50504 z "
- id="path2961"
- style="opacity:0.25;fill:black" />
- </g>
- </pattern>
- <linearGradient
- x1="501.0903"
- y1="-19.2544"
- x2="531.85413"
- y2="0.72390002"
- id="linearGradient17334"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0"
- id="stop17336" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0.51120001"
- id="stop17338" />
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0.64609998"
- id="stop17340" />
- <stop
- style="stop-color:#16336e;stop-opacity:1"
- offset="1"
- id="stop17342" />
- <a:midPointStop
- offset="0"
- style="stop-color:#B4DAEA" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B4DAEA" />
- <a:midPointStop
- offset="0.5112"
- style="stop-color:#B4DAEA" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B4DAEA" />
- <a:midPointStop
- offset="0.6461"
- style="stop-color:#5387BA" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#5387BA" />
- <a:midPointStop
- offset="1"
- style="stop-color:#16336E" />
- </linearGradient>
- <linearGradient
- x1="415.73831"
- y1="11.854"
- x2="418.13361"
- y2="18.8104"
- id="linearGradient17426"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
- <stop
- style="stop-color:#ccc;stop-opacity:1"
- offset="0"
- id="stop17428" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="1"
- id="stop17430" />
- <a:midPointStop
- offset="0"
- style="stop-color:#CCCCCC" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#CCCCCC" />
- <a:midPointStop
- offset="1"
- style="stop-color:#F2F2F2" />
- </linearGradient>
- <linearGradient
- x1="478.21341"
- y1="-131.9297"
- x2="469.85818"
- y2="-140.28481"
- id="linearGradient17434"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
- <stop
- style="stop-color:#f3403f;stop-opacity:1"
- offset="0"
- id="stop17436" />
- <stop
- style="stop-color:#d02a28;stop-opacity:1"
- offset="0.37889999"
- id="stop17438" />
- <stop
- style="stop-color:#b21714;stop-opacity:1"
- offset="0.77649999"
- id="stop17440" />
- <stop
- style="stop-color:#a6100c;stop-opacity:1"
- offset="1"
- id="stop17442" />
- <a:midPointStop
- offset="0"
- style="stop-color:#F3403F" />
- <a:midPointStop
- offset="0.4213"
- style="stop-color:#F3403F" />
- <a:midPointStop
- offset="1"
- style="stop-color:#A6100C" />
- </linearGradient>
- <linearGradient
- x1="502.70749"
- y1="115.3013"
- x2="516.39001"
- y2="127.1953"
- id="linearGradient17709"
- xlink:href="#XMLID_1749_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
- <linearGradient
- x1="506.09909"
- y1="-11.5137"
- x2="527.99609"
- y2="2.7063999"
- id="linearGradient17711"
- xlink:href="#XMLID_1752_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="516.57672"
- y1="-15.769"
- x2="516.57672"
- y2="0.84280002"
- id="linearGradient17713"
- xlink:href="#XMLID_1753_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="505.62939"
- y1="-14.9526"
- x2="527.49402"
- y2="-0.7536"
- id="linearGradient17715"
- xlink:href="#XMLID_1756_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="500.70749"
- y1="-13.2441"
- x2="513.46442"
- y2="-2.1547"
- id="linearGradient17717"
- xlink:href="#XMLID_1757_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="473.7681"
- y1="209.17529"
- x2="486.98099"
- y2="213.2001"
- id="linearGradient17721"
- xlink:href="#XMLID_2274_"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- x1="481.23969"
- y1="212.5742"
- x2="472.92981"
- y2="207.4967"
- id="linearGradient17723"
- xlink:href="#XMLID_2275_"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- x1="500.70749"
- y1="-13.2441"
- x2="513.46442"
- y2="-2.1547"
- id="linearGradient17416"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0"
- id="stop17418" />
- <stop
- style="stop-color:#96bad6;stop-opacity:1"
- offset="1"
- id="stop17420" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#96BAD6"
- offset="1" />
- </linearGradient>
- <defs
- id="defs9929">
- <path
- d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93
471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49
473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49
475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
- id="XMLID_960_" />
- </defs>
- <clipPath
- id="clipPath17448">
- <use
- id="use17450"
- x="0"
- y="0"
- width="744.09448"
- height="600"
- xlink:href="#XMLID_960_" />
- </clipPath>
- <linearGradient
- x1="473.7681"
- y1="209.17529"
- x2="486.98099"
- y2="213.2001"
- id="linearGradient17452"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#f3403f;stop-opacity:1"
- offset="0"
- id="stop17454" />
- <stop
- style="stop-color:#d02a28;stop-opacity:1"
- offset="0.37889999"
- id="stop17456" />
- <stop
- style="stop-color:#b21714;stop-opacity:1"
- offset="0.77649999"
- id="stop17458" />
- <stop
- style="stop-color:#a6100c;stop-opacity:1"
- offset="1"
- id="stop17460" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0.4213" />
- <a:midPointStop
- style="stop-color:#A6100C"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="481.23969"
- y1="212.5742"
- x2="472.92981"
- y2="207.4967"
- id="linearGradient17463"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#f3403f;stop-opacity:1"
- offset="0"
- id="stop17465" />
- <stop
- style="stop-color:#d02a28;stop-opacity:1"
- offset="0.37889999"
- id="stop17467" />
- <stop
- style="stop-color:#b21714;stop-opacity:1"
- offset="0.77649999"
- id="stop17469" />
- <stop
- style="stop-color:#a6100c;stop-opacity:1"
- offset="1"
- id="stop17471" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0" />
- <a:midPointStop
- style="stop-color:#F3403F"
- offset="0.4213" />
- <a:midPointStop
- style="stop-color:#A6100C"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="481.23969"
- y1="212.5742"
- x2="472.92981"
- y2="207.4967"
- id="linearGradient17807"
- xlink:href="#XMLID_2275_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-177.1654,35.43307)" />
- <linearGradient
- x1="473.7681"
- y1="209.17529"
- x2="486.98099"
- y2="213.2001"
- id="linearGradient17810"
- xlink:href="#XMLID_2274_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(-177.1654,35.43307)" />
- <linearGradient
- x1="502.70749"
- y1="115.3013"
- x2="516.39001"
- y2="127.1953"
- id="linearGradient17812"
- xlink:href="#XMLID_1749_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
- <linearGradient
- x1="506.09909"
- y1="-11.5137"
- x2="527.99609"
- y2="2.7063999"
- id="linearGradient17814"
- xlink:href="#XMLID_1752_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="516.57672"
- y1="-15.769"
- x2="516.57672"
- y2="0.84280002"
- id="linearGradient17816"
- xlink:href="#XMLID_1753_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="505.62939"
- y1="-14.9526"
- x2="527.49402"
- y2="-0.7536"
- id="linearGradient17818"
- xlink:href="#XMLID_1756_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <linearGradient
- x1="502.70749"
- y1="115.3013"
- x2="516.39001"
- y2="127.1953"
- id="linearGradient17347"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0"
- id="stop17349" />
- <stop
- style="stop-color:#96bad6;stop-opacity:1"
- offset="1"
- id="stop17351" />
- <a:midPointStop
- offset="0"
- style="stop-color:#5387BA" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#5387BA" />
- <a:midPointStop
- offset="1"
- style="stop-color:#96BAD6" />
- </linearGradient>
- <linearGradient
- x1="516.57672"
- y1="-15.769"
- x2="516.57672"
- y2="0.84280002"
- id="linearGradient17379"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b2b2b2;stop-opacity:1"
- offset="0"
- id="stop17381" />
- <stop
- style="stop-color:#f2f2f2;stop-opacity:1"
- offset="1"
- id="stop17383" />
- <a:midPointStop
- offset="0"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="0.5"
- style="stop-color:#B2B2B2" />
- <a:midPointStop
- offset="1"
- style="stop-color:#F2F2F2" />
- </linearGradient>
- <linearGradient
- x1="502.70749"
- y1="115.3013"
- x2="516.39001"
- y2="127.1953"
- id="linearGradient17862"
- xlink:href="#XMLID_1749_"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)"
/>
- <linearGradient
- x1="505.62939"
- y1="-14.9526"
- x2="527.49402"
- y2="-0.7536"
- id="linearGradient17864"
- xlink:href="#XMLID_1756_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <defs
- id="defs3859">
- <polygon
- points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05
471.08,194.07 470.26,194.83 465.54,213.52 "
- id="XMLID_343_" />
- </defs>
- <linearGradient
- x1="471.0806"
- y1="201.07761"
- x2="481.91711"
- y2="210.4977"
- id="linearGradient17389"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#6498c1;stop-opacity:1"
- offset="0.005618"
- id="stop17391" />
- <stop
- style="stop-color:#79a9cc;stop-opacity:1"
- offset="0.2332"
- id="stop17393" />
- <stop
- style="stop-color:#a4cde2;stop-opacity:1"
- offset="0.74049997"
- id="stop17395" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="1"
- id="stop17397" />
- <a:midPointStop
- style="stop-color:#6498C1"
- offset="5.618000e-003" />
- <a:midPointStop
- style="stop-color:#6498C1"
- offset="0.4438" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="1" />
- </linearGradient>
- <clipPath
- id="clipPath17400">
- <use
- id="use17402"
- x="0"
- y="0"
- width="744.09448"
- height="600"
- xlink:href="#XMLID_343_" />
- </clipPath>
- <linearGradient
- x1="505.62939"
- y1="-14.9526"
- x2="527.49402"
- y2="-0.7536"
- id="linearGradient17404"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0"
- id="stop17406" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0.51120001"
- id="stop17408" />
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0.64609998"
- id="stop17410" />
- <stop
- style="stop-color:#16336e;stop-opacity:1"
- offset="1"
- id="stop17412" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5112" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.6461" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#16336E"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="506.09909"
- y1="-11.5137"
- x2="527.99609"
- y2="2.7063999"
- id="linearGradient17882"
- xlink:href="#XMLID_1752_"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"
/>
- <defs
- id="defs3826">
- <polygon
- points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04
469.05,196.69 468.24,197.45 463.52,216.14 "
- id="XMLID_338_" />
- </defs>
- <linearGradient
- x1="468.2915"
- y1="204.7612"
- x2="479.39871"
- y2="214.4166"
- id="linearGradient17357"
- gradientUnits="userSpaceOnUse">
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0"
- id="stop17359" />
- <stop
- style="stop-color:#96bad6;stop-opacity:1"
- offset="1"
- id="stop17361" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#96BAD6"
- offset="1" />
- </linearGradient>
- <clipPath
- id="clipPath17364">
- <use
- id="use17366"
- x="0"
- y="0"
- width="744.09448"
- height="600"
- xlink:href="#XMLID_338_" />
- </clipPath>
- <linearGradient
- x1="506.09909"
- y1="-11.5137"
- x2="527.99609"
- y2="2.7063999"
- id="linearGradient17368"
- gradientUnits="userSpaceOnUse"
-
gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0"
- id="stop17370" />
- <stop
- style="stop-color:#b4daea;stop-opacity:1"
- offset="0.51120001"
- id="stop17372" />
- <stop
- style="stop-color:#5387ba;stop-opacity:1"
- offset="0.64609998"
- id="stop17374" />
- <stop
- style="stop-color:#16336e;stop-opacity:1"
- offset="1"
- id="stop17376" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5112" />
- <a:midPointStop
- style="stop-color:#B4DAEA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.6461" />
- <a:midPointStop
- style="stop-color:#5387BA"
- offset="0.5" />
- <a:midPointStop
- style="stop-color:#16336E"
- offset="1" />
- </linearGradient>
- <linearGradient
- x1="296.4996"
- y1="188.81061"
- x2="317.32471"
- y2="209.69398"
- id="linearGradient2387"
- xlink:href="#linearGradient2381"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
- <linearGradient
- x1="296.4996"
- y1="188.81061"
- x2="317.32471"
- y2="209.69398"
- id="linearGradient5105"
- xlink:href="#linearGradient2381"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
- <linearGradient
- x1="296.4996"
- y1="188.81061"
- x2="317.32471"
- y2="209.69398"
- id="linearGradient5145"
- xlink:href="#linearGradient2381"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient2381"
- id="linearGradient2371"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
- x1="296.4996"
- y1="188.81061"
- x2="317.32471"
- y2="209.69398" />
+ <linearGradient x1="296.4996" y1="188.81061"
x2="317.32471" y2="209.69398" id="linearGradient2371"
xlink:href="#linearGradient2381" gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"/>
</defs>
- <g
-
transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
- id="g5089">
- <path
- d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875
L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C
31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L
32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375
C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
- transform="translate(282.8327,227.1903)"
-
style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
- id="path5091" />
- <rect
- width="27.85074"
- height="29.369793"
- rx="1.1414107"
- ry="1.1414107"
- x="286.96509"
- y="227.63805"
- style="fill:#032c87"
- id="rect5093" />
- <path
- d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L
287.29827,254.83069 L 288.43262,225.43675 z "
- style="fill:white"
- id="rect5095" />
- <path
- d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091
301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C
307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432
309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
- style="fill:#a70000;fill-opacity:1;stroke-width:2"
- id="path5097" />
- <rect
- width="25.241802"
- height="29.736675"
- rx="0.89682275"
- ry="0.89682275"
- x="290.73544"
- y="220.92249"
- style="fill:#809cc9"
- id="rect5099" />
- <path
- d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C
581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C
574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
- transform="matrix(0.499065,-0.866565,0,1,0,0)"
- style="fill:#4573b3;fill-opacity:1"
- id="rect5101" />
- <path
- d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363
314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124
292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363
293.2599,221.89363 z "
- style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
- id="path5103" />
+ <g
transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
id="g5089">
+ <path d="m 8.4382985,-6.28125 c -0.6073916,0 -4.3132985,5.94886271
-4.3132985,8.25 l 0,26.71875 c 0,0.846384 0.5818159,1.125 1.15625,1.125 l 25.5625,0 c
0.632342,0 1.125001,-0.492658 1.125,-1.125 l 0,-5.21875 0.28125,0 c 0.49684,0
0.906249,-0.409411 0.90625,-0.90625 l 0,-27.9375 c 0,-0.4968398 -0.40941,-0.90625
-0.90625,-0.90625 l -23.8117015,0 z"
transform="translate(282.8327,227.1903)" id="path5091"
style="fill:#5c5c4f;stroke:#000000;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"/>
+ <rect width="27.85074" height="29.369793"
rx="1.1414107" ry="1.1414107" x="286.96509"
y="227.63805" id="rect5093" style="fill:#032c87"/>
+ <path d="m 288.43262,225.43675 25.2418,0 0,29.3698 -26.37615,0.0241
1.13435,-29.39394 z" id="rect5095" style="fill:#ffffff"/>
+ <path d="m 302.44536,251.73726 c 1.38691,7.85917 -0.69311,11.28365
-0.69311,11.28365 2.24384,-1.60762 3.96426,-3.47694 4.90522,-5.736 0.96708,2.19264
1.83294,4.42866 4.27443,5.98941 0,0 -1.59504,-7.2004 -1.71143,-11.53706 l -6.77511,0
z" id="path5097"
style="fill:#a70000;fill-opacity:1;stroke-width:2"/>
+ <rect width="25.241802" height="29.736675"
rx="0.89682275" ry="0.89682275" x="290.73544"
y="220.92249" id="rect5099" style="fill:#809cc9"/>
+ <path d="m 576.47347,725.93939 6.37084,0.41502 0.4069,29.51809 c
-1.89202,-1.31785 -6.85427,-3.7608 -8.26232,-1.68101 l 0,-26.76752 c 0,-0.82246
0.66212,-1.48458 1.48458,-1.48458 z"
transform="matrix(0.499065,-0.866565,0,1,0,0)" id="rect5101"
style="fill:#4573b3;fill-opacity:1"/>
+ <path d="m 293.2599,221.89363 20.73918,0 c 0.45101,0 0.8141,0.3631
0.8141,0.81411 0.21547,6.32836 -19.36824,21.7635 -22.36739,17.59717 l 0,-17.59717 c
0,-0.45101 0.3631,-0.81411 0.81411,-0.81411 z" id="path5103"
style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"/>
</g>
</svg>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/Advanced/Foundations/Configuring_Services.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/Advanced/Foundations/Configuring_Services.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/Advanced/Foundations/Configuring_Services.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -219,11 +219,11 @@
You see, here the
<emphasis>/conf/portal/configuration.xml</emphasis> file of each jar enters
the game, they are searched at first. Next, there is nearly always a configuration.xml in
the portal.war file (or in the portal webapp folder), you find this file at
<emphasis>/WEB-INF/conf/configuration.xml</emphasis>. If you open it, you will
find a lot of import statements that point to other configuration files in the same
portal.war (or portal webapp).
</para>
<para>
- <emphasis role="bold">Multiple
Portals</emphasis> Be aware that you might set up several different portals
("admin", "mexico", etc.), and each of these portals will use a
different PortalContainer. And each of these PortalContainers can be configured
separately. As of eXo Portal 2.5 you also will be able to provide configurations from
outside the jars and wars or webapps. Put a configuration file in
<emphasis>exo-tomcat/exo-conf/portal/$portal_name/configuration.xml</emphasis>
where <parameter>$portal_name</parameter> is the name of the portal you want
to configure for . But normally you only have one portal which is called
"portal" so you use
<emphasis>exo-tomcat/exo-conf/portal/portal/configuration.xml</emphasis>.
+ <emphasis role="bold">Multiple
Portals</emphasis> Be aware that you might set up several different portals
("admin", "mexico", etc.), and each of these portals will use a
different PortalContainer. And each of these PortalContainers can be configured
separately. As of JBoss Enterprise Portal Platform &VY; you also will be able to
provide configurations from outside the jars and wars or webapps. Put a configuration file
in
<emphasis>exo-tomcat/exo-conf/portal/$portal_name/configuration.xml</emphasis>
where <parameter>$portal_name</parameter> is the name of the portal you want
to configure for . But normally you only have one portal which is called
"portal" so you use
<emphasis>exo-tomcat/exo-conf/portal/portal/configuration.xml</emphasis>.
</para>
<note>
<para>
- As of eXo Portal 2.5 you can override the external configuration
location with the system property <emphasis>exo.conf.dir</emphasis>. If the
property exists its value will be used as path to the eXo configuration directory, that
means this is an alternative to <emphasis>exo-tomcat/exo-conf</emphasis>. Just
put this property in the command line: <emphasis>java
-Dexo.conf.dir=/path/to/exo/conf</emphasis> or use eXo.bat or eXo.sh. In this
particular use case, you have no need to use any prefixes in your configuration file to
import other files. For example, if your configuration file is
<emphasis>exo-tomcat/exo-conf/portal/PORTAL_NAME/configuration.xml</emphasis>
and you want to import the configuration file
<emphasis>exo-tomcat/exo-conf/portal/PORTAL_NAME/mySubConfDir/myConfig.xml</emphasis>,
you can do it by adding
<emphasis><import>mySubConfDir/myConfig.xml</import></emphasis>
to your configuration file.
+ As of JBoss Enterprise Portal Platform &VY; you can override
the external configuration location with the system property
<emphasis>exo.conf.dir</emphasis>. If the property exists its value will be
used as path to the eXo configuration directory, that means this is an alternative to
<emphasis>exo-tomcat/exo-conf</emphasis>. Just put this property in the
command line: <emphasis>java -Dexo.conf.dir=/path/to/exo/conf</emphasis> or
use eXo.bat or eXo.sh. In this particular use case, you have no need to use any prefixes
in your configuration file to import other files. For example, if your configuration file
is
<emphasis>exo-tomcat/exo-conf/portal/PORTAL_NAME/configuration.xml</emphasis>
and you want to import the configuration file
<emphasis>exo-tomcat/exo-conf/portal/PORTAL_NAME/mySubConfDir/myConfig.xml</emphasis>,
you can do it by adding
<emphasis><import>mySubConfDir/myConfig.xml</import></emphasis>
to your configuration file.
</para>
</note>
@@ -905,9 +905,8 @@
</init-params>
</component></programlisting>
<para>
- As these are system properties you use the -D command: <emphasis
role="bold">java -DconnectionUrl=jdbc:hsqldb:file:../temp/data/exodb
-DdriverClass=org.hsqldb.jdbcDriver</emphasis> Or better use the parameters of
eXo.bat / eXo.sh when you start eXo Portal: <emphasis role="bold">set
EXO_OPTS="-DconnectionUrl=jdbc:hsqldb:file:../temp/data/exodb
-DdriverClass=org.hsqldb.jdbcDriver"</emphasis>
+ As these are system properties you use the -D command: <emphasis
role="bold">java -DconnectionUrl=jdbc:hsqldb:file:../temp/data/exodb
-DdriverClass=org.hsqldb.jdbcDriver</emphasis> Or better use the parameters of
eXo.bat / eXo.sh when you start JBoss Enterprise Portal Platform: <emphasis
role="bold">set
EXO_OPTS="-DconnectionUrl=jdbc:hsqldb:file:../temp/data/exodb
-DdriverClass=org.hsqldb.jdbcDriver"</emphasis>
</para>
-
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,8 +4,7 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-SSO_Single_Sign_On_">
- <title><remark>SSO - Single Sign On</remark>
- </title>
+ <title><remark>SSO - Single Sign On</remark></title>
<section id="sect-Reference_Guide-SSO_Single_Sign_On_-Overview">
<title>Overview</title>
<para>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,40 +4,40 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-Default_Portal_Configuration">
- <title>Default Portal Configuration</title>
- <section
id="sect-Reference_Guide-Default_Portal_Configuration-Overview">
- <title>Overview</title>
- <para>
- JBoss Enterprise Portal Platform's default home page URL is
<literal>http://{hostname}:{port}/portal/</literal>. There may be multiple
independent portals deployed in parallel at any given time, each of which has its root
context (<literal>http://{hostname}:{port}/sample-portal/</literal>, for
example).
- </para>
- <para>
- Each portal container is internally composed of one or more 'portals'. This is
because there needs to be at least one such portal available. The default portal is called
'<emphasis>Classic</emphasis>'. When accessing JBoss Enterprise Portal
Platform's default URL, you are automatically directed to the
'<emphasis>Classic</emphasis>' portal.
- </para>
- <para>
- The default portal performs another important task. When starting up JBoss Enterprise
Portal Platform for the first time, its JCR database (where portal runtime-configurable
settings are stored) will be empty . The default portal detects this and triggers
automatic data initialization.
- </para>
+ <title>Default Portal Configuration</title>
+ <section
id="sect-Reference_Guide-Default_Portal_Configuration-Overview">
+ <title>Overview</title>
+ <para>
+ JBoss Enterprise Portal Platform's default home page URL is
<literal>http://{hostname}:{port}/portal/</literal>. There may be multiple
independent portal containers deployed in parallel at any given time, each of which has
its root context (<literal>http://{hostname}:{port}/sample-portal/</literal>,
for example).
+ </para>
+ <para>
+ Each portal container is internally composed of one or more
'portals'. This is because there needs to be at least one such portal available.
The default portal is called '<emphasis>Classic</emphasis>'. When
accessing JBoss Enterprise Portal Platform's default URL, you are automatically
directed to the '<emphasis>Classic</emphasis>' portal.
+ </para>
+ <para>
+ The default portal performs another important task. When starting up JBoss
Enterprise Portal Platform for the first time, its JCR database (where portal
runtime-configurable settings are stored) will be empty . The default portal detects this
and triggers automatic data initialization.
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Default_Portal_Configuration-Configuration">
- <title>Configuration</title>
- <para>
- The following example configuration can be found at:
"<filename>02portal.war:/WEB-INF/conf/portal/portal-configuration.xml</filename>".
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Default_Portal_Configuration-Configuration">
+ <title>Configuration</title>
+ <para>
+ The following example configuration can be found at:
"<filename>02portal.war:/WEB-INF/conf/portal/portal-configuration.xml</filename>".
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../extras/PortalDevelopment_DefaultPortalConfiguration/default143.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- In this example the <emphasis>Classic</emphasis> portal has been set as
the default.
- </para>
- <para>
- Notice that the <literal>NewPortalConfigListener</literal>
<parameter>component-plugin</parameter> is used to add configuration to
<literal>UserPortalConfigService</literal>, which is designed in this way to
allow other components to add configuration to it.
- </para>
- <para>
- <emphasis>Components</emphasis>,
<emphasis>component-plugins</emphasis>, and
<emphasis>init-params</emphasis> are explained in a later chapter of this
document.
- </para>
+ <para>
+ In this example the <emphasis>Classic</emphasis> portal has been
set as the default.
+ </para>
+ <para>
+ Notice that the <literal>NewPortalConfigListener</literal>
<parameter>component-plugin</parameter> is used to add configuration to
<literal>UserPortalConfigService</literal>, which is designed in this way to
allow other components to add configuration to it.
+ </para>
+ <para>
+ <emphasis>Components</emphasis>,
<emphasis>component-plugins</emphasis>, and
<emphasis>init-params</emphasis> are explained in a later chapter of this
document.
+ </para>
- </section>
-
+ </section>
+
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -136,7 +136,7 @@
Based on these parameters, the portal will look for the configuration files
and create a relevant portal navigation, pages and data import strategy.
</para>
<para>
- The portal configuration files will be stored in folders with path look like
<filename>{templateLocation}/{ownerType}/{predefinedOwner}</filename>, all
navigations are defined in the <filename>navigation.xml</filename> file, pages
are defined in <filename>pages.xml</filename> and portal configuration is
defined in <filename>{ownerType}.xml</filename>.
+ The portal configuration files will be stored in folders with path look like
<filename>{templateLocation}/{ownerType}/{predefinedOwner}</filename>, all
navigations are defined in the <filename>navigation.xml</filename> file, pages
are defined in <filename>pages.xml</filename> and portal configuration is
defined in <filename>portal.xml</filename>.
</para>
<para>
For example, with the above configuration, portal will look for all
configuration files from <filename>war:/conf/portal/portal/classic
path.</filename>
@@ -278,11 +278,7 @@
<!-- DOC NOTE: Get an answer on the below! --> <!--
This Paragraph: --> <para>
Two files configure the user navigation
(<filename>navigation.xml</filename> and
<filename>pages.xml</filename>). They are located in the directory
"<filename>02portal.war/WEB-INF/conf/portal/users/{userName}</filename>".
</para>
- <!-- Became this paragraph in GateIn r6987
<para>
- Three files configure the user navigation
(<filename>navigation.xml</filename>,
<filename>pages.xml</filename> and
<filename>portlet-preferences.xml</filename>). They are located in the
<filename>{templateLocation}/{ownerType}/{predefinedOwner}</filename>
directory with <literal>ownerType</literal> is
<literal>user</literal> and <literal>predefinedOwner</literal> is
username that want to create the navigation. For example, if administrator want to create
navigation for user <literal>root</literal>, he has to locate the
configuration files in <filename>portal.war/WEB-INF/conf/portal/user/root
</filename>
- </para>
- Which is appropriate for EPP 5.1.1? --> <para>
The file <filename>eXoGadgets.war/WEB-INF/gadget.xml</filename>
defines the gadgets that will be available on a user dashboard.
</para>
<para>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/NavigationController.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/NavigationController.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/NavigationController.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,82 +4,82 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-Navigation_Controller_">
- <title>Navigation Controller </title>
- <section id="sect-Reference_Guide-Navigation_Controller_-Description">
- <title>Description</title>
- <para>
- The navigation controller is a major enhancement of JBoss Enterprise Portal Platform
that has several goals:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Provide non ambiguous URLs for portal managed resources such as navigation.
Previously different resources were possible for a single URL, even worse, the set of
resources available for an URL was depending on one's private navigation (groups and
dashboard)
- </para>
+ <title>Navigation Controller </title>
+ <section
id="sect-Reference_Guide-Navigation_Controller_-Description">
+ <title>Description</title>
+ <para>
+ The navigation controller is a major enhancement of JBoss Enterprise Portal
Platform that has several goals:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Provide non ambiguous URLs for portal managed resources such as
navigation. Previously different resources were possible for a single URL, even worse, the
set of resources available for an URL was depending on one's private navigation
(groups and dashboard)
+ </para>
- </listitem>
- <listitem>
- <para>
- Decouple the <literal>http</literal> request from the portal request.
Previously both were tightly coupled, for instance the URL for a site had to begin with
<uri>/public/{sitename}</uri> or <uri>/private/{sitename}</uri>.
The navigation controller provides a flexible and configurable mapping.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Decouple the <literal>http</literal> request from the
portal request. Previously both were tightly coupled, for instance the URL for a site had
to begin with <uri>/public/{sitename}</uri> or
<uri>/private/{sitename}</uri>. The navigation controller provides a flexible
and configurable mapping.
+ </para>
- </listitem>
- <listitem>
- <para>
- Provide more friendly URL and give a degree of freedom for portal administrators by
letting them configure how <literal>http</literal> request should look.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Provide more friendly URL and give a degree of freedom for portal
administrators by letting them configure how <literal>http</literal> request
should look.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-Navigation_Controller_-Controller_in_Action">
- <title>Controller in Action</title>
- <section id="sect-Reference_Guide-Controller_in_Action-Controller">
- <title>Controller</title>
- <para>
- The <application>WebAppController</application> is the component of JBoss
Enterprise Portal Platform that process <literal>http</literal> invocations
and transforms them into a portal request. It has been improved with the addition of a
request mapping engine (<emphasis role="bold">controller</emphasis>)
whose role is to make the decoupling of the <literal>http</literal> request
and create a portal request.
- </para>
- <para>
- The mapping engine makes two essential tasks:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Create a Map<QualifiedName, String> from an incoming
<literal>http</literal> request
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Navigation_Controller_-Controller_in_Action">
+ <title>Controller in Action</title>
+ <section
id="sect-Reference_Guide-Controller_in_Action-Controller">
+ <title>Controller</title>
+ <para>
+ The <application>WebAppController</application> is the
component of JBoss Enterprise Portal Platform that process
<literal>http</literal> invocations and transforms them into a portal request.
It has been improved with the addition of a request mapping engine (<emphasis
role="bold">controller</emphasis>) whose role is to make the decoupling
of the <literal>http</literal> request and create a portal request.
+ </para>
+ <para>
+ The mapping engine makes two essential tasks:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Create a Map<QualifiedName, String> from an
incoming <literal>http</literal> request
+ </para>
- </listitem>
- <listitem>
- <para>
- Render a Map<QualifiedName, String> as an
<literal>http</literal> URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Render a Map<QualifiedName, String> as an
<literal>http</literal> URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- The goal of the controller (mapping engine) is to <emphasis
role="bold">decouple</emphasis> the request processed by JBoss
Enterprise Portal Platform from the incoming <literal>HTTP</literal> request.
- </para>
- <para>
- Indeed a request contain data that determines how the request will be processed and
such data can be encoded in various places in the request such as the request path or a
query parameter. The controller allows JBoss Enterprise Portal Platform route a request
according to a set of parameters (a map) instead of the servlet request.
- </para>
- <para>
- The controller configuration is declarative in an XML file, allowing easy
reconfiguration of the routing table and it is processed into an internal data structure
that is used to perform resolution (routing or rendering)
- </para>
+ </itemizedlist>
+ <para>
+ The goal of the controller (mapping engine) is to <emphasis
role="bold">decouple</emphasis> the request processed by JBoss
Enterprise Portal Platform from the incoming <literal>HTTP</literal> request.
+ </para>
+ <para>
+ Indeed a request contain data that determines how the request will be
processed and such data can be encoded in various places in the request such as the
request path or a query parameter. The controller allows JBoss Enterprise Portal Platform
route a request according to a set of parameters (a map) instead of the servlet request.
+ </para>
+ <para>
+ The controller configuration is declarative in an XML file, allowing easy
reconfiguration of the routing table and it is processed into an internal data structure
that is used to perform resolution (routing or rendering)
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Controller_in_Action-Building_Controller">
- <title>Building Controller</title>
- <para>
- The controller configuration that contains the routing rules is loaded from a file
named <filename>controller.xml</filename> that is retrieved in the JBoss
Enterprise Portal Platform configuration directory. Its location is determined by the
<parameter>gatein.controller.config</parameter> property.
- </para>
- <para>
- <application>WebAppController</application> loads and initializes the
mapping engine
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Controller_in_Action-Building_Controller">
+ <title>Building Controller</title>
+ <para>
+ The controller configuration that contains the routing rules is loaded
from a file named <filename>controller.xml</filename> that is retrieved in the
JBoss Enterprise Portal Platform configuration directory. Its location is determined by
the <parameter>gatein.controller.config</parameter> property.
+ </para>
+ <para>
+ <application>WebAppController</application> loads and
initializes the mapping engine
+ </para>
+
<programlisting language="XML">
<!-- conf/portal/controller-configuration.xml of portal.war -->
<component>
@@ -92,104 +92,104 @@
</init-params>
</component>
</programlisting>
- <para>
- JBoss Enterprise Portal Platform's extension project can define their own routing
table, because of the extension mechanism.
- </para>
- <para>
- The <filename>controller.xml</filename> can be changed and reloaded at
runtime, this helps the testing of different configurations easily (configuration loading
operations) and provide more insight into the routing engine (the
<literal>findRoutes</literal> operation). see <emphasis
role="bold">Rebuiding controller</emphasis> for more detail
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">ReBuilding controller</emphasis>
- </para>
+ <para>
+ JBoss Enterprise Portal Platform's extension project can define their
own routing table, because of the extension mechanism.
+ </para>
+ <para>
+ The <filename>controller.xml</filename> can be changed and
reloaded at runtime, this helps the testing of different configurations easily
(configuration loading operations) and provide more insight into the routing engine (the
<literal>findRoutes</literal> operation). see <emphasis
role="bold">Rebuiding controller</emphasis> for more detail
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">ReBuilding
controller</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- The <application>WebAppController</application> is annotated with
<code>@Managed</code> annotations and is bound under the
<code>view=portal,service=controller</code> JMX name and under the
"portalcontroller" REST name.
- </para>
- <para>
- It provides the following attributes and operations
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Attribute configurationPath : the read only the configuration path of the
controller xml file
- </para>
+ </itemizedlist>
+ <para>
+ The <application>WebAppController</application> is annotated
with <code>@Managed</code> annotations and is bound under the
<code>view=portal,service=controller</code> JMX name and under the
"portalcontroller" REST name.
+ </para>
+ <para>
+ It provides the following attributes and operations
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Attribute configurationPath: the read only the configuration path
of the controller xml file
+ </para>
- </listitem>
- <listitem>
- <para>
- Operation loadConfiguration : load a new configuration file from a specified xml
path
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Operation loadConfiguration: load a new configuration file from a
specified xml path
+ </para>
- </listitem>
- <listitem>
- <para>
- Operation reloadConfiguration : reload the configuration file
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Operation reloadConfiguration: reload the configuration file
+ </para>
- </listitem>
- <listitem>
- <para>
- Operation findRoutes : route the request argument through the controller and
returns a list of all parameter map resolution. The argument is a request uri such as
"/groups/:platform:administrators/administration/registry". It returns a string
representation (<code>List<Map></code>) of the matched routes.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Operation findRoutes: route the request argument through the
controller and returns a list of all parameter map resolution. The argument is a request
uri such as <uri>/g/:platform:administrators/administration/registry</uri>. It
returns a string representation (<code>List<Map></code>) of the
matched routes.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-Controller_in_Action-Controller_Configuration_controller.xml">
- <title>Controller Configuration (controller.xml)</title>
- <para>
- Most of the controller configuration cares about defining rules (Routing table -
contains routes object) that will drive the resolution. Routes are processed during the
controller initialization to give a tree of node. Each node
- </para>
- <itemizedlist>
- <listitem>
- <para>
- is related to its parent with a matching rule that can either be an <emphasis
role="bold">exact string matching</emphasis> or a <emphasis
role="bold">regular expression matching</emphasis>
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Controller_in_Action-Controller_Configuration_controller.xml">
+ <title>Controller Configuration (controller.xml)</title>
+ <para>
+ Most of the controller configuration cares about defining rules (Routing
table - contains routes object) that will drive the resolution. Routes are processed
during the controller initialization to give a tree of node. Each node
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ is related to its parent with a matching rule that can either be
an <emphasis role="bold">exact string matching</emphasis> or a
<emphasis role="bold">regular expression matching</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- is associated with a set of parameters
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ is associated with a set of parameters
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- A parameter is defined by a qualified name and there are three kind of parameters
- </para>
- <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-_Route_parameters_">
- <title> <emphasis role="bold">Route parameters</emphasis>
</title>
- <para>
- Route parameters defines a fixed value associate with a qualified name.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Routing: route parameters allow the controller to distinguish branches easily and
route the request accordingly.
- </para>
+ </itemizedlist>
+ <para>
+ A parameter is defined by a qualified name and there are three kind of
parameters
+ </para>
+ <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-_Route_parameters_">
+ <title> <emphasis role="bold">Route
parameters</emphasis> </title>
+ <para>
+ Route parameters defines a fixed value associate with a qualified
name.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Routing: route parameters allow the controller to distinguish
branches easily and route the request accordingly.
+ </para>
- </listitem>
- <listitem>
- <para>
- Rendering: selection occurs when always.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Rendering: selection occurs when always.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting language="XML">
<route path="/foo">
<route-param qname="gtn:handler">
@@ -197,81 +197,81 @@
</route-param>
</route>
</programlisting>
- <para>
- This configuration matches the request path "/foo" to the map
(gtn:handler=portal). Conversely it renders the (gtn:handler=portal) map as the
"/foo" URL. In this example we see two concepts
- </para>
- <itemizedlist>
- <listitem>
- <para>
- exact path matching ("/foo")
- </para>
+ <para>
+ This configuration matches the request path "/foo" to the
map (gtn:handler=portal). Conversely it renders the (gtn:handler=portal) map as the
"/foo" URL. In this example we see two concepts
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ exact path matching ("/foo")
+ </para>
- </listitem>
- <listitem>
- <para>
- route parameters ("gtn:handler")
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ route parameters ("gtn:handler")
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-_Path_parameters_Regular_expression_support_">
- <title> <emphasis role="bold">Path parameters - <emphasis
role="italic">Regular expression support</emphasis> </emphasis>
</title>
- <para>
- Path parameters allow to associate a portion of the request path with a parameter.
Such parameter will match any non empty portion of text except the <emphasis
role="bold">/</emphasis> character (that is the [^/]+ regular
expression) otherwise they can be associated with a regular expression for matching
specific patterns. Path parameters are mandatory for matching since they are part of the
request path, however it is allowed to write regular expression matching an empty value.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Routing: route is accepted if the regular expression is matched.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-_Path_parameters_Regular_expression_support_">
+ <title> <emphasis role="bold">Path parameters -
<emphasis role="italic">Regular expression support</emphasis>
</emphasis> </title>
+ <para>
+ Path parameters allow to associate a portion of the request path with
a parameter. Such parameter will match any non empty portion of text except the
<emphasis role="bold">/</emphasis> character (that is the [^/]+
regular expression) otherwise they can be associated with a regular expression for
matching specific patterns. Path parameters are mandatory for matching since they are part
of the request path, however it is allowed to write regular expression matching an empty
value.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Routing: route is accepted if the regular expression is
matched.
+ </para>
- </listitem>
- <listitem>
- <para>
- Rendering: selection occurs when the regular expression matches the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Rendering: selection occurs when the regular expression
matches the parameter.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Encoding</emphasis>
- </para>
- <para>
- Path parameters may contain '/' character which is a reserved char for URI
path. This case is specially handled by the navigation controller by using a special
character to replace '/' literals. By default the character is the semi colon
<emphasis role="bold">:</emphasis> and can be changed to other
possible values (see controller XML schema for possible values) to give a greater amount
of flexibility.
- </para>
- <para>
- This encoding is applied only when the encoding performed for parameter having a
mode set to the <code>default-form</code> value, for instance it does not
happen for navigation node URI (for which <emphasis
role="bold">/</emphasis> are encoded literally). The separator escape
char can still be used but under it's percent escaped form, so by default a path
parameter value containing <emphasis role="bold">:</emphasis> would
be encoded as <code>%3A</code> and conversely the <code>%3A</code>
value will be decoded as <emphasis role="bold">:</emphasis>.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Encoding</emphasis>
+ </para>
+ <para>
+ Path parameters may contain '/' character which is a reserved
char for URI path. This case is specially handled by the navigation controller by using a
special character to replace '/' literals. By default the character is the semi
colon <emphasis role="bold">:</emphasis> and can be changed to other
possible values (see controller XML schema for possible values) to give a greater amount
of flexibility.
+ </para>
+ <para>
+ This encoding is applied only when the encoding performed for
parameter having a mode set to the <code>default-form</code> value, for
instance it does not happen for navigation node URI (for which <emphasis
role="bold">/</emphasis> are encoded literally). The separator escape
char can still be used but under it's percent escaped form, so by default a path
parameter value containing <emphasis role="bold">:</emphasis> would
be encoded as <code>%3A</code> and conversely the <code>%3A</code>
value will be decoded as <emphasis role="bold">:</emphasis>.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting language="XML">
<route path="/{gtn:path}">
</route>
</programlisting>
- <para>
- No pattern defined, used the default one [^/]+
- </para>
-
+ <para>
+ No pattern defined, used the default one [^/]+
+ </para>
+
<programlisting>
Routing and Rendering
Path "/foo" <--> the map (gtn:path=foo)
Path "/foo:bar" <--> the map (gtn:path=foo/bar)
</programlisting>
- <para>
- If the request path contains another "/" char it will not work,default
encoding mode is : <emphasis role="bold">default-form</emphasis>.
For example:"/foo/bar" --> not matched, return empty parameter map
- </para>
- <para>
- However this could be solved with the following configuration:
- </para>
-
+ <para>
+ If the request path contains another "/" char it will not
work,default encoding mode is: <emphasis
role="bold">default-form</emphasis>. For example:"/foo/bar"
--> not matched, return empty parameter map
+ </para>
+ <para>
+ However this could be solved with the following configuration:
+ </para>
+
<programlisting language="XML">
<route path="/{gtn:path}">
<path-param encoding="preserve-path"
qname="gtn:path">
@@ -279,116 +279,116 @@
</path-param>
</route>
</programlisting>
- <orderedlist>
- <listitem>
- <para>
- The .* declaration allows to match any char sequence.
- </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The .* declaration allows to match any char sequence.
+ </para>
- </listitem>
- <listitem>
- <para>
- The <emphasis role="italic">preserve-path</emphasis>
<emphasis role="bold">encoding</emphasis> tells the engine that the
"/" chars should be handled by the path parameter itself as they have a special
meaning for the router. Without this special encoding, "/" would be rendered as
the ":<emphasis role="italic">" character and conversely the
":</emphasis>" character would be matched as the "/" character.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <emphasis
role="italic">preserve-path</emphasis> <emphasis
role="bold">encoding</emphasis> tells the engine that the "/"
chars should be handled by the path parameter itself as they have a special meaning for
the router. Without this special encoding, "/" would be rendered as the
":<emphasis role="italic">" character and conversely the
":</emphasis>" character would be matched as the "/" character.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-Request_parameters">
- <title>Request parameters</title>
- <para>
- Request parameters are matched from the request parameters (GET or POST). The match
can be optional as their representation in the request allows it.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Routing
- </para>
- <itemizedlist>
- <listitem>
- <para>
- route is accepted when a required parameter is present and matched in the
request.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-Request_parameters">
+ <title>Request parameters</title>
+ <para>
+ Request parameters are matched from the request parameters (GET or
POST). The match can be optional as their representation in the request allows it.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Routing
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ route is accepted when a required parameter is
present and matched in the request.
+ </para>
- </listitem>
- <listitem>
- <para>
- route is accepted when an optional parameter is absent or matched in the
request.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ route is accepted when an optional parameter is
absent or matched in the request.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
- <listitem>
- <para>
- Rendering:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- selection occurs for required parameters when is the parameter is present and
matched in the map.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Rendering:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ selection occurs for required parameters when is the
parameter is present and matched in the map.
+ </para>
- </listitem>
- <listitem>
- <para>
- selection occurs for optional parameters when is the parameter is absent or
matched in the map.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ selection occurs for optional parameters when is the
parameter is absent or matched in the map.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting language="XML">
<route path="/">
<request-param name="path" qname="gtn:path"/>
</route>
</programlisting>
- <para>
- Request parameters are declared by a <code>request-param</code> element
and by default will match any value. A request like "/?path=foo" is mapped to
the (gtn:path=foo) map. The <code>name</code> attribute of the
<code>request-param</code> tag defines the request parameter value. This
element accepts more configuration
- </para>
- <itemizedlist>
- <listitem>
- <para>
- a <code>value</code> or a <code>pattern</code> element a
child element to match a constant or a pattern
- </para>
+ <para>
+ Request parameters are declared by a
<code>request-param</code> element and by default will match any value. A
request like "/?path=foo" is mapped to the (gtn:path=foo) map. The
<code>name</code> attribute of the <code>request-param</code> tag
defines the request parameter value. This element accepts more configuration
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ a <code>value</code> or a
<code>pattern</code> element a child element to match a constant or a pattern
+ </para>
- </listitem>
- <listitem>
- <para>
- a <code>control-mode</code> attribute with the value
<code>optional</code> or <code>required</code> to indicate if
matching is mandatory or not
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ a <code>control-mode</code> attribute with the
value <code>optional</code> or <code>required</code> to indicate
if matching is mandatory or not
+ </para>
- </listitem>
- <listitem>
- <para>
- a <code>value-mapping</code> attribute with the possible values
<code>canonical</code>, <code>never-empty</code>,
<code>never-null</code> can be used to filter filter values after matching is
done. For instance a parameter configured with
<code>value-mapping="never-empty"</code> and matching the empty
string value will not put the empty string in the map.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ a <code>value-mapping</code> attribute with the
possible values <code>canonical</code>, <code>never-empty</code>,
<code>never-null</code> can be used to filter filter values after matching is
done. For instance a parameter configured with
<code>value-mapping="never-empty"</code> and matching the empty
string value will not put the empty string in the map.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-Route_precedence">
- <title>Route precedence</title>
- <para>
- The order of route declaration is important as it influence how rules are matched.
Sometimes the same request could be matched by several routes and the routing table is
ambiguous.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-Route_precedence">
+ <title>Route precedence</title>
+ <para>
+ The order of route declaration is important as it influence how rules
are matched. Sometimes the same request could be matched by several routes and the routing
table is ambiguous.
+ </para>
+
<programlisting language="XML">
<route path="/foo">
<route-param qname="gtn:handler">
@@ -401,33 +401,33 @@
</path-param>
</route>
</programlisting>
- <para>
- In that case, the request path "/foo" will always be matched by the first
rule before the second rule. This can be misleading since the map (gtn:path=foo) would be
rendered as "/foo" as well and would not be matched by the first rule. Such
ambiguity can happen, it can be desirable or not.
- </para>
+ <para>
+ In that case, the request path "/foo" will always be
matched by the first rule before the second rule. This can be misleading since the map
(gtn:path=foo) would be rendered as "/foo" as well and would not be matched by
the first rule. Such ambiguity can happen, it can be desirable or not.
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-Route_nesting">
- <title>Route nesting</title>
- <para>
- Route nesting is possible and often desirable as it helps to
- </para>
- <itemizedlist>
- <listitem>
- <para>
- factor common parameters in a common rule
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Controller_Configuration_controller.xml-Route_nesting">
+ <title>Route nesting</title>
+ <para>
+ Route nesting is possible and often desirable as it helps to
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ factor common parameters in a common rule
+ </para>
- </listitem>
- <listitem>
- <para>
- perform more efficient matching as the match of the common rule is done once for
all the sub routes
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ perform more efficient matching as the match of the common
rule is done once for all the sub routes
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML">
<route path="/foo">
<route-param qname="gtn:handler">
@@ -445,231 +445,231 @@
</route>
</route>
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- The request path "/foo/bar" is mapped to the
(gtn:handler=portal,gtn:path=bar) map
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The request path "/foo/bar" is mapped to the
(gtn:handler=portal,gtn:path=bar) map
+ </para>
- </listitem>
- <listitem>
- <para>
- The request path "/foo/juu" is mapped to the
(gtn:handler=portal,gtn:path=juu) map
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The request path "/foo/juu" is mapped to the
(gtn:handler=portal,gtn:path=juu) map
+ </para>
- </listitem>
- <listitem>
- <para>
- The request path "/foo" is not mapped as non leaf routes do not perform
matches.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The request path "/foo" is not mapped as non leaf
routes do not perform matches.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Navigation_Controller_-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework">
- <title>Integrate to JBoss Enterprise Portal Platform WebUI
framework</title>
- <section
id="sect-Reference_Guide-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Routing">
- <title>Routing</title>
- <para>
- JBoss Enterprise Portal Platform defines a set of parameters in its routing table,
for each client request, the mapping engine processes the request path and return the
defined parameters with their values as a Map<QualifiedName, String>
- </para>
- <para>
- <emphasis role="bold">gtn:handler</emphasis>
- </para>
- <para>
- The gtn:handler names is one of the most important qualified name as it determines
which handler will take care of the request processing just after the controller has
determined the parameter map. The handler value is used to make a lookup in the handler
map of the controller. An handler is a class that extends the
<code>WebRequestHandler</code> class and implements the
<code>execute(ControllerContext)</code> method. Several handlers are available
by default:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- portal : process aggregated portal requests
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Navigation_Controller_-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework">
+ <title>Integrate to JBoss Enterprise Portal Platform WebUI
framework</title>
+ <section
id="sect-Reference_Guide-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Routing">
+ <title>Routing</title>
+ <para>
+ JBoss Enterprise Portal Platform defines a set of parameters in its
routing table, for each client request, the mapping engine processes the request path and
return the defined parameters with their values as a Map<QualifiedName,
String>
+ </para>
+ <para>
+ <emphasis role="bold">gtn:handler</emphasis>
+ </para>
+ <para>
+ The gtn:handler names is one of the most important qualified name as it
determines which handler will take care of the request processing just after the
controller has determined the parameter map. The handler value is used to make a lookup in
the handler map of the controller. An handler is a class that extends the
<code>WebRequestHandler</code> class and implements the
<code>execute(ControllerContext)</code> method. Several handlers are available
by default:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ portal: process aggregated portal requests
+ </para>
- </listitem>
- <listitem>
- <para>
- upload / download : process file upload and file download
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ upload / download: process file upload and file download
+ </para>
- </listitem>
- <listitem>
- <para>
- legacy : handle legacy URL redirection (see <emphasis
role="bold">Legacy handler</emphasis> section)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ legacy: handle legacy URL redirection (see <emphasis
role="bold">Legacy handler</emphasis> section)
+ </para>
- </listitem>
- <listitem>
- <para>
- default : <literal>http</literal> redirection to the default portal of
the container
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ default: <literal>http</literal> redirection to the
default portal of the container
+ </para>
- </listitem>
- <listitem>
- <para>
- staticResource: serve static resources like image, css or javascript... files in
portal.war (see <emphasis role="bold">Static Resource
Handler</emphasis> section)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ staticResource: serve static resources like image, css or
javascript... files in portal.war (see <emphasis role="bold">Static
Resource Handler</emphasis> section)
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">gtn:sitetype / gtn:sitename /
gtn:path</emphasis>
- </para>
- <para>
- Those qualified names drives a request for the portal handler. They are used to
determine which site to show and which path to resolve against a navigation. For instance
the (gtn:sitetype=portal,gtn:sitename=classic,gtn:path=home) instruct the portal handler
to show the home page of the classic portal site.
- </para>
- <para>
- <emphasis role="bold">gtn:lang</emphasis>
- </para>
- <para>
- The language in the URL for the portal handler. This is a new feature offered, now
language can be specified on URL. that mean user can bookmark that URL (with the
information about language) or he can changed language simply by modifying the URL
address
- </para>
- <para>
- <emphasis role="bold">gtn:componentid / gtn:action /
gtn:objectid</emphasis>
- </para>
- <para>
- The webui parameters used by the portal handler for managing webui component URLs for
portal applications (and not for portlet applications).
- </para>
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">gtn:sitetype / gtn:sitename /
gtn:path</emphasis>
+ </para>
+ <para>
+ Those qualified names drives a request for the portal handler. They are
used to determine which site to show and which path to resolve against a navigation. For
instance the (gtn:sitetype=portal,gtn:sitename=classic,gtn:path=home) instruct the portal
handler to show the home page of the classic portal site.
+ </para>
+ <para>
+ <emphasis role="bold">gtn:lang</emphasis>
+ </para>
+ <para>
+ The language in the URL for the portal handler. This is a new feature
offered, now language can be specified on URL. that mean user can bookmark that URL (with
the information about language) or he can changed language simply by modifying the URL
address
+ </para>
+ <para>
+ <emphasis role="bold">gtn:componentid / gtn:action /
gtn:objectid</emphasis>
+ </para>
+ <para>
+ The webui parameters used by the portal handler for managing webui
component URLs for portal applications (and not for portlet applications).
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Rendering">
- <title>Rendering</title>
- <para>
- The <emphasis role="bold">controller</emphasis> is designed to
render a Map<QualifiedName, String> as an
<literal>http</literal> URL according to its routing table. But to integrate
it for using easily in WebUI Framework of JBoss Enterprise Portal Platform, we need some
more components
- </para>
- <section id="sect-Reference_Guide-Rendering-_PortalURL_">
- <title> <emphasis role="bold">PortalURL</emphasis>
</title>
- <para>
- <code>PortalURL</code> play a similar role at the portal level, its main
role is to abstract the creation of an URL for a resource managed by the portal.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Rendering">
+ <title>Rendering</title>
+ <para>
+ The <emphasis role="bold">controller</emphasis> is
designed to render a Map<QualifiedName, String> as an
<literal>http</literal> URL according to its routing table. But to integrate
it for using easily in WebUI Framework of JBoss Enterprise Portal Platform, we need some
more components
+ </para>
+ <section id="sect-Reference_Guide-Rendering-_PortalURL_">
+ <title> <emphasis
role="bold">PortalURL</emphasis> </title>
+ <para>
+ <code>PortalURL</code> play a similar role at the portal
level, its main role is to abstract the creation of an URL for a resource managed by the
portal.
+ </para>
+
<programlisting language="Java">
public abstract class PortalURL<R, U extends PortalURL<U>>
{
...
}
</programlisting>
- <para>
- The <code>PortalURL</code> declaration may seem a bit strange at first
sight with two generic types <code>U</code> and <code>R</code> and
the circular recursion of the <code>U</code> generic parameter, but it's
because most of the time you will not use the <code>PortalURL</code> object
but instead subclasses.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The <code>R</code> generic type represents the type of the resource
managed by the portal
- </para>
+ <para>
+ The <code>PortalURL</code> declaration may seem a bit
strange at first sight with two generic types <code>U</code> and
<code>R</code> and the circular recursion of the <code>U</code>
generic parameter, but it's because most of the time you will not use the
<code>PortalURL</code> object but instead subclasses.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <code>R</code> generic type represents the
type of the resource managed by the portal
+ </para>
- </listitem>
- <listitem>
- <para>
- The <code>U</code> generic type is also described as <emphasis
role="bold">self bound generic type</emphasis>. This design pattern
allows a class to return subtypes of itself in the class declaring the generic type. Java
Enums are based on this principle (<code>class Enum<E extends
Enum<E>></code>)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>U</code> generic type is also described
as <emphasis role="bold">self bound generic type</emphasis>. This
design pattern allows a class to return subtypes of itself in the class declaring the
generic type. Java Enums are based on this principle (<code>class Enum<E
extends Enum<E>></code>)
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- A portal URL has various methods but certainly the most important method is the
<code>toString()</code> method that generates an URL representing that will
target the resource associated with the URL. The remaining methods are getter and setter
for mutating the URL configuration, those options will affect the URL representation when
it is generated.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- resource : the mandatory resource associated with the URL
- </para>
+ </itemizedlist>
+ <para>
+ A portal URL has various methods but certainly the most important
method is the <code>toString()</code> method that generates an URL
representing that will target the resource associated with the URL. The remaining methods
are getter and setter for mutating the URL configuration, those options will affect the
URL representation when it is generated.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ resource: the mandatory resource associated with the URL
+ </para>
- </listitem>
- <listitem>
- <para>
- locale : the optional locale used in the URL allowing the creation of bookmarkable
URL containing a language
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ locale: the optional locale used in the URL allowing the
creation of bookmarkable URL containing a language
+ </para>
- </listitem>
- <listitem>
- <para>
- confirm : the optional confirm message displayed by the portal in the context of
the portal UI
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ confirm: the optional confirm message displayed by the portal
in the context of the portal UI
+ </para>
- </listitem>
- <listitem>
- <para>
- ajax : the optional ajax option allowing an ajax invocation of the URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ ajax: the optional ajax option allowing an ajax invocation of
the URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Obtaining a PortalURL</emphasis>
- </para>
- <para>
- <code>PortalURL</code> objects are obtained from
<code>RequestContext</code> instance such as the
<code>PortalRequestContext</code> or the PortletRequestContext. Usually those
are obtained thanks to <code>getCurrentInstance</code> method of the
<code>RequestContext</code> class:
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Obtaining a
PortalURL</emphasis>
+ </para>
+ <para>
+ <code>PortalURL</code> objects are obtained from
<code>RequestContext</code> instance such as the
<code>PortalRequestContext</code> or the PortletRequestContext. Usually those
are obtained thanks to <code>getCurrentInstance</code> method of the
<code>RequestContext</code> class:
+ </para>
+
<programlisting language="Java">
RequestContext ctx = RequestContext.getCurrentInstance();
</programlisting>
- <para>
- <code>PortalURL</code> are created via to the
<code>createURL</code> method that takes as input a resource type. A resource
type is usually a constant and is a type safe object that allow to retrieve
<code>PortalURL</code> subclasses:
- </para>
-
+ <para>
+ <code>PortalURL</code> are created via to the
<code>createURL</code> method that takes as input a resource type. A resource
type is usually a constant and is a type safe object that allow to retrieve
<code>PortalURL</code> subclasses:
+ </para>
+
<programlisting language="Java">
RequestContext ctx = RequestContext.getCurrentInstance();
PortalURL<R, U> URL = ctx.createURL(type);
</programlisting>
- <para>
- In reality you will use a concrete type constant and have instead more concrete code
like:
- </para>
-
+ <para>
+ In reality you will use a concrete type constant and have instead
more concrete code like:
+ </para>
+
<programlisting language="Java">
RequestContext ctx = RequestContext.getCurrentInstance();
NodeURL URL = ctx.createURL(NodeURL.TYPE);
</programlisting>
- <note>
- <para>
- The <code>NodeURL.TYPE</code> is actually declared as <code>new
ResourceType<NavigationResource, NodeURL>()</code> that can be
described as a <emphasis role="bold">type literal</emphasis> object
emulated by a Java anonymous inner class. Such literal were introduced by Neil Gafter as
Super Type Token and popularized by Google Guice as Type Literal. It's an interesting
way to create a literal representing a kind of Java type.
- </para>
+ <note>
+ <para>
+ The <code>NodeURL.TYPE</code> is actually declared as
<code>new ResourceType<NavigationResource, NodeURL>()</code>
that can be described as a <emphasis role="bold">type
literal</emphasis> object emulated by a Java anonymous inner class. Such literal
were introduced by Neil Gafter as Super Type Token and popularized by Google Guice as Type
Literal. It's an interesting way to create a literal representing a kind of Java
type.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide-Rendering-_Node_URL_">
- <title> <emphasis role="bold">Node URL</emphasis>
</title>
- <para>
- The class <code>NodeURL</code> is one of the subclass of
<code>PortalURL</code> that is specialized for navigation node resources:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Rendering-_Node_URL_">
+ <title> <emphasis role="bold">Node
URL</emphasis> </title>
+ <para>
+ The class <code>NodeURL</code> is one of the subclass of
<code>PortalURL</code> that is specialized for navigation node resources:
+ </para>
+
<programlisting language="Java">
public class NodeURL extends PortalURL<NavigationResource, NodeURL>
{
...
}
</programlisting>
- <para>
- The good news is that the NodeURL does not carry any generic type of its super
class, which means that a NodeURL is type safe and one does not have to worry about
generic types.
- </para>
- <para>
- Using a NodeURL is pretty straightforward:
- </para>
-
+ <para>
+ The good news is that the NodeURL does not carry any generic type of
its super class, which means that a NodeURL is type safe and one does not have to worry
about generic types.
+ </para>
+ <para>
+ Using a NodeURL is pretty straightforward:
+ </para>
+
<programlisting language="Java">
NodeURL URL = RequestContext.getCurrentInstance().createURL(NodeURL.TYPE);
URL.setResource(new NavigationResource("portal", "classic,
"home"));
String s = URL.toString();
</programlisting>
- <para>
- The <code>NodeURL</code> subclass contains specialized setter to make
its usage even easier:
- </para>
-
+ <para>
+ The <code>NodeURL</code> subclass contains specialized
setter to make its usage even easier:
+ </para>
+
<programlisting language="Java">
UserNode node = ...;
NodeURL URL = RequestContext.getCurrentInstance().createURL(NodeURL.TYPE);
@@ -677,98 +677,98 @@
String s = URL.toString();
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide-Rendering-_Component_URL_">
- <title> <emphasis role="bold">Component URL</emphasis>
</title>
- <para>
- The <code>ComponentURL</code> subclass is another specialization of
<code>PortalURL</code> that allows the creation of WebUI components URLs.
<code>ComponentURL</code> is commonly used to trigger WebUI events from client
side:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Rendering-_Component_URL_">
+ <title> <emphasis role="bold">Component
URL</emphasis> </title>
+ <para>
+ The <code>ComponentURL</code> subclass is another
specialization of <code>PortalURL</code> that allows the creation of WebUI
components URLs. <code>ComponentURL</code> is commonly used to trigger WebUI
events from client side:
+ </para>
+
<programlisting>
<% def componentURL = uicomponent.event(...); /*or uicomponent.URL(...) */
%>
<a href=$componentURL>Click me</a>
</programlisting>
- <para>
- Normally you should not have to deal with it as the WebUI framework has already an
abstraction for managing URL known as <code>URLBuilder</code>. The
<code>URLBuilder</code> implementation delegates URL creation to
<code>ComponentURL</code> objects.
- </para>
+ <para>
+ Normally you should not have to deal with it as the WebUI framework
has already an abstraction for managing URL known as <code>URLBuilder</code>.
The <code>URLBuilder</code> implementation delegates URL creation to
<code>ComponentURL</code> objects.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-Rendering-Portlet_URLs">
- <title>Portlet URLs</title>
- <para>
- Portlet URLs API implementation delegates to the portal
<code>ComponentURL</code> (via the portlet container SPI). It is possible to
control the language in the URL from a <code>PortletURL</code> object by
setting a property named <code>gtn:lang</code>:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- when the property value is set to a value returned by
<code>Locale#toString()</code> method for locale objects having a non null
language value and a null variant value, the URL generated by the
<code>PortletURL#toString()</code> method will contain the locale in the URL.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Rendering-Portlet_URLs">
+ <title>Portlet URLs</title>
+ <para>
+ Portlet URLs API implementation delegates to the portal
<code>ComponentURL</code> (via the portlet container SPI). It is possible to
control the language in the URL from a <code>PortletURL</code> object by
setting a property named <code>gtn:lang</code>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ when the property value is set to a value returned by
<code>Locale#toString()</code> method for locale objects having a non null
language value and a null variant value, the URL generated by the
<code>PortletURL#toString()</code> method will contain the locale in the URL.
+ </para>
- </listitem>
- <listitem>
- <para>
- when the property value is set to an empty string, the generated URL will not
contain a language. If the incoming URL was carrying a language, this language will be
erased.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ when the property value is set to an empty string, the
generated URL will not contain a language. If the incoming URL was carrying a language,
this language will be erased.
+ </para>
- </listitem>
- <listitem>
- <para>
- when the property value is not set, it will not affect the generated URL.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ when the property value is not set, it will not affect the
generated URL.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="Java">
PortletURL URL = resp.createRenderURL();
URL.setProperty("gtn:lang", "fr");
writer.print("<a href='" + URL +
"'>French</a>");
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide-Rendering-Webui_URLBuilder_">
- <title>Webui <code>URLBuilder</code> </title>
- <para>
- This internal API for creating URL works as before and delegates to the
<code>PortletURL</code> API when the framework is executed in a portlet and to
a <code>ComponentURL</code> API when the framework is executed in the portal
context. The API has been modified to take in account the language in URL with two
properties on the builder:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- locale : a locale for setting on the URL
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Rendering-Webui_URLBuilder_">
+ <title>Webui <code>URLBuilder</code> </title>
+ <para>
+ This internal API for creating URL works as before and delegates to
the <code>PortletURL</code> API when the framework is executed in a portlet
and to a <code>ComponentURL</code> API when the framework is executed in the
portal context. The API has been modified to take in account the language in URL with two
properties on the builder:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ locale: a locale for setting on the URL
+ </para>
- </listitem>
- <listitem>
- <para>
- removeLocale : a boolean for removing the locale present on the URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ removeLocale: a boolean for removing the locale present on
the URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide-Rendering-Groovy_Templates">
- <title>Groovy Templates</title>
- <para>
- Within a Groovy template the mechanism is the same, however a splash of integration
has been done to make creation of NodeURL simpler. A closure is bound under the
<code>nodeurl</code> name and is available for invocation anytime. It will
simply create a NodeURL object and return it:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Rendering-Groovy_Templates">
+ <title>Groovy Templates</title>
+ <para>
+ Within a Groovy template the mechanism is the same, however a splash
of integration has been done to make creation of NodeURL simpler. A closure is bound under
the <code>nodeurl</code> name and is available for invocation anytime. It will
simply create a NodeURL object and return it:
+ </para>
+
<programlisting language="Java">
UserNode node = ...;
NodeURL URL = nodeurl();
URL.setNode(node);
String s = URL.toString();
</programlisting>
- <para>
- The closure <code>nodeurl</code> is bound to Groovy template in
<code>WebuiBindingContext</code>
- </para>
-
+ <para>
+ The closure <code>nodeurl</code> is bound to Groovy
template in <code>WebuiBindingContext</code>
+ </para>
+
<programlisting language="Java">
// Closure nodeurl()
put("nodeurl", new Closure(this)
@@ -781,15 +781,15 @@
});
</programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <!-- <section
id="sect-Reference_Guide-Navigation_Controller_-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x">
+ </section>
+
+ <!-- <section
id="sect-Reference_Guide-Navigation_Controller_-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x">
<title>Changes and migration from JBoss Enterprise Portal Platform
5</title>
<para>
The navigation controller implies a migration of the client code that is
coupled to several internal APIs of JBoss Enterprise Portal Platform. As far as we know
the major impact is related to anything dealing with URL:
@@ -936,7 +936,7 @@
<section
id="sect-Reference_Guide-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Static_resource_handler">
<title>Static resource handler</title>
<para>
- The "/" mapping for "default" servlet is now replaced
by mapping for org.exoplatform.portal.application.PortalController servlet, that mean we
need a handler (<emphasis
role="bold">org.exoplatform.portal.application.StaticResourceRequestHandler</emphasis>)
to serve static resources like image, css or javascript... files in portal.war. And it
should be configured, and extended easily. Thanks to the controller.xml. This file can be
overridden and can be changed and reloaded at runtime (WebAppController is MBean with some
operations such as : reloadConfiguration() ...)
+ The "/" mapping for "default" servlet is now replaced
by mapping for org.exoplatform.portal.application.PortalController servlet, that mean we
need a handler (<emphasis
role="bold">org.exoplatform.portal.application.StaticResourceRequestHandler</emphasis>)
to serve static resources like image, css or javascript... files in portal.war. And it
should be configured, and extended easily. Thanks to the controller.xml. This file can be
overridden and can be changed and reloaded at runtime (WebAppController is MBean with some
operations such as: reloadConfiguration() ...)
</para>
<para>
Declare StaticResourceHandler in controller.xml
@@ -953,7 +953,7 @@
</route>
</programlisting>
<para>
- And we don't need these kind of following mapping in portal.war's
web.xml anymore :
+ And we don't need these kind of following mapping in portal.war's
web.xml anymore:
</para>
<programlisting language="XML">
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/PortalLifecycle.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/PortalLifecycle.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/PortalLifecycle.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,30 +4,30 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-Portal_Life_cycle">
- <title>Portal Life-cycle</title>
- <section id="sect-Reference_Guide-Portal_Life_cycle-Overview">
- <title>Overview</title>
- <para>
- This chapter describes the portal life-cycle from the application server start to its
stop including how requests are handled.
- </para>
+ <title>Portal Life-cycle</title>
+ <section id="sect-Reference_Guide-Portal_Life_cycle-Overview">
+ <title>Overview</title>
+ <para>
+ This chapter describes the portal life-cycle from the application server
start to its stop including how requests are handled.
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Portal_Life_cycle-Application_Server_start_and_stop">
- <title>Application Server start and stop</title>
- <para>
- A portal instance is simply a web application deployed as a
<literal>WAR</literal> in an application server. Portlets are also part of an
enhanced WAR called a portlet application.
- </para>
- <para>
- JBoss Enterprise Portal Platform does not require any particular setup for your
portlet in most common scenarios and the <filename>web.xml</filename> file can
remain without any JBoss Enterprise Portal Platform specific configuration.
- </para>
- <para>
- During deployment, JBoss Enterprise Portal Platform will automatically and
transparently inject a servlet into the portlet application to be able to interact with
it. This feature is dependent on the underlying servlet container but will work out of the
box on the proposed bundles.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Portal_Life_cycle-Application_Server_start_and_stop">
+ <title>Application Server start and stop</title>
+ <para>
+ A portal instance is simply a set of web applications deployed as
<filename>EAR</filename> and <filename>WAR</filename> archives.
Portlets are also part of an enhanced WAR called a portlet application.
+ </para>
+ <para>
+ JBoss Enterprise Portal Platform does not require any particular setup for
your portlet in most common scenarios and the <filename>web.xml</filename>
file can remain without any JBoss Enterprise Portal Platform specific configuration.
+ </para>
+ <para>
+ During deployment, JBoss Enterprise Portal Platform will automatically and
transparently inject a servlet into the portlet application to be able to interact with
it. This feature is dependent on the underlying servlet container but will work out of the
box on the proposed bundles.
+ </para>
- </section>
-
- <!--
+ </section>
+
+ <!--
TODO: Define the added listener
--><!--
<section id="sect-Reference_Guide-Portal_Lifecycle-The_Listener">
@@ -40,11 +40,11 @@
<listener>
<listener-class>org.exoplatform.portal.application.PortalSessionListener</listener-class>
</listener>
-</programlisting> --><!-- <para>
+</programlisting> --><!-- <para>
That listener implements the HttpSessionListener which means it is called each time a
session is created or destroyed; in other words, a session is created each time a user
send a first request to the portal. That session is destroyed when he has not sent request
to the portal for a long time or when he closes his browser.
</para>
<programlisting language="Java" role="Java"><xi:include
parse="text"
href="../../extras/PortalDevelopment_PortalLifecycle/PortalSessionListener.java"
xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
--><!-- <programlisting>public class PortalSessionListener implements
HttpSessionListener
-</programlisting> --><!-- <para>
+</programlisting> --><!-- <para>
Only the destroy method of the Listener object is implemented and it is used to flush
resources when a user portal session expires. Here is the code:
</para> --><!-- <programlisting language="Java"
role="Java"><xi:include parse="text"
href="../../extras/PortalDevelopment_PortalLifecycle/default159.java"
xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
--><!-- <programlisting> /**
* This method is called when a HTTP session of a Portal instance is destroyed.
@@ -82,23 +82,23 @@
}
</programlisting>
--> <section
id="sect-Reference_Guide-Portal_Life_cycle-The_Command_Servlet">
- <title>The Command Servlet</title>
- <para>
- The CommandServlet is called by the portlet container for requests to particular
portlets, it also includes some <literal>init</literal> code when the portal
is launched. This servlet
(<literal>org.gatein.wci.command.CommandServlet</literal>) is automatically
added during the deployment of each portlet application and mapped to
<literal>/gateinservlet</literal>.
- </para>
- <para>
- This is equivalent to adding the following into
<filename>web.xml</filename>.
- </para>
- <note>
- <title>Servlet Configuration</title>
- <para>
- <emphasis role="bold">As the servlet is already configured this
example is for information only.</emphasis>
- </para>
+ <title>The Command Servlet</title>
+ <para>
+ The CommandServlet is called by the portlet container for requests to
particular portlets, it also includes some <literal>init</literal> code when
the portal is launched. This servlet
(<literal>org.gatein.wci.api.GateInServlet</literal>) is automatically added
during the deployment of each portlet application and mapped to
<literal>/gateinservlet</literal>.
+ </para>
+ <para>
+ This is equivalent to adding the following into
<filename>web.xml</filename>.
+ </para>
+ <note>
+ <title>Servlet Configuration</title>
+ <para>
+ <emphasis role="bold">As the servlet is already
configured this example is for information only.</emphasis>
+ </para>
- </note>
-
+ </note>
+
<programlisting language="XML" role="XML"><xi:include
href="../../extras/PortalDevelopment_PortalLifecycle/default160.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <!-- <programlisting language="XML"
role="XML"><![CDATA[<servlet>
+ <!-- <programlisting language="XML"
role="XML"><![CDATA[<servlet>
<servlet-name>GateInServlet</servlet-name>
<servlet-class>org.gatein.wci.command.CommandServlet</servlet-class>
<load-on-startup>0</load-on-startup>
@@ -107,17 +107,17 @@
<servlet-name>GateInServlet</servlet-name>
<url-pattern>/gateinservlet</url-pattern>
</servlet-mapping>]]></programlisting> --> <para>
- It is possible to filter on the <literal>CommandServlet</literal> by
filtering the URL pattern used by the servlet mapping.
- </para>
- <para>
- The example below would create a servlet filter that calculates the time of execution
of a portlet request.
- </para>
- <para>
- The filter class:
- </para>
-
+ It is possible to filter on the <literal>GateInServlet</literal>
by filtering the URL pattern used by the servlet mapping.
+ </para>
+ <para>
+ The example below would create a servlet filter that calculates the time of
execution of a portlet request.
+ </para>
+ <para>
+ The filter class:
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../extras/PortalDevelopment_PortalLifecycle/MyFilter.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <!-- <programlisting language="Java"
role="JAVA"><![CDATA[package org.example;
+ <!-- <programlisting language="Java"
role="JAVA"><![CDATA[package org.example;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
@@ -141,14 +141,14 @@
}
}
]]></programlisting> --> <para>
- The Java EE web application configuration file
(<filename>web.xml</filename>) of the portlet is the file on which we want to
know the time to serve a portlet request.
- </para>
- <para>
- As mentioned above nothing specific to JBoss Enterprise Portal Platform needs to be
included, only the URL pattern to set has to be known.
- </para>
-
+ The Java EE web application configuration file
(<filename>web.xml</filename>) of the portlet is the file on which we want to
know the time to serve a portlet request.
+ </para>
+ <para>
+ As mentioned above nothing specific to JBoss Enterprise Portal Platform needs
to be included, only the URL pattern to set has to be known.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../extras/PortalDevelopment_PortalLifecycle/default161.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <!-- <programlisting language="XML"
role="XML"><![CDATA[<?xml version="1.0"?>
+ <!-- <programlisting language="XML"
role="XML"><![CDATA[<?xml version="1.0"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.5">
@@ -162,19 +162,19 @@
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
</web-app>]]></programlisting> --> <para>
- <note>
- <title>INCLUDE dispatcher</title>
- <para>
- It is important to set <literal>INCLUDE</literal> as dispatcher as the
portal will always hit the <literal>CommandServlet</literal> through a request
dispatcher. Without this, the filter will not be triggered, unless direct access to a
resource (such as an image) is set.
- </para>
+ <note>
+ <title>INCLUDE dispatcher</title>
+ <para>
+ It is important to set <literal>INCLUDE</literal> as
dispatcher as the portal will always hit the <literal>GateInServlet</literal>
through a request dispatcher. Without this, the filter will not be triggered, unless
direct access to a resource (such as an image) is set.
+ </para>
- </note>
+ </note>
- </para>
+ </para>
- </section>
-
- <!--
+ </section>
+
+ <!--
<para>
Here is its definition in the web.xml file:
</para> --><!-- <programlisting language="Java"
role="Java"><xi:include parse="text"
href="../../extras/PortalDevelopment_PortalLifecycle/default162.java"
xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
--><!-- <programlisting>
@@ -187,7 +187,7 @@
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
-</programlisting> --><!-- <para>
+</programlisting> --><!-- <para>
The load-on-startup tag tells that the init method of the servlet is called when the
application server starts. We also define some configuration for the portal at the path
WEB-INF/webui-configuration.xml inside the portal WAR.
</para> --><!-- <programlisting language="Java"
role="Java"><xi:include parse="text"
href="../../extras/PortalDevelopment_PortalLifecycle/is1.java"
xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
--><!-- <programlisting>/**
* The PortalContainer servlet is the main entry point for the GateIn Portal product.
@@ -893,7 +893,7 @@
w.write("</div>") ;
}
}
-</programlisting> --><!-- </section>
+</programlisting> --><!-- </section>
-->
</chapter>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,18 +4,20 @@
%BOOK_ENTITIES;
]>
<part id="part-Reference_Guide-Portal_Development">
- <title>Portal Development</title>
- <xi:include href="PortalDevelopment/Skinning.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/PortalLifecycle.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/DefaultPortalConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include
href="PortalDevelopment/DefaultPortalPermissionConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include
href="PortalDevelopment/DefaultPortalNavigationConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/DataImportStrategy.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/InternationalizationConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/LocalizationConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/RTLFramework.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="PortalDevelopment/XMLResourceBundles.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include
href="PortalDevelopment/JavascriptInterApplicationCommunication.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- <xi:include
href="PortalDevelopment/JavascriptConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <!-- DOC
NOTE: JavaScript Configuration section removed as per instruction from Thomas Heute
--> <xi:include href="PortalDevelopment/NavigationController.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <title>Portal Development</title>
+ <xi:include href="PortalDevelopment/Skinning.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="PortalDevelopment/PortalLifecycle.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="PortalDevelopment/DefaultPortalConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include
href="PortalDevelopment/DefaultPortalPermissionConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include
href="PortalDevelopment/DefaultPortalNavigationConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="PortalDevelopment/DataImportStrategy.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include
href="PortalDevelopment/InternationalizationConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="PortalDevelopment/LocalizationConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="PortalDevelopment/XMLResourceBundles.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="PortalDevelopment/RTLFramework.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include
href="PortalDevelopment/JavascriptInterApplicationCommunication.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!-- <xi:include
href="PortalDevelopment/JavascriptConfiguration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <!-- DOC NOTE: JavaScript Configuration section removed as per instruction
from Thomas Heute -->
+ <xi:include href="PortalDevelopment/NavigationController.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</part>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml 2011-12-05 03:51:59 UTC
(rev 8190)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/WSRP.xml 2011-12-05 04:33:56 UTC
(rev 8191)
@@ -4,7 +4,7 @@
%BOOK_ENTITIES;
]>
<chapter id="wsrp">
- <title><remark>Web Services for Remote Portlets
(WSRP)</remark></title>
+ <title><remark>Web Services for Remote Portlets
(WSRP)</remark></title>
<section>
<title>Introduction</title>
@@ -135,7 +135,7 @@
</para>
<para>
- Of course, if you have modified you have modified the host name and port
on which your server runs, you will need to update the configuration for the consumer used
to consume JBoss Enterprise Portal Platform's 'self' producer. Please refer to
the <xref linkend="consumer_configuration"/> to learn how to do so.
+ Of course, if you have modified the host name and port on which your
server runs, you will need to update the configuration for the consumer used to consume
JBoss Enterprise Portal Platform's 'self' producer. Please refer to the
<xref linkend="consumer_configuration"/> to learn how to do so.
</para>
</section>
</section>
@@ -194,7 +194,7 @@
<title>WS-Security Configuration</title>
<para>
- JBoss Enterprise Portal Platform uses JBossWS Native to handle
ws-security. Please see the WS-Security section of the <ulink
url="http://www.jboss.org/jbossas/docs/5-x">JBoss AS 5 Administration and
Configuration Guide </ulink> for indepth configuration options. Please note that
since the consumer passes its credentials to the producer, the consumer will act at the
wss client and the producer will act as the wss server.
+ JBoss Enterprise Portal Platform uses JBossWS Native to handle
ws-security. Please see the WS-Security section of the <ulink
url="http://www.jboss.org/jbossas/docs/5-x">JBoss AS 5 Administration and
Configuration Guide </ulink> for indepth configuration options. Please note that
since the consumer passes its credentials to the producer, the consumer will act as the
wss client and the producer will act as the wss server.
</para>
<para>
@@ -265,25 +265,25 @@
<itemizedlist>
<listitem>
<para>
- The JBossWS configuration files must be configured
+ The JBossWS configuration files must be configured.
</para>
</listitem>
<listitem>
<para>
- The filter must be added to the portal's web.xml
+ The filter must be added to the portal's web.xml.
</para>
</listitem>
<listitem>
<para>
- the enable wss feature must be check in the wsrp admin
+ The enable wss feature must be check in the wsrp admin.
</para>
</listitem>
</itemizedlist>
<para>
- The consumer will not properly handle ws-security unless all 3 are
properly configured
+ The consumer will not properly handle ws-security unless all 3 are
properly configured.
</para>
</section>
</section>
@@ -332,7 +332,7 @@
</example>
<para>
- It is also possible to specify that all the portlets declared within a given
portlet application to be remotable by default. This is done by specifying the
<code> container-runtime-option </code> at the
<code>portlet-app</code> element level. Individual portlets can override that
value to not be remotely exposed. Let's look at an example:
+ It is also possible to specify that all the portlets declared within a given
portlet application to be remotable by default. This is done by specifying the
<code>container-runtime-option</code> at the
<code>portlet-app</code> element level. Individual portlets can override that
value to not be remotely exposed. Let's look at an example:
</para>
<example>
@@ -370,15 +370,7 @@
</example>
<para>
- In the example above, we defined two portlets. The
<code>org.gatein.pc.remotable container-runtime-option</code> being set to
<code>true</code> at the <code>portlet-app</code> level, all
portlets defined in this particular portlet application are exposed remotely by JBoss
Enterprise Portal Platform's WSRP producer. Note, however, that it is possible to
override the default behavior: specifying a value for the
<code>org.gatein.pc.remotable container-runtime-option</code> at the
<code>portlet</code> level will take precedence over the default. In the
example above, the
- <varname>
- RemotelyExposedPortlet
- </varname>
- inherits the remotable status defined at the
<code>portlet-app</code> level since it does not specify a value for
the<code>org.gatein.pc.remotable container-runtime-option</code>. The
- <varname>
- NotRemotelyExposedPortlet
- </varname>
- , however, overrides the default behavior and is not remotely exposed. Note
that in the absence of a top-level <code>org.gatein.pc.remotable
container-runtime-option</code> value set to<code>true</code>, portlets
are NOT remotely exposed.
+ In the example above, we defined two portlets. The
<code>org.gatein.pc.remotable container-runtime-option</code> being set to
<code>true</code> at the <code>portlet-app</code> level, all
portlets defined in this particular portlet application are exposed remotely by JBoss
Enterprise Portal Platform's WSRP producer. Note, however, that it is possible to
override the default behavior: specifying a value for the
<code>org.gatein.pc.remotable container-runtime-option</code> at the
<code>portlet</code> level will take precedence over the default. In the
example above, the <varname>RemotelyExposedPortlet</varname> inherits the
remotable status defined at the <code>portlet-app</code> level since it does
not specify a value for the <code>org.gatein.pc.remotable
container-runtime-option</code>. The
<varname>NotRemotelyExposedPortlet</varname>, however, overrides the default
behavior and is not remotely exposed. Note that in the absence of a top-level
<code>org.gatein.pc.!
remotable container-runtime-option</code> value set to
<code>true</code>, portlets are NOT remotely exposed.
</para>
</section>
@@ -423,7 +415,7 @@
</note>
<para>
- JBoss Enterprise Portal Platform provides a portlet to configure access
(among other functions) to remote WSRP Producers grahically. Starting with &VY;, the
WSRP configuration portlet is installed by default. You can find it at <ulink
+ JBoss Enterprise Portal Platform provides a portlet to configure access
(among other functions) to remote WSRP Producers graphically. Starting with &VY;, the
WSRP configuration portlet is installed by default. You can find it at <ulink
url="http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclassic%2FwsrpConfiguration&username=root&password=gtn">
http://localhost:8080/portal/login?initialURI=%2Fportal%2Fprivate%2Fclass...
</ulink>
</para>
@@ -491,7 +483,7 @@
</para>
<para>
- If we had been dealing with a producer which required registration but
didn't require any registration properties, as is the case for the
<literal>selfv2</literal> consumer (the consumer that accesses the portlets
made remotely available by JBoss Enterprise Portal Platform's producer via WSRP 2),
we'd have seen something similar to, after pressing the "Refresh &
Save" button:
+ If we had been dealing with a producer which required registration but
didn't require any registration properties, as is the case for the
<literal>selfv2</literal> consumer (the consumer that accesses the portlets
made remotely available by JBoss Enterprise Portal Platform's producer via WSRP 2),
we'd have seen something similar to the screenshot below, after pressing the
"Refresh & Save" button:
<mediaobject>
<imageobject>
<imagedata fileref="images/WSRP/config_refresh.png"
format="PNG" align="center" valign="middle"
@@ -706,7 +698,7 @@
</para>
<note>
- <title>Note</title>
+ <title>Note</title>
<para>
For remote portlets published by JBoss Enterprise Portal Platform's
WSRP producer, the portlet handles are, at the time of this writing, following the
<literal>/<portlet application name>.<portlet
name></literal> format.
</para>
@@ -720,7 +712,7 @@
</para>
<example>
- <title>Example</title>
+ <title>Example</title>
<para>
<programlisting><![CDATA[
<page>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/backup/exojcr-backup-service.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/backup/exojcr-backup-service.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/backup/exojcr-backup-service.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -78,7 +78,7 @@
Restoring an incremental backup consists in applying the collected set of
ChangesLogs to a workspace in the correct order.
</para>
<note>
- <title></title>
+ <title>Note</title>
<para>
Incremental backup is an experimental feature and not supported.
Please use it with caution.
</para>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,33 +4,33 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-NodeType_Registration">
- <!-- This document was created with Syntext Serna Free. -->
<title>NodeType Registration</title>
- <para>
- The eXo JCR implementation supports two methods of Nodetypes registration:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- From a <literal>NodeTypeValue</literal> POJO. Refer to <xref
linkend="exam-Reference_Guide-Node_type_registration-Run_time_registration_using_NodeTypeValue"
/>
- </para>
+ <!-- This document was created with Syntext Serna Free. -->
<title>NodeType Registration</title>
+ <para>
+ The eXo JCR implementation supports two methods of Nodetypes registration:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ From a <literal>NodeTypeValue</literal> POJO. Refer to
<xref
linkend="exam-Reference_Guide-Node_type_registration-Run_time_registration_using_NodeTypeValue"
/>
+ </para>
- </listitem>
- <listitem>
- <para>
- From an XML document. Refer to <xref
linkend="exam-Reference_Guide-Node_type_registration-Runtime_Registration_From_XML_File"
/>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ From an XML document. Refer to <xref
linkend="exam-Reference_Guide-Node_type_registration-Runtime_Registration_From_XML_File"
/>.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <section
id="sect-Reference_Guide-NodeType_Registration-Interfaces_and_methods">
- <title>Interfaces and methods</title>
- <section
id="sect-Reference_Guide-Interfaces_and_methods-ExtendedNodeTypeManager">
- <title><literal>ExtendedNodeTypeManager</literal></title>
- <para>
- The <literal>ExtendedNodeTypeManager</literal> (from JCR 1.11) interface
provides the following methods related to registering node types:
- </para>
-
+ </itemizedlist>
+ <section
id="sect-Reference_Guide-NodeType_Registration-Interfaces_and_methods">
+ <title>Interfaces and methods</title>
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-ExtendedNodeTypeManager">
+
<title><literal>ExtendedNodeTypeManager</literal></title>
+ <para>
+ The <literal>ExtendedNodeTypeManager</literal> (from JCR
1.11) interface provides the following methods related to registering node types:
+ </para>
+
<programlisting language="Java" role="Java">public static final
int IGNORE_IF_EXISTS = 0;
public static final int FAIL_IF_EXISTS = 2;
@@ -78,14 +78,14 @@
NoSuchNodeTypeException,
RepositoryException;</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-NodeTypeValue">
- <title><literal>NodeTypeValue</literal></title>
- <para>
- The NodeTypeValue interface represents a simple container structure used to define
node types which are then registered through the ExtendedNodeTypeManager.registerNodeType
method. The implementation of this interface does not contain any validation logic.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-NodeTypeValue">
+ <title><literal>NodeTypeValue</literal></title>
+ <para>
+ The NodeTypeValue interface represents a simple container structure used
to define node types which are then registered through the
ExtendedNodeTypeManager.registerNodeType method. The implementation of this interface does
not contain any validation logic.
+ </para>
+
<programlisting language="Java" role="Java">/**
* @return Returns the declaredSupertypeNames.
*/
@@ -163,14 +163,14 @@
*/
public void
setDeclaredPropertyDefinitionValues(List<PropertyDefinitionValue>
declaredPropertyDefinitionValues);</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-NodeDefinitionValue">
- <title><literal>NodeDefinitionValue</literal></title>
- <para>
- The <literal>NodeDefinitionValue</literal> interface extends
<literal>ItemDefinitionValue</literal> with the addition of writing methods,
enabling the characteristics of a child node definition to be set, after that the
<literal>NodeDefinitionValue</literal> is added to a
<literal>NodeTypeValue</literal>.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-NodeDefinitionValue">
+
<title><literal>NodeDefinitionValue</literal></title>
+ <para>
+ The <literal>NodeDefinitionValue</literal> interface extends
<literal>ItemDefinitionValue</literal> with the addition of writing methods,
enabling the characteristics of a child node definition to be set, after that the
<literal>NodeDefinitionValue</literal> is added to a
<literal>NodeTypeValue</literal>.
+ </para>
+
<programlisting language="Java" role="Java">/**
* @return Returns the declaredSupertypeNames.
*/
@@ -250,16 +250,16 @@
</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-PropertyDefinitionValue">
- <title><literal>PropertyDefinitionValue</literal></title>
- <para>
- The <literal>PropertyDefinitionValue</literal> interface extends
<literal>ItemDefinitionValue</literal> with the addition of writing methods,
enabling the characteristics of a child property definition to be set, after that the
<literal>PropertyDefinitionValue</literal> is added to a
<literal>NodeTypeValue</literal>.
- </para>
- <example
id="exam-Reference_Guide-PropertyDefinitionValue-PropertyDefinitionValue">
- <title><literal>PropertyDefinitionValue</literal></title>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-PropertyDefinitionValue">
+
<title><literal>PropertyDefinitionValue</literal></title>
+ <para>
+ The <literal>PropertyDefinitionValue</literal> interface
extends <literal>ItemDefinitionValue</literal> with the addition of writing
methods, enabling the characteristics of a child property definition to be set, after that
the <literal>PropertyDefinitionValue</literal> is added to a
<literal>NodeTypeValue</literal>.
+ </para>
+ <example
id="exam-Reference_Guide-PropertyDefinitionValue-PropertyDefinitionValue">
+
<title><literal>PropertyDefinitionValue</literal></title>
+
<programlisting language="Java" role="Java">/**
* @return Returns the defaultValues.
*/
@@ -300,10 +300,10 @@
*/
public void setValueConstraints(List<String>
valueConstraints);</programlisting>
- </example>
- <example
id="exam-Reference_Guide-PropertyDefinitionValue-ItemDefinitionValue">
- <title><literal>ItemDefinitionValue</literal></title>
-
+ </example>
+ <example
id="exam-Reference_Guide-PropertyDefinitionValue-ItemDefinitionValue">
+
<title><literal>ItemDefinitionValue</literal></title>
+
<programlisting language="Java" role="Java"> /**
* @return Returns the autoCreate.
*/
@@ -354,27 +354,27 @@
*/
public void setReadOnly(boolean readOnly);</programlisting>
- </example>
+ </example>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Node_type_registration">
- <title>Node type registration</title>
- <para>
- The eXo JCR implementation supports various methods of the node-type registration.
- </para>
- <example
id="exam-Reference_Guide-Node_type_registration-Runtime_Registration_From_XML_File">
- <title>Runtime Registration From XML File</title>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Node_type_registration">
+ <title>Node type registration</title>
+ <para>
+ The eXo JCR implementation supports various methods of the node-type
registration.
+ </para>
+ <example
id="exam-Reference_Guide-Node_type_registration-Runtime_Registration_From_XML_File">
+ <title>Runtime Registration From XML File</title>
+
<programlisting language="Java"
role="Java">ExtendedNodeTypeManager nodeTypeManager =
(ExtendedNodeTypeManager) session.getWorkspace()
.getNodeTypeManager();
InputStream is = MyClass.class.getResourceAsStream("mynodetypes.xml");
nodeTypeManager.registerNodeTypes(is,ExtendedNodeTypeManager.IGNORE_IF_EXISTS
);</programlisting>
- </example>
- <example
id="exam-Reference_Guide-Node_type_registration-Run_time_registration_using_NodeTypeValue">
- <title>Run time registration using NodeTypeValue</title>
-
+ </example>
+ <example
id="exam-Reference_Guide-Node_type_registration-Run_time_registration_using_NodeTypeValue">
+ <title>Run time registration using NodeTypeValue</title>
+
<programlisting language="Java"
role="Java">ExtendedNodeTypeManager nodeTypeManager =
(ExtendedNodeTypeManager) session.getWorkspace()
.getNodeTypeManager();
NodeTypeValue testNValue = new NodeTypeValue();
@@ -398,37 +398,39 @@
nodeTypeManager.registerNodeType(testNValue,
ExtendedNodeTypeManager.FAIL_IF_EXISTS);</programlisting>
- </example>
+ </example>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Changing_Existing_Node_Type">
- <title>Changing Existing Node Type</title>
- <para>
- To replace an existing node type definition pass
<literal>ExtendedNodeTypeManager.REPLACE_IF_EXISTS</literal> as a second
parameter for the method
<literal>ExtendedNodeTypeManager.registerNodeType</literal>.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Changing_Existing_Node_Type">
+ <title>Changing Existing Node Type</title>
+ <para>
+ To replace an existing node type definition pass
<literal>ExtendedNodeTypeManager.REPLACE_IF_EXISTS</literal> as a second
parameter for the method
<literal>ExtendedNodeTypeManager.registerNodeType</literal>.
+ </para>
+
<programlisting language="Java"
role="Java">ExtendedNodeTypeManager nodeTypeManager =
(ExtendedNodeTypeManager) session.getWorkspace()
.getNodeTypeManager();
InputStream is = MyClass.class.getResourceAsStream("mynodetypes.xml");
.....
nodeTypeManager.registerNodeTypes(is,ExtendedNodeTypeManager.REPLACE_IF_EXISTS
);</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Removing_node_type">
- <title>Removing node type</title>
- <para>
- A node type cannot be removed if the repository contains an instance of that node
type.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Removing_node_type">
+ <title>Removing node type</title>
+ <para>
+ A node type cannot be removed if the repository contains an instance of
that node type.
+ </para>
+
<programlisting language="Java"
role="Java">nodeTypeManager.unregisterNodeType(<literal>myNodeType</literal>);</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Adding_New_PropertyDefinition">
- <title>Adding New
<literal>PropertyDefinition</literal></title>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Adding_New_PropertyDefinition">
+ <title>Adding New
<literal>PropertyDefinition</literal></title>
+ <para>
+ Use the code below to add a new
<literal>PropertyDefinition</literal>:
+ </para>
<programlisting language="Java" role="Java">
NodeTypeValue myNodeTypeValue = nodeTypeManager.getNodeTypeValue(myNodeTypeName);
List<PropertyDefinitionValue> props = new
ArrayList<PropertyDefinitionValue>();
@@ -445,14 +447,14 @@
nodeTypeManager.registerNodeType(myNodeTypeValue,
ExtendedNodeTypeManager.REPLACE_IF_EXISTS);</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Adding_New_Child_NodeDefinition">
- <title>Adding New Child
<literal>NodeDefinition</literal></title>
- <para>
- Use the code below to add a new child <literal>NodeDefinition</literal>.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Adding_New_Child_NodeDefinition">
+ <title>Adding New Child
<literal>NodeDefinition</literal></title>
+ <para>
+ Use the code below to add a new child
<literal>NodeDefinition</literal>.
+ </para>
+
<programlisting language="Java" role="Java">NodeTypeValue
myNodeTypeValue = nodeTypeManager.getNodeTypeValue(myNodeTypeName);
List<NodeDefinitionValue> nodes = new
ArrayList<NodeDefinitionValue>();
@@ -468,72 +470,72 @@
nodeTypeManager.registerNodeType(myNodeTypeValue,
ExtendedNodeTypeManager.REPLACE_IF_EXISTS);</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Edit_Existing_PropertyDefinition_or_Child_NodeDefinition">
- <title>Edit Existing <literal>PropertyDefinition</literal> or Child
<literal>NodeDefinition</literal></title>
- <para>
- Note that the existing data must be consistent before changing or removing a existing
definition.
- </para>
- <para>
- The JCR does not allow you to change the node type in any way in which the existing
data would be incompatible with the new node type.
- </para>
- <para>
- But if these changes are necessary, an incremental process (which consistently
changes the node type and the existing data) can achieve node type changes that would not
be possible in a direct call.
- </para>
- <para>
- For example: If you wanted to add a new residual property definition called
<literal>downloadCount</literal> to the existing node type
<literal>myNodeType</literal>, you would encounter two limitations that would
not allow you to execute the task with a single call of registerNodeType method.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Existing nodes of the type <literal>myNodeType</literal>, which does
not contain properties <literal>downloadCount</literal> that conflicts with
node type what we need.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Edit_Existing_PropertyDefinition_or_Child_NodeDefinition">
+ <title>Edit Existing <literal>PropertyDefinition</literal>
or Child <literal>NodeDefinition</literal></title>
+ <para>
+ Note that the existing data must be consistent before changing or
removing a existing definition.
+ </para>
+ <para>
+ The JCR does not allow you to change the node type in any way in which
the existing data would be incompatible with the new node type.
+ </para>
+ <para>
+ But if these changes are necessary, an incremental process (which
consistently changes the node type and the existing data) can achieve node type changes
that would not be possible in a direct call.
+ </para>
+ <para>
+ For example: If you wanted to add a new residual property definition
called <literal>downloadCount</literal> to the existing node type
<literal>myNodeType</literal>, you would encounter two limitations that would
not allow you to execute the task with a single call of registerNodeType method.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Existing nodes of the type
<literal>myNodeType</literal>, which does not contain properties
<literal>downloadCount</literal> that conflicts with node type what we need.
+ </para>
- </listitem>
- <listitem>
- <para>
- Registered node type <literal>myNodeType</literal> will not allow us to
add properties <literal>downloadCount</literal> because it has no such
specific properties.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Registered node type <literal>myNodeType</literal>
will not allow us to add properties <literal>downloadCount</literal> because
it has no such specific properties.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- The task could be executed, however, with the following steps:
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Change the existing node type <literal>myNodeType</literal> by adding
the mandatory property <literal>downloadCount</literal>.
- </para>
+ </itemizedlist>
+ <para>
+ The task could be executed, however, with the following steps:
+ </para>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Change the existing node type
<literal>myNodeType</literal> by adding the mandatory property
<literal>downloadCount</literal>.
+ </para>
- </step>
- <step>
- <para>
- Add the node type <literal>myNodeType</literal> with the property
<literal>downloadCount</literal> to all the existing node types.
- </para>
+ </step>
+ <step>
+ <para>
+ Add the node type <literal>myNodeType</literal> with
the property <literal>downloadCount</literal> to all the existing node types.
+ </para>
- </step>
- <step>
- <para>
- Change the definition of the property <literal>downloadCount</literal>
of the node type <literal>myNodeType</literal> to mandatory.
- </para>
+ </step>
+ <step>
+ <para>
+ Change the definition of the property
<literal>downloadCount</literal> of the node type
<literal>myNodeType</literal> to mandatory.
+ </para>
- </step>
+ </step>
- </procedure>
-
+ </procedure>
+
- </section>
-
- <section
id="sect-Reference_Guide-Interfaces_and_methods-Changing_The_List_of_Super_Types">
- <title>Changing The List of Super Types</title>
- <para>
- Use the following code to change the list of super types:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Interfaces_and_methods-Changing_The_List_of_Super_Types">
+ <title>Changing The List of Super Types</title>
+ <para>
+ Use the following code to change the list of super types:
+ </para>
+
<programlisting language="Java" role="Java">NodeTypeValue
testNValue = nodeTypeManager.getNodeTypeValue("exo:myNodeType");
List<String> superType = testNValue.getDeclaredSupertypeNames();
@@ -542,11 +544,11 @@
nodeTypeManager.registerNodeType(testNValue,
ExtendedNodeTypeManager.REPLACE_IF_EXISTS);</programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/jbosscache-configuration-templates.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/jbosscache-configuration-templates.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/jbosscache-configuration-templates.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -82,18 +82,13 @@
<section
id="sect-Reference_Guide-JBoss_Cache_configuration-Shipped_JBoss_Cache_configuration_templates">
<title>Shipped JBoss Cache configuration templates</title>
<para>
- The eXo JCR implementation is shipped with ready-to-use JBoss Cache
configuration templates for JCR's components. They are located in an application
package in the <filename>/conf/portal/</filename> directory.
+ The eXo JCR implementation is shipped with ready-to-use JBoss Cache
configuration templates for JCR's components. They are located in
<filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/jbosscache</filename>
directory, inside either the <filename>cluster</filename> or
<filename>local</filename> directory.
</para>
<section
id="sect-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Data_container_template">
<title>Data container template</title>
<para>
- The data container template is
<filename>jbosscache-data.xml</filename>:
+ The data container template is
<filename>config.xml</filename>:
</para>
- <programlistingco>
- <areaspec>
- <area coords="7"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Data_container_template-jbosscache-cluster-name"
/>
-
- </areaspec>
<programlisting language="XML" role="XML"><?xml
version="1.0" encoding="UTF-8"?>
<jbosscache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:jboss:jbosscache-core:config:3.1">
@@ -117,42 +112,14 @@
</default>
</eviction>
</jbosscache></programlisting>
- <calloutlist
id="call-Reference_Guide-Data_container_template-Template_variables">
- <title>Template variables</title>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Data_container_template-jbosscache-cluster-name">
- <para>
-
<replaceable>jbosscache-cluster-name</replaceable>.
- </para>
- </callout>
-
- </calloutlist>
-
- </programlistingco>
-
-
</section>
<section
id="sect-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template">
<title>Lock manager template</title>
<para>
- The lock manager template is
<filename>jbosscache-lock.xml</filename>:
+ The lock manager template is
<filename>lock-config.xml</filename>:
</para>
- <programlistingco>
- <areaspec>
- <area coords="6"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cluster-name"
/>
- <area coords="18"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.name"
/>
- <area coords="19"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.create"
/>
- <area coords="20"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.drop"
/>
- <area coords="21"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.primarykey"
/>
- <area coords="22"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.fqn.column"
/>
- <area coords="23"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.fqn.type"
/>
- <area coords="24"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.node.column"
/>
- <area coords="25"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.node.type"
/>
- <area coords="26"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.parent.column"
/>
- <area coords="27"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.datasource"
/>
-
- </areaspec>
<programlisting language="XML" role="XML"><?xml
version="1.0" encoding="UTF-8"?>
<jbosscache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:jboss:jbosscache-core:config:3.1">
@@ -185,92 +152,15 @@
</loader>
</loaders>
</jbosscache></programlisting>
- <calloutlist
id="call-Reference_Guide-Lock_manager_template-Template_variables">
- <title>Template variables</title>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cluster-name">
- <para>
-
<replaceable>jbosscache-cluster-name</replaceable>
- </para>
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.name">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.table.name</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.create">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.table.create</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.drop">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.table.drop</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.table.primarykey">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.table.primarykey</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.fqn.column">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.fqn.column</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.fqn.type">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.fqn.type</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.node.column">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.node.column</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.node.type">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.node.type</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.parent.column">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.parent.column</replaceable>
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Lock_manager_template-jbosscache-cl-cache.jdbc.datasource">
- <para>
-
<replaceable>jbosscache-cl-cache.jdbc.datasource</replaceable>
- </para>
-
- </callout>
-
- </calloutlist>
-
- </programlistingco>
-
-
</section>
<section
id="sect-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Query_handler_indexer_template">
<title>Query handler (indexer) template</title>
<para>
- The query handler template is called
<filename>jbosscache-indexer.xml</filename>:
+ The query handler template is called
<filename>indexer-config.xml</filename>:
</para>
- <programlistingco>
- <areaspec>
- <area coords="5"
id="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Query_handler_indexer_template-jbosscache-cluster-name"
/>
- </areaspec>
<programlisting language="XML" role="XML"><?xml
version="1.0" encoding="UTF-8"?>
<jbosscache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:jboss:jbosscache-core:config:3.1">
@@ -289,19 +179,8 @@
</default>
</eviction>
</jbosscache></programlisting>
- <calloutlist>
- <callout
arearefs="area-Reference_Guide-Shipped_JBoss_Cache_configuration_templates-Query_handler_indexer_template-jbosscache-cluster-name">
- <para>
-
<replaceable>jbosscache-cluster-name</replaceable>
- </para>
+
- </callout>
-
- </calloutlist>
-
- </programlistingco>
-
-
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/other/jcr-resources.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/other/jcr-resources.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/other/jcr-resources.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,21 +4,18 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-JCR_Resources">
- <title>JCR Resources:</title>
- <para>
- * Java Community Process: <ulink
url="http://jcp.org/en/jsr/detail?id=170">JSR 170 </ulink> and
<ulink
url="http://jcp.org/en/jsr/detail?id=283">JSR 283</ulink>
- </para>
- <para>
- * Tom Wheeler, <ulink
url="http://www.tomwheeler.com/java_content_repository_tomwheeler_20...
Java Content Repository</ulink> (2007)
- </para>
- <para>
- * Roy T. Fielding, <ulink
url="http://www.day.com/content/dam/day/whitepapers/JSR_170_White_Pa...
170 Overview: Standardizing the Content Repository Interface</ulink> (March 13,
2005)
- </para>
- <para>
- * David Nuescheler and Janus Boye, <ulink
url="http://www.cmswatch.com/Feature/123">JSR-170 What's in it for
me?</ulink> (April 20, 2005)
- </para>
- <para>
- * Benjamin Mestrallet, Tuan Nguyen, Gennady Azarenkov, Francois Moron and Brice
Revenant <ulink
url="http://www.theserverside.com/tt/articles/article.tss?l=eXoPlatf...
Platform v2, Portal, JCR, ECM, Groupware and Business Intelligence</ulink> (January
2006)
- </para>
+ <title>JCR Resources:</title>
+ <para>
+ * Java Community Process: <ulink
url="http://jcp.org/en/jsr/detail?id=170">JSR 170 </ulink> and
<ulink
url="http://jcp.org/en/jsr/detail?id=283">JSR 283</ulink>
+ </para>
+ <para>
+ * Roy T. Fielding, <ulink
url="http://www.day.com/content/dam/day/whitepapers/JSR_170_White_Pa...
170 Overview: Standardizing the Content Repository Interface</ulink> (March 13,
2005)
+ </para>
+ <para>
+ * David Nuescheler and Janus Boye, <ulink
url="http://www.cmswatch.com/Feature/123">JSR-170 What's in it for
me?</ulink> (April 20, 2005)
+ </para>
+ <para>
+ * Benjamin Mestrallet, Tuan Nguyen, Gennady Azarenkov, Francois Moron and Brice
Revenant <ulink
url="http://www.theserverside.com/tt/articles/article.tss?l=eXoPlatf...
Platform v2, Portal, JCR, ECM, Groupware and Business Intelligence</ulink> (January
2006)
+ </para>
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/ftp.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/ftp.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/ftp.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,61 +4,61 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-FTP">
- <title>FTP</title>
- <section id="sect-Reference_Guide-FTP-Introduction">
- <title>Introduction</title>
- <para>
- The JCR-FTP Server operates as an FTP server with access to a content stored in JCR
repositories in the form of <literal>nt:file/nt:folder</literal> nodes or
their successors. The client of an executed Server can be any FTP client. The FTP server
is supported by a standard configuration which can be changed as required.
- </para>
+ <title>FTP</title>
+ <section id="sect-Reference_Guide-FTP-Introduction">
+ <title>Introduction</title>
+ <para>
+ The JCR-FTP Server operates as an FTP server with access to a content stored
in JCR repositories in the form of <literal>nt:file/nt:folder</literal> nodes
or their successors. The client of an executed Server can be any FTP client. The FTP
server is supported by a standard configuration which can be changed as required.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-FTP-Configuration_Parameters">
- <title>Configuration Parameters</title>
- <variablelist
id="vari-Reference_Guide-Configuration_Parameters-Parameters">
- <title>Parameters</title>
- <varlistentry>
- <term>command-port:</term>
- <listitem>
-
+ </section>
+
+ <section id="sect-Reference_Guide-FTP-Configuration_Parameters">
+ <title>Configuration Parameters</title>
+ <variablelist
id="vari-Reference_Guide-Configuration_Parameters-Parameters">
+ <title>Parameters</title>
+ <varlistentry>
+ <term>command-port:</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>command-port</name>
<value>21</value>
</value-param></programlisting>
- <para>
- The value of the command channel port. The value
'<literal>21</literal>' is default.
- </para>
- <para>
- If you have already other FTP server installed in your system, this parameter needs
to be changed (to <literal>2121</literal>, for example) to avoid conflicts or
if the port is protected.
- </para>
+ <para>
+ The value of the command channel port. The value
'<literal>21</literal>' is default.
+ </para>
+ <para>
+ If you have already other FTP server installed in your system,
this parameter needs to be changed (to <literal>2121</literal>, for example)
to avoid conflicts or if the port is protected.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>data-min-port & data-max-port</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>data-min-port and data-max-port</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>data-min-port</name>
<value>52000</value>
</value-param></programlisting>
-
+
<programlisting language="XML"
role="XML"><value-param>
<name>data-max-port</name>
<value>53000</value>
</value-param></programlisting>
- <para>
- These two parameters indicate the minimum and maximum values of the range of ports,
used by the server. The usage of the additional data channel is required by the FTP
protocol, which is used to transfer the contents of files and the listing of catalogues.
This range of ports should be free from listening by other server-programs.
- </para>
+ <para>
+ These two parameters indicate the minimum and maximum values of
the range of ports, used by the server. The usage of the additional data channel is
required by the FTP protocol, which is used to transfer the contents of files and the
listing of catalogues. This range of ports should be free from listening by other
server-programs.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>system</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>system</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>system</name>
@@ -66,17 +66,17 @@
or
<value>UNIX Type: L8</value>
</value-param></programlisting>
- <para>
- Types of formats of listing of catalogues which are supported.
- </para>
+ <para>
+ Types of formats of listing of catalogues which are supported.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>client-side-encoding</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>client-side-encoding</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>client-side-encoding</name>
@@ -85,123 +85,123 @@
<value>KOI8-R</value>
</value-param></programlisting>
- <para>
- This parameter specifies the coding which is used for dialogue with the client.
- </para>
+ <para>
+ This parameter specifies the coding which is used for dialogue
with the client.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>def-folder-node-type</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>def-folder-node-type</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>def-folder-node-type</name>
<value>nt:folder</value>
</value-param></programlisting>
- <para>
- This parameter specifies the type of a node, when an FTP-folder is created.
- </para>
+ <para>
+ This parameter specifies the type of a node, when an FTP-folder
is created.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>def-file-node-type</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>def-file-node-type</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>def-file-node-type</name>
<value>nt:file</value>
</value-param></programlisting>
- <para>
- This parameter specifies the type of a node, when an FTP-file is created.
- </para>
+ <para>
+ This parameter specifies the type of a node, when an FTP-file is
created.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>def-file-mime-type</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>def-file-mime-type</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>def-file-mime-type</name>
<value>application/zip</value>
</value-param></programlisting>
- <para>
- The mime type of a created file is chosen by using its file extention. In case, a
server cannot find the corresponding mime type, this value is used.
- </para>
+ <para>
+ The mime type of a created file is chosen by using its file
extention. In case, a server cannot find the corresponding mime type, this value is used.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>cache-folder-name</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>cache-folder-name</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>cache-folder-name</name>
<value>../temp/ftp_cache</value>
</value-param></programlisting>
- <para>
- The Path of the cache folder.
- </para>
+ <para>
+ The Path of the cache folder.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>upload-speed-limit</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>upload-speed-limit</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>upload-speed-limit</name>
<value>20480</value>
</value-param></programlisting>
- <para>
- Restriction of the upload speed. It is measured in bytes.
- </para>
+ <para>
+ Restriction of the upload speed. It is measured in bytes.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>download-speed-limit</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>download-speed-limit</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>download-speed-limit</name>
<value>20480</value>
</value-param></programlisting>
- <para>
- Restriction of the download speed. It is measured in bytes.
- </para>
+ <para>
+ Restriction of the download speed. It is measured in bytes.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>timeout</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>timeout</term>
+ <listitem>
+
<programlisting language="XML"
role="XML"><value-param>
<name>timeout</name>
<value>60</value>
</value-param></programlisting>
- <para>
- Defines the value of a timeout.
- </para>
+ <para>
+ Defines the value of a timeout.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
+ </section>
+
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/query-handler-config.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/query-handler-config.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/query-handler-config.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,50 +4,50 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-QueryHandler_configuration">
- <title>QueryHandler configuration</title>
- <section
id="sect-Reference_Guide-QueryHandler_configuration-Indexing_in_clustered_environment">
- <title>Indexing in clustered environment</title>
- <para>
- JCR offers indexing strategies for clustered environments using the advantages of
running in a single JVM or doing the best to use all resources available in cluster. JCR
uses Lucene library as underlying search and indexing engine, but it has several
limitations that greatly reduce possibilities and limits the usage of cluster advantages.
That's why eXo JCR offers two strategies that are suitable for it's own usecases.
They are clustered with shared index and clustered with local indexes. Each one has
it's pros and cons.
- </para>
- <para>
- Clustered implementation with local indexes combines in-memory buffer index directory
with delayed file-system flushing. This index is called "Volatile" and it is
invoked in searches also. Within some conditions volatile index is flushed to the
persistent storage (file system) as new index directory. This allows to achieve great
results for write operations.
- </para>
- <mediaobject>
- <imageobject>
- <imagedata align="center"
fileref="images/eXoJCR/diagram-local-index.png" width="444" />
- </imageobject>
+ <title>QueryHandler configuration</title>
+ <section
id="sect-Reference_Guide-QueryHandler_configuration-Indexing_in_clustered_environment">
+ <title>Indexing in clustered environment</title>
+ <para>
+ JCR offers indexing strategies for clustered environments using the
advantages of running in a single JVM or doing the best to use all resources available in
cluster. JCR uses Lucene library as underlying search and indexing engine, but it has
several limitations that greatly reduce possibilities and limits the usage of cluster
advantages. That's why eXo JCR offers two strategies that are suitable for it's
own usecases. They are clustered with shared index and clustered with local indexes. Each
one has it's pros and cons.
+ </para>
+ <para>
+ Clustered implementation with local indexes combines in-memory buffer index
directory with delayed file-system flushing. This index is called "Volatile" and
it is invoked in searches also. Within some conditions volatile index is flushed to the
persistent storage (file system) as new index directory. This allows to achieve great
results for write operations.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
fileref="images/eXoJCR/diagram-local-index.png" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- As this implementation designed for clustered environment it has additional mechanisms
for data delivery within cluster. Actual text extraction jobs done on the same node that
does content operations (i.e. write operation). Prepared "documents" (Lucene
term that means block of data ready for indexing) are replicated withing cluster nodes and
processed by local indexes. So each cluster instance has the same index content. When new
node joins the cluster it has no initial index, so it must be created. There are some
supported ways of doing this operation. The simplest is to simply copy the index manually
but this is not intended for use. If no initial index found JCR uses automated sceneries.
They are controlled via configuration (see "index-recovery-mode" parameter)
offering full re-indexing from database or copying from another cluster node.
- </para>
- <para>
- For some reasons having a multiple index copies on each instance can be costly. So
shared index can be used instead (see diagram below).
- </para>
- <mediaobject>
- <imageobject>
- <imagedata align="center"
fileref="images/eXoJCR/diagram-shared-index.png" width="444" />
- </imageobject>
+ </mediaobject>
+ <para>
+ As this implementation designed for clustered environment it has additional
mechanisms for data delivery within cluster. Actual text extraction jobs done on the same
node that does content operations (i.e. write operation). Prepared "documents"
(Lucene term that means block of data ready for indexing) are replicated withing cluster
nodes and processed by local indexes. So each cluster instance has the same index content.
When new node joins the cluster it has no initial index, so it must be created. There are
some supported ways of doing this operation. The simplest is to simply copy the index
manually but this is not intended for use. If no initial index found JCR uses automated
sceneries. They are controlled via configuration (see "index-recovery-mode"
parameter) offering full re-indexing from database or copying from another cluster node.
+ </para>
+ <para>
+ For some reasons having a multiple index copies on each instance can be
costly. So shared index can be used instead (see diagram below).
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
fileref="images/eXoJCR/diagram-shared-index.png" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- This indexing strategy combines advantages of in-memory index along with shared
persistent index offering "near" real time search capabilities. This means that
newly added content is accessible via search practically immediately. This strategy allows
nodes to index data in their own volatile (in-memory) indexes, but persistent indexes are
managed by single "coordinator" node only. Each cluster instance has a read
access for shared index to perform queries combining search results found in own in-memory
index also. Take in account that shared folder must be configured in your system
environment (i.e. mounted NFS folder). But this strategy in some extremely rare cases can
have a bit different volatile indexes within cluster instances for a while. In a few
seconds they will be up2date.
- </para>
- <para>
- See more about <xref linkend="chap-Reference_Guide-Search_Configuration"
/> .
- </para>
+ </mediaobject>
+ <para>
+ This indexing strategy combines advantages of in-memory index along with
shared persistent index offering "near" real time search capabilities. This
means that newly added content is accessible via search practically immediately. This
strategy allows nodes to index data in their own volatile (in-memory) indexes, but
persistent indexes are managed by single "coordinator" node only. Each cluster
instance has a read access for shared index to perform queries combining search results
found in own in-memory index also. Take in account that shared folder must be configured
in your system environment (i.e. mounted NFS folder). But this strategy in some extremely
rare cases can have a bit different volatile indexes within cluster instances for a while.
In a few seconds they will be up2date.
+ </para>
+ <para>
+ See more about <xref
linkend="chap-Reference_Guide-Search_Configuration" /> .
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-QueryHandler_configuration-Configuration">
- <title>Configuration</title>
- <section
id="sect-Reference_Guide-Configuration-Query_handler_configuration_overview">
- <title>Query-handler configuration overview</title>
- <para>
- Configuration example:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-QueryHandler_configuration-Configuration">
+ <title>Configuration</title>
+ <section
id="sect-Reference_Guide-Configuration-Query_handler_configuration_overview">
+ <title>Query-handler configuration overview</title>
+ <para>
+ Configuration example:
+ </para>
+
<programlisting language="XML" role="XML"><workspace
name="ws">
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
@@ -67,195 +67,195 @@
</query-handler>
</workspace>
</programlisting>
- <table
id="tabl-Reference_Guide-Query_handler_configuration_overview-Configuration_properties">
- <title>Configuration properties</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- Property name
- </entry>
- <entry>
- Description
- </entry>
+ <table
id="tabl-Reference_Guide-Query_handler_configuration_overview-Configuration_properties">
+ <title>Configuration properties</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ Property name
+ </entry>
+ <entry>
+ Description
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- index-dir
- </entry>
- <entry>
- path to index
- </entry>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ index-dir
+ </entry>
+ <entry>
+ path to index
+ </entry>
- </row>
- <row>
- <entry>
- changesfilter-class
- </entry>
- <entry>
- template of JBoss-cache configuration for all query-handlers in repository
- </entry>
+ </row>
+ <row>
+ <entry>
+ changesfilter-class
+ </entry>
+ <entry>
+ template of JBoss-cache configuration for all
query-handlers in repository
+ </entry>
- </row>
- <row>
- <entry>
- jbosscache-configuration
- </entry>
- <entry>
- template of JBoss-cache configuration for all query-handlers in repository
- </entry>
+ </row>
+ <row>
+ <entry>
+ jbosscache-configuration
+ </entry>
+ <entry>
+ template of JBoss-cache configuration for all
query-handlers in repository
+ </entry>
- </row>
- <row>
- <entry>
- jgroups-configuration
- </entry>
- <entry>
- jgroups-configuration is template configuration for all components (search,
cache, locks) [Add link to document describing template configurations]
- </entry>
+ </row>
+ <row>
+ <entry>
+ jgroups-configuration
+ </entry>
+ <entry>
+ jgroups-configuration is template configuration for all
components (search, cache, locks) [Add link to document describing template
configurations]
+ </entry>
- </row>
- <row>
- <entry>
- jgroups-multiplexer-stack
- </entry>
- <entry>
- [TODO about jgroups-multiplexer-stack - add link to JBoss doc]
- </entry>
+ </row>
+ <row>
+ <entry>
+ jgroups-multiplexer-stack
+ </entry>
+ <entry>
+ [TODO about jgroups-multiplexer-stack - add link to JBoss
doc]
+ </entry>
- </row>
- <row>
- <entry>
- jbosscache-cluster-name
- </entry>
- <entry>
- cluster name (must be unique)
- </entry>
+ </row>
+ <row>
+ <entry>
+ jbosscache-cluster-name
+ </entry>
+ <entry>
+ cluster name (must be unique)
+ </entry>
- </row>
- <row>
- <entry>
- max-volatile-time
- </entry>
- <entry>
- max time to live for Volatile Index
- </entry>
+ </row>
+ <row>
+ <entry>
+ max-volatile-time
+ </entry>
+ <entry>
+ max time to live for Volatile Index
+ </entry>
- </row>
- <row>
- <entry>
- rdbms-reindexing
- </entry>
- <entry>
- indicate that need to use rdbms reindexing mechanism if possible, the default
value is true
- </entry>
+ </row>
+ <row>
+ <entry>
+ rdbms-reindexing
+ </entry>
+ <entry>
+ indicate that need to use rdbms reindexing mechanism if
possible, the default value is true
+ </entry>
- </row>
- <row>
- <entry>
- reindexing-page-size
- </entry>
- <entry>
- maximum amount of nodes which can be retrieved from storage for re-indexing
purpose, the default value is 100
- </entry>
+ </row>
+ <row>
+ <entry>
+ reindexing-page-size
+ </entry>
+ <entry>
+ maximum amount of nodes which can be retrieved from
storage for re-indexing purpose, the default value is 100
+ </entry>
- </row>
- <row>
- <entry>
- index-recovery-mode
- </entry>
- <entry>
- If the parameter has been set to <command>from-indexing</command>, so
a full indexing will be automatically launched (default behavior), if the parameter has
been set to <command>from-coordinator</command>, the index will be retrieved
from coordinator
- </entry>
+ </row>
+ <row>
+ <entry>
+ index-recovery-mode
+ </entry>
+ <entry>
+ If the parameter has been set to
<command>from-indexing</command>, so a full indexing will be automatically
launched (default behavior), if the parameter has been set to
<command>from-coordinator</command>, the index will be retrieved from
coordinator
+ </entry>
- </row>
- <row>
- <entry>
- index-recovery-filter
- </entry>
- <entry>
- Defines implementation class or classes of RecoveryFilters, the mechanism of
index synchronization for Local Index strategy.
- </entry>
+ </row>
+ <row>
+ <entry>
+ index-recovery-filter
+ </entry>
+ <entry>
+ Defines implementation class or classes of
RecoveryFilters, the mechanism of index synchronization for Local Index strategy.
+ </entry>
- </row>
- <row>
- <entry>
- async-reindexing
- </entry>
- <entry>
- Controls the process of re-indexing on JCR's startup. If this flag is set,
indexing will be launched asynchronously, without blocking the JCR. Default is
"<literal>false</literal>".
- </entry>
+ </row>
+ <row>
+ <entry>
+ async-reindexing
+ </entry>
+ <entry>
+ Controls the process of re-indexing on JCR's startup.
If this flag is set, indexing will be launched asynchronously, without blocking the JCR.
Default is "<literal>false</literal>".
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <formalpara
id="form-Reference_Guide-Query_handler_configuration_overview-Improving_Query_Performance_With_postgreSQL_and_rdbms_reindexing">
- <title>Improving Query Performance With
<literal>postgreSQL</literal> and
<parameter>rdbms-reindexing</parameter></title>
- <para>
- If you use <literal>postgreSQL</literal> and
<parameter>rdbms-reindexing</parameter> is set to
<literal>true</literal>, the performance of the queries used while indexing
can be improved by:
- </para>
+ </table>
+ <formalpara
id="form-Reference_Guide-Query_handler_configuration_overview-Improving_Query_Performance_With_postgreSQL_and_rdbms_reindexing">
+ <title>Improving Query Performance With
<literal>postgreSQL</literal> and
<parameter>rdbms-reindexing</parameter></title>
+ <para>
+ If you use <literal>postgreSQL</literal> and
<parameter>rdbms-reindexing</parameter> is set to
<literal>true</literal>, the performance of the queries used while indexing
can be improved by:
+ </para>
- </formalpara>
- <procedure>
- <title></title>
- <step>
- <para>
- Set the parameter "<parameter>enable_seqscan</parameter>" to
"<literal>off</literal>"
- </para>
- <para>
- <emphasis role="bold">OR</emphasis>
- </para>
- <para>
- Set "<parameter>default_statistics_target</parameter>" to at
least "<literal>50</literal>".
- </para>
+ </formalpara>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Set the parameter
"<parameter>enable_seqscan</parameter>" to
"<literal>off</literal>"
+ </para>
+ <para>
+ <emphasis role="bold">OR</emphasis>
+ </para>
+ <para>
+ Set
"<parameter>default_statistics_target</parameter>" to at least
"<literal>50</literal>".
+ </para>
- </step>
- <step>
- <para>
- Restart DB server and make analyze of the JCR_SVALUE (or JCR_MVALUE) table.
- </para>
+ </step>
+ <step>
+ <para>
+ Restart DB server and make analyze of the JCR_SVALUE (or
JCR_MVALUE) table.
+ </para>
- </step>
+ </step>
- </procedure>
-
- <formalpara
id="form-Reference_Guide-Query_handler_configuration_overview-Improving_Query_Performance_With_DB2_and_rdbms_reindexing">
- <title>Improving Query Performance With <literal>DB2</literal> and
<parameter>rdbms-reindexing</parameter></title>
- <para>
- If you use <literal>DB2</literal> and
<parameter>rdbms-reindexing</parameter> is set to
<literal>true</literal>, the performance of the queries used while indexing
can be improved by:
- </para>
+ </procedure>
+
+ <formalpara
id="form-Reference_Guide-Query_handler_configuration_overview-Improving_Query_Performance_With_DB2_and_rdbms_reindexing">
+ <title>Improving Query Performance With
<literal>DB2</literal> and
<parameter>rdbms-reindexing</parameter></title>
+ <para>
+ If you use <literal>DB2</literal> and
<parameter>rdbms-reindexing</parameter> is set to
<literal>true</literal>, the performance of the queries used while indexing
can be improved by:
+ </para>
- </formalpara>
- <procedure>
- <title></title>
- <step>
- <para>
- Make statistics on tables by running the following for
<literal>JCR_SITEM</literal> (or <literal>JCR_MITEM</literal>) and
<literal>JCR_SVALUE</literal> (or <literal>JCR_MVALUE</literal>)
tables:
- </para>
-
+ </formalpara>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Make statistics on tables by running the following for
<literal>JCR_SITEM</literal> (or <literal>JCR_MITEM</literal>) and
<literal>JCR_SVALUE</literal> (or <literal>JCR_MVALUE</literal>)
tables:
+ </para>
+
<programlisting><code>RUNSTATS ON TABLE
<scheme>.<table> WITH DISTRIBUTION AND INDEXES
ALL</code></programlisting>
- </step>
+ </step>
- </procedure>
-
+ </procedure>
+
- </section>
-
- <section
id="sect-Reference_Guide-Configuration-Cluster_ready_indexing">
- <title>Cluster-ready indexing</title>
- <para>
- For both cluster-ready implementations JBoss Cache, JGroups and Changes Filter values
must be defined. Shared index requires some kind of remote or shared file system to be
attached in a system (i.e. NFS, SMB or etc). Indexing directory ("indexDir"
value) must point to it. Setting "changesfilter-class" to
"org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
will enable shared index implementation.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Configuration-Cluster_ready_indexing">
+ <title>Cluster-ready indexing</title>
+ <para>
+ For both cluster-ready implementations JBoss Cache, JGroups and Changes
Filter values must be defined. Shared index requires some kind of remote or shared file
system to be attached in a system (i.e. NFS, SMB or etc). Indexing directory
("indexDir" value) must point to it. Setting "changesfilter-class" to
"org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"
will enable shared index implementation.
+ </para>
+
<programlisting language="XML" role="XML"><workspace
name="ws">
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
@@ -273,10 +273,10 @@
</properties>
</query-handler>
</workspace></programlisting>
- <para>
- In order to use cluster-ready strategy based on local indexes, when each node has own
copy of index on local file system, the following configuration must be applied. Indexing
directory must point to any folder on local file system and
"changesfilter-class" must be set to
"org.exoplatform.services.jcr.impl.core.query.jbosscache.LocalIndexChangesFilter".
- </para>
-
+ <para>
+ In order to use cluster-ready strategy based on local indexes, when each
node has own copy of index on local file system, the following configuration must be
applied. Indexing directory must point to any folder on local file system and
"changesfilter-class" must be set to
"org.exoplatform.services.jcr.impl.core.query.jbosscache.LocalIndexChangesFilter".
+ </para>
+
<programlisting language="XML" role="XML"><workspace
name="ws">
<query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
@@ -296,108 +296,108 @@
</workspace>
</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Configuration-Local_Index_Recovery_Filters">
- <title>Local Index Recovery Filters</title>
- <para>
- A common usecase for all cluster-ready applications is a hot joining and leaving of
processing units. All nodes that are joining a cluster for the first time or nodes joining
after some downtime, must be in a synchronized state.
- </para>
- <para>
- When using shared value storages, databases and indexes, cluster nodes are
synchronized at any given time. But is not the case when a local index strategy is used.
- </para>
- <para>
- If a new node joins a cluster, without an index it is retrieved or recreated. Nodes
can be also be restarted and thus the index is not empty. By default, even though the
existing index is thought to be up to date, it can be outdated.
- </para>
- <para>
- The JBoss Enterprise Portal Platform JCR offers a mechanism called
<literal>RecoveryFilters</literal> that will automatically retrieve index for
the joining node on start up. This feature is a set of filters that can be defined via
<literal>QueryHandler</literal> configuration:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Configuration-Local_Index_Recovery_Filters">
+ <title>Local Index Recovery Filters</title>
+ <para>
+ A common usecase for all cluster-ready applications is a hot joining and
leaving of processing units. All nodes that are joining a cluster for the first time or
nodes joining after some downtime, must be in a synchronized state.
+ </para>
+ <para>
+ When using shared value storages, databases and indexes, cluster nodes
are synchronized at any given time. But is not the case when a local index strategy is
used.
+ </para>
+ <para>
+ If a new node joins a cluster, without an index it is retrieved or
recreated. Nodes can be also be restarted and thus the index is not empty. By default,
even though the existing index is thought to be up to date, it can be outdated.
+ </para>
+ <para>
+ The JBoss Enterprise Portal Platform JCR offers a mechanism called
<literal>RecoveryFilters</literal> that will automatically retrieve index for
the joining node on start up. This feature is a set of filters that can be defined via
<literal>QueryHandler</literal> configuration:
+ </para>
+
<programlisting language="XML"><property
name="index-recovery-filter"
value="org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter"
/></programlisting>
- <para>
- Filter numbers are not limited so they can be combined:
- </para>
-
+ <para>
+ Filter numbers are not limited so they can be combined:
+ </para>
+
<programlisting language="XML"><property
name="index-recovery-filter"
value="org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter"
/>
<property name="index-recovery-filter"
value="org.exoplatform.services.jcr.impl.core.query.lucene.SystemPropertyRecoveryFilter"
/>
</programlisting>
- <para>
- If any one returns fires, the index is re-synchronized. This feature uses standard
index recovery mode defined by previously described parameter (can be
"from-indexing" (default) or "from-coordinator")
- </para>
-
+ <para>
+ If any one returns fires, the index is re-synchronized. This feature uses
standard index recovery mode defined by previously described parameter (can be
"from-indexing" (default) or "from-coordinator")
+ </para>
+
<programlisting language="XML"><property
name="index-recovery-mode" value="from-coordinator" />
</programlisting>
- <para>
- There are multiple filter implementations:
- </para>
- <variablelist
id="vari-Reference_Guide-Local_Index_Recovery_Filters-org.exoplatform.services.jcr.impl.core.query.lucene.DummyRecoveryFilter">
- <title>org.exoplatform.services.jcr.impl.core.query.lucene.DummyRecoveryFilter</title>
- <varlistentry>
- <term></term>
- <listitem>
- <para>
- Always returns true, for cases when index must be force resynchronized (recovered)
each time.
- </para>
+ <para>
+ There are multiple filter implementations:
+ </para>
+ <variablelist
id="vari-Reference_Guide-Local_Index_Recovery_Filters-org.exoplatform.services.jcr.impl.core.query.lucene.DummyRecoveryFilter">
+
<title>org.exoplatform.services.jcr.impl.core.query.lucene.DummyRecoveryFilter</title>
+ <varlistentry>
+ <term></term>
+ <listitem>
+ <para>
+ Always returns true, for cases when index must be force
resynchronized (recovered) each time.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>org.exoplatform.services.jcr.impl.core.query.lucene.SystemPropertyRecoveryFilter</term>
- <listitem>
- <para>
- Returns value of system property
"<literal>org.exoplatform.jcr.recoveryfilter.forcereindexing</literal>".
So index recovery can be controlled from the top without changing documentation using
system properties.
- </para>
+ </varlistentry>
+ <varlistentry>
+
<term>org.exoplatform.services.jcr.impl.core.query.lucene.SystemPropertyRecoveryFilter</term>
+ <listitem>
+ <para>
+ Returns value of system property
"<literal>org.exoplatform.jcr.recoveryfilter.forcereindexing</literal>".
So index recovery can be controlled from the top without changing documentation using
system properties.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>org.exoplatform.services.jcr.impl.core.query.lucene.ConfigurationPropertyRecoveryFilter</term>
- <listitem>
- <para>
- Returns value of <literal>QueryHandler</literal> configuration
property "<literal>index-recovery-filter-forcereindexing</literal>".
So index recovery can be controlled from configuration separately for each workspace. For
example:
- </para>
-
+ </varlistentry>
+ <varlistentry>
+
<term>org.exoplatform.services.jcr.impl.core.query.lucene.ConfigurationPropertyRecoveryFilter</term>
+ <listitem>
+ <para>
+ Returns value of <literal>QueryHandler</literal>
configuration property
"<literal>index-recovery-filter-forcereindexing</literal>". So index
recovery can be controlled from configuration separately for each workspace. For example:
+ </para>
+
<programlisting language="XML"><property
name="index-recovery-filter"
value="org.exoplatform.services.jcr.impl.core.query.lucene.ConfigurationPropertyRecoveryFilter"
/>
<property name="index-recovery-filter-forcereindexing"
value="true" />
</programlisting>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter</term>
- <listitem>
- <para>
- Checks the number of documents in index on coordinator side and self-side. It
returns <literal>true</literal> if the count differs.
- </para>
- <para>
- The advantage of this filter compared to others, is that it will skip reindexing
for workspaces where the index was not modified.
- </para>
- <para>
- For example; if there is ten repositories with three workspaces in each and only
one is heavily used in the cluster, this filter will only reindex those workspaces that
have been changed, without affecting other indexes.
- </para>
- <para>
- This greatly reduces start up time.
- </para>
+ </varlistentry>
+ <varlistentry>
+
<term>org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter</term>
+ <listitem>
+ <para>
+ Checks the number of documents in index on coordinator side
and self-side. It returns <literal>true</literal> if the count differs.
+ </para>
+ <para>
+ The advantage of this filter compared to others, is that it
will skip reindexing for workspaces where the index was not modified.
+ </para>
+ <para>
+ For example; if there is ten repositories with three
workspaces in each and only one is heavily used in the cluster, this filter will only
reindex those workspaces that have been changed, without affecting other indexes.
+ </para>
+ <para>
+ This greatly reduces start up time.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
- <section
id="sect-Reference_Guide-Configuration-JBoss_Cache_template_configuration">
- <title>JBoss-Cache template configuration</title>
- <para>
- JBoss-Cache template configuration for query handler is about the same for both
clustered strategies.
- </para>
- <example
id="exam-Reference_Guide-JBoss_Cache_template_configuration-jbosscache_indexer.xml">
- <title>jbosscache-indexer.xml</title>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Configuration-JBoss_Cache_template_configuration">
+ <title>JBoss-Cache template configuration</title>
+ <para>
+ JBoss-Cache template configuration for query handler is about the same
for both clustered strategies.
+ </para>
+ <example
id="exam-Reference_Guide-JBoss_Cache_template_configuration-jbosscache_indexer.xml">
+ <title>jbosscache-indexer.xml</title>
+
<programlisting language="XML" role="XML"><?xml
version="1.0" encoding="UTF-8"?>
<jbosscache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:jboss:jbosscache-core:config:3.1">
<locking useLockStriping="false" concurrencyLevel="50000"
lockParentForChildInsertRemove="false"
@@ -419,113 +419,170 @@
</eviction>
</jbosscache></programlisting>
- </example>
- <para>
- Read more about template configurations <xref
linkend="chap-Reference_Guide-JBoss_Cache_configuration" />.
- </para>
+ </example>
+ <para>
+ Read more about template configurations <xref
linkend="chap-Reference_Guide-JBoss_Cache_configuration" />.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-QueryHandler_configuration-Asynchronous_Reindexing">
- <title>Asynchronous Reindexing</title>
- <para>
- Managing a large data set using a JCR in a production environment at times requires
special operations with Indexes, stored on File System. One of those maintenance
operations is a recreation of it. Also called "re-indexing". There are various
usecases when it's important to do. They include hardware faults, hard restarts,
data-corruption, migrations and JCR updates that brings new features related to index.
Usually index re-creation requested on server's startup or in runtime.
- </para>
- <section
id="sect-Reference_Guide-Asynchronous_Reindexing-On_startup_indexing">
- <title>On startup indexing</title>
- <para>
- Common usecase for updating and re-creating the index is to stop the server and
manually remove indexes for workspaces requiring it. When server will be started, missing
indexes are automatically recovered by re-indexing. JCR Supports direct RDBMS re-indexing,
that usually is faster than ordinary and can be configured via QueryHandler parameter
"rdbms-reindexing" set to "true" (for more information please refer to
"Query-handler configuration overview"). New feature to introduce is
asynchronous indexing on startup. Usually startup is blocked until process is finished.
Block can take any period of time, depending on amount of data persisted in repositories.
But this can be resolved by using an asynchronous approaches of startup indexation. Saying
briefly, it performs all operations with index in background, without blocking the
repository. This is controlled by the value of "async-reindexing" parameter in
QueryHandler configuration. With asynchronous indexation active, J!
CR starts with no active indexes present. Queries on JCR still can be executed without
exceptions, but no results will be returned until index creation completed. Checking index
state is possible via QueryManagerImpl:
- </para>
- <para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-QueryHandler_configuration-Asynchronous_Reindexing">
+ <title>Asynchronous Reindexing</title>
+ <para>
+ Managing a large data set using a JCR in a production environment at times
requires special operations with Indexes, stored on File System. One of those maintenance
operations is a recreation of it. Also called "re-indexing". There are various
usecases when it's important to do. They include hardware faults, hard restarts,
data-corruption, migrations and JCR updates that brings new features related to index.
Usually index re-creation requested on server's startup or in runtime.
+ </para>
+ <section
id="sect-Reference_Guide-Asynchronous_Reindexing-On_startup_indexing">
+ <title>On startup indexing</title>
+ <para>
+ A common usecase for updating and re-creating the index is to stop the
server and manually remove indexes for workspaces requiring it. When the server is
re-started, the missing indexes are automatically recovered by re-indexing.
+ </para>
+ <para>
+ The eXo JCR Supports direct RDBMS re-indexing, which can be faster than
ordinary and can be configured via <literal>QueryHandler</literal> parameter
<parameter>rdbms-reindexing</parameter> set to
<literal>true</literal>.
+ </para>
+ <para>
+ A new feature is asynchronous indexing on startup. Usually startup is
blocked until the indexing process is finished. This block can take any period of time,
depending on amount of data persisted in repositories. But this can be resolved by using
an asynchronous approaches of startup indexation.
+ </para>
+ <para>
+ Essentially, all indexing operations are performed in the background
without blocking the repository. This is controlled by the value of the
<parameter>async-reindexing</parameter> parameter in
<literal>QueryHandler</literal> configuration.
+ </para>
+ <para>
+ With asynchronous indexation active, the JCR starts with no active
indexes present. Queries on JCR still can be executed without exceptions, but no results
will be returned until index creation completed.
+ </para>
+ <para>
+ The index state check is accomplished via
<literal>QueryManagerImpl</literal>:
+ </para>
+ <para>
+
<programlisting lang="java">boolean online =
((QueryManagerImpl)Workspace.getQueryManager()).getQueryHandeler().isOnline();</programlisting>
- </para>
- <para>
- "OFFLINE" state means that index is currently re-creating. When state
changed, corresponding log event is printed. From the start of background task index is
switched to "OFFLINE", with following log event :
- </para>
-
+ </para>
+ <para>
+ The <emphasis role="bold">OFFLINE</emphasis> state
means that the index is currently re-creating. When the state is changed, a corresponding
log event is printed. When the background index task starts the index is switched to
<emphasis role="bold">OFFLINE</emphasis>, with following log event
:
+ </para>
+
<programlisting>[INFO] Setting index OFFLINE
(repository/production[system]).</programlisting>
- <para>
- When process finished, two events are logged :
- </para>
-
+ <para>
+ When the indexing process is finished, the following two events are
logged :
+ </para>
+
<programlisting>[INFO] Created initial index for 143018 nodes
(repository/production[system]).
[INFO] Setting index ONLINE (repository/production[system]).</programlisting>
- <para>
- Those two log lines indicates the end of process for workspace given in brackets.
Calling isOnline() as mentioned above, will also return true.
- </para>
+ <para>
+ Those two log lines indicates the end of process for workspace given in
brackets. Calling isOnline() as mentioned above, will also return true.
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Asynchronous_Reindexing-Hot_Asynchronous_Workspace_Reindexing_via_JMX">
- <title>Hot Asynchronous Workspace Reindexing via JMX</title>
- <para>
- Some hard system faults, error during upgrades, migration issues and some other
factors may corrupt the index. Most likely end customers would like the production systems
to fix index issues in run-time, without delays and restarts. Current versions of JCR
supports "Hot Asynchronous Workspace Reindexing" feature. It allows end-user
(Service Administrator) to launch the process in background without stopping or blocking
whole application by using any JMX-compatible console (see screenshot below,
"JConsole in action").
- </para>
- <mediaobject>
- <imageobject>
- <imagedata align="center" fileref="images/jmx-jconsole.png"
/>
- </imageobject>
+ </section>
+
+ <section
id="sect-Reference_Guide-Asynchronous_Reindexing-Hot_Asynchronous_Workspace_Reindexing_via_JMX">
+ <title>Hot Asynchronous Workspace Reindexing via JMX</title>
+ <para>
+ Some hard system faults, errors during upgrades, migration issues and
some other factors may corrupt the index. Current versions of JCR supports <emphasis
role="bold">Hot Asynchronous Workspace Reindexing</emphasis> feature.
It allows Service Administrators to launch the process in background without stopping or
blocking the whole application by using any JMX-compatible console.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
fileref="images/eXoJCR/jmx-jconsole.png" />
+ </imageobject>
- </mediaobject>
- <para>
- Server can continue working as expected while index is recreated. This depends on the
flag "allow queries", passed via JMX interface to reindex operation invocation.
If the flag set, then application continues working. But there is one critical limitation
the end-users must be aware. Index is frozen while background task is running. It meant
that queries are performed on index present on the moment of task startup and data written
into repository after startup won't be available through the search until process
finished. Data added during re-indexation is also indexed, but will be available only when
task is done. Briefly, JCR makes the snapshot of indexes on asynch task startup and uses
it for searches. When operation finished, stale indexes replaced by newly created
including newly added data. If flag "allow queries" is set to false, then all
queries will throw an exception while task is running. Current state can be acquired using
the following JMX operation:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- getHotReindexingState() - returns information about latest invocation: start time,
if in progress or finish time if done.
- </para>
+ </mediaobject>
+ <para>
+ The server can continue working as expected while the index is
recreated.
+ </para>
+ <para>
+ This depends on the flag <parameter>allow
queries</parameter> being passed via JMX interface to the reindex operation
invocation. If the flag is set, the application continues working.
+ </para>
+ <para>
+ However, there is one critical limitation users must be aware of;
<emphasis>the index is frozen while the background task is
running</emphasis>.
+ </para>
+ <para>
+ This means that queries are performed on a version of the index present
at the moment the indexing task is started, and that data written into the repository
after startup will not be available through the search until process completes.
+ </para>
+ <para>
+ Data added during re-indexation is also indexed, but will be available
only when reindexing is complete. The JCR makes a snapshot of indexes at the invocation of
the asynchronous indexing task and uses that snapshot for searches.
+ </para>
+ <para>
+ When the operation is finished, the stale index is replaced by the newly
created index, which included any newly added data.
+ </para>
+ <para>
+ If the <parameter>allow queries</parameter> flag is set to
<literal>false</literal>, then all queries will throw an exception while task
is running. The current state can be acquired using the following JMX operation:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ getHotReindexingState() - returns information about latest
invocation: start time, if in progress or finish time if done.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide-Asynchronous_Reindexing-Notices">
- <title>Notices</title>
- <para>
- First of all, can't launch Hot re-indexing via JMX if index is already in offline
mode. It means that index is currently is invoked in some operations, like re-indexing at
startup, copying in cluster to another node or whatever. Another important this is Hot
Asynchronous Reindexing via JMX and "on startup" reindexing are completely
different features. So you can't get the state of startup reindexing using command
getHotReindexingState in JMX interface, but there are some common JMX operations:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- getIOMode - returns current index IO mode (READ_ONLY / READ_WRITE), belongs to
clustered configuration states;
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Asynchronous_Reindexing-Notices">
+ <title>Notices</title>
+ <para>
+ Hot re-indexing via JMX cannot be launched if the index is already in
offline mode. This means that the index is currently involved in some other operations,
such as re-indexing at startup, copying in cluster to another node or whatever.
+ </para>
+ <para>
+ Also; <emphasis>Hot Asynchronous Reindexing via
JMX</emphasis> and <literal>on startup</literal> reindexing are
different features. So you can't get the state of startup reindexing using command
<code>getHotReindexingState</code> in JMX interface, but there are some common
JMX operations:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ getIOMode - returns current index IO mode (READ_ONLY /
READ_WRITE), belongs to clustered configuration states;
+ </para>
- </listitem>
- <listitem>
- <para>
- getState - returns current state: ONLINE / OFFLINE.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ getState - returns current state: ONLINE / OFFLINE.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-QueryHandler_configuration-Advanced_tuning">
- <title>Advanced tuning</title>
- <section id="sect-Reference_Guide-Advanced_tuning-Lucene_tuning">
- <title>Lucene tuning</title>
- <para>
- As mentioned above, JCR Indexing is based on Lucene indexing library as underlying
search engine. It uses Directories to store index and manages access to index by Lock
Factories. By default JCR implementation uses optimal combination of Directory
implementation and Lock Factory implementation. When running on OS different from Windows,
NIOFSDirectory implementation used. And SimpleFSDirectory for Windows stations.
NativeFSLockFactory is an optimal solution for wide variety of cases including clustered
environment with NFS shared resources. But those default can be overridden with the help
of system properties. There are two properties:
"org.exoplatform.jcr.lucene.store.FSDirectoryLockFactoryClass" and
"org.exoplatform.jcr.lucene.FSDirectory.class" that are responsible for changing
default behavior. First one defines implementation of abstract Lucene LockFactory class
and the second one sets implementation class for FSDirectory instances. For more
information please ref!
er to Lucene documentation. But be sure You know what You are changing. JCR allows end
users to change implementation classes of Lucene internals, but doesn't guarantee
it's stability and functionality.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-QueryHandler_configuration-Advanced_tuning">
+ <title>Advanced tuning</title>
+ <section
id="sect-Reference_Guide-Advanced_tuning-Lucene_tuning">
+ <title>Lucene tuning</title>
+ <para>
+ As mentioned, JCR Indexing is based on the Lucene indexing library as the
underlying search engine. It uses Directories to store index and manages access to index
by Lock Factories.
+ </para>
+ <para>
+ By default, the JCR implementation uses optimal combination of Directory
implementation and Lock Factory implementation.
+ </para>
+ <para>
+ The <literal>SimpleFSDirectory</literal> is used in Windows
environments and the <literal>NIOFSDirectory</literal> implementation is used
in non-Windows systems.
+ </para>
+ <para>
+ <literal>NativeFSLockFactory</literal> is an optimal solution
for a wide variety of cases including clustered environment with NFS shared resources.
+ </para>
+ <para>
+ But those defaults can be overridden in the system properties.
+ </para>
+ <para>
+ Two properties:
<literal>org.exoplatform.jcr.lucene.store.FSDirectoryLockFactoryClass</literal>
and <literal>org.exoplatform.jcr.lucene.FSDirectory.class</literal> control
(and change) the default behavior.
+ </para>
+ <para>
+ The first defines the implementation of abstract Lucene
<literal>LockFactory</literal> class and the second sets implementation class
for <literal>FSDirectory</literal> instances.
+ </para>
+ <para>
+ For more information, refer to the Lucene documentation. But be careful,
for while the JCR allows users to change implementation classes of Lucene internals, it
does not guarantee the stability and functionality of those changes.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
</chapter>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/statistics.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/statistics.xml 2011-12-05
03:51:59 UTC (rev 8190)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/statistics.xml 2011-12-05
04:33:56 UTC (rev 8191)
@@ -4,292 +4,293 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-eXo_JCR_statistics">
- <title>eXo JCR statistics</title>
- <section
id="sect-Reference_Guide-eXo_JCR_statistics-Statistics_on_the_Database_Access_Layer">
- <title>Statistics on the Database Access Layer</title>
- <para>
- In order to have a better idea of the time spent into the database access layer, it
can be interesting to get some statistics on that part of the code, knowing that most of
the time spent into eXo JCR is mainly the database access.
- </para>
- <para>
- These statistics will then allow you to identify, without using any profiler, what is
abnormally slow in this layer which could help diagnose, and fix, a problem.
- </para>
- <para>
- If you use
<envar>org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer</envar>
or
<envar>org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer</envar>
as <envar>WorkspaceDataContainer</envar>, you can get statistics on the time
spent into the database access layer.
- </para>
- <para>
- The database access layer (in eXo JCR) is represented by the methods of the interface
<envar>org.exoplatform.services.jcr.storage.WorkspaceStorageConnection</envar>,
so for all the methods defined in this interface, we can have the following figures:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The minimum time spent into the method.
- </para>
+ <title>eXo JCR statistics</title>
+ <section
id="sect-Reference_Guide-eXo_JCR_statistics-Statistics_on_the_Database_Access_Layer">
+ <title>Statistics on the Database Access Layer</title>
+ <para>
+ In order to have a better idea of the time spent into the database access
layer, it can be interesting to get some statistics on that part of the code, knowing that
most of the time spent into eXo JCR is mainly the database access.
+ </para>
+ <para>
+ These statistics will then allow you to identify, without using any profiler,
what is abnormally slow in this layer which could help diagnose, and fix, a problem.
+ </para>
+ <para>
+ If you use
<envar>org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer</envar>
or
<envar>org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer</envar>
as <envar>WorkspaceDataContainer</envar>, you can get statistics on the time
spent into the database access layer.
+ </para>
+ <para>
+ The database access layer (in eXo JCR) is represented by the methods of the
interface
<envar>org.exoplatform.services.jcr.storage.WorkspaceStorageConnection</envar>,
so for all the methods defined in this interface, we can have the following figures:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The minimum time spent into the method.
+ </para>
- </listitem>
- <listitem>
- <para>
- The maximum time spent into the method.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The maximum time spent into the method.
+ </para>
- </listitem>
- <listitem>
- <para>
- The average time spent into the method.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The average time spent into the method.
+ </para>
- </listitem>
- <listitem>
- <para>
- The total amount of time spent into the method.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The total amount of time spent into the method.
+ </para>
- </listitem>
- <listitem>
- <para>
- The total amount of time the method has been called.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The total amount of time the method has been called.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- Those figures are also available globaly for all the methods which gives us the global
behavior of this layer.
- </para>
- <para>
- If you want to enable the statistics, you just need to set the JVM parameter called
<parameter>JDBCWorkspaceDataContainer.statistics.enabled</parameter> to
<emphasis>true</emphasis>. The corresponding CSV file is
<filename>StatisticsJDBCStorageConnection-${creation-timestamp}.csv</filename>
for more details about how the csv files are managed, please refer to the section
dedicated to the statistics manager.
- </para>
- <para>
- The format of each column header is
<replaceable>${method-alias}</replaceable>-<replaceable>${metric-alias}</replaceable>.
The metric alias are described in the statistics manager section.
- </para>
- <para>
- The name of the category of statistics corresponding to these statistics is
<literal>JDBCStorageConnection</literal>, this name is mostly needed to access
to the statistics through JMX.
- </para>
- <table
id="tabl-Reference_Guide-Statistics_on_the_Database_Access_Layer-Method_Alias">
- <title>Method Alias</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- global
- </entry>
- <entry>
- This is the alias for all the methods.
- </entry>
+ </itemizedlist>
+ <para>
+ Those figures are also available globaly for all the methods which gives us
the global behavior of this layer.
+ </para>
+ <para>
+ If you want to enable the statistics, you just need to set the JVM parameter
called <parameter>JDBCWorkspaceDataContainer.statistics.enabled</parameter> to
<emphasis>true</emphasis>. The corresponding CSV file is
<filename>StatisticsJDBCStorageConnection-${creation-timestamp}.csv</filename>
for more details about how the csv files are managed, please refer to the section
dedicated to the statistics manager.
+ </para>
+ <para>
+ The format of each column header is
<replaceable>${method-alias}</replaceable>-<replaceable>${metric-alias}</replaceable>.
The metric alias are described in the statistics manager section.
+ </para>
+ <para>
+ The name of the category of statistics corresponding to these statistics is
<literal>JDBCStorageConnection</literal>, this name is mostly needed to access
to the statistics through JMX.
+ </para>
+ <table
id="tabl-Reference_Guide-Statistics_on_the_Database_Access_Layer-Method_Alias">
+ <title>Method Alias</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ global
+ </entry>
+ <entry>
+ This is the alias for all the methods.
+ </entry>
- </row>
- <row>
- <entry>
- getItemDataById
- </entry>
- <entry>
- This is the alias for the method <emphasis>getItemData(String
identifier).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ getItemDataById
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>getItemData(String identifier).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- getItemDataByNodeDataNQPathEntry
- </entry>
- <entry>
- This is the alias for the method <emphasis>getItemData(NodeData parentData,
QPathEntry name).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ getItemDataByNodeDataNQPathEntry
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>getItemData(NodeData parentData, QPathEntry name).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- getChildNodesData
- </entry>
- <entry>
- This is the alias for the method <emphasis>getChildNodesData(NodeData
parent).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ getChildNodesData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>getChildNodesData(NodeData parent).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- getChildNodesCount
- </entry>
- <entry>
- This is the alias for the method <emphasis>getChildNodesCount(NodeData
parent).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ getChildNodesCount
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>getChildNodesCount(NodeData parent).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- getChildPropertiesData
- </entry>
- <entry>
- This is the alias for the method <emphasis>getChildPropertiesData(NodeData
parent).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ getChildPropertiesData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>getChildPropertiesData(NodeData parent).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- listChildPropertiesData
- </entry>
- <entry>
- This is the alias for the method <emphasis>listChildPropertiesData(NodeData
parent).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ listChildPropertiesData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>listChildPropertiesData(NodeData parent).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- getReferencesData
- </entry>
- <entry>
- This is the alias for the method <emphasis>getReferencesData(String
nodeIdentifier).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ getReferencesData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>getReferencesData(String nodeIdentifier).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- commit
- </entry>
- <entry>
- This is the alias for the method <emphasis>commit().</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ commit
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>commit().</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- addNodeData
- </entry>
- <entry>
- This is the alias for the method <emphasis>add(NodeData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ addNodeData
+ </entry>
+ <entry>
+ This is the alias for the method <emphasis>add(NodeData
data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- addPropertyData
- </entry>
- <entry>
- This is the alias for the method <emphasis>add(PropertyData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ addPropertyData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>add(PropertyData data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- updateNodeData
- </entry>
- <entry>
- This is the alias for the method <emphasis>update(NodeData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ updateNodeData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>update(NodeData data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- updatePropertyData
- </entry>
- <entry>
- This is the alias for the method <emphasis>update(PropertyData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ updatePropertyData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>update(PropertyData data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- deleteNodeData
- </entry>
- <entry>
- This is the alias for the method <emphasis>delete(NodeData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ deleteNodeData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>delete(NodeData data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- deletePropertyData
- </entry>
- <entry>
- This is the alias for the method <emphasis>delete(PropertyData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ deletePropertyData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>delete(PropertyData data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- renameNodeData
- </entry>
- <entry>
- This is the alias for the method <emphasis>rename(NodeData
data).</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ renameNodeData
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>rename(NodeData data).</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- rollback
- </entry>
- <entry>
- This is the alias for the method <emphasis>rollback().</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ rollback
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>rollback().</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- isOpened
- </entry>
- <entry>
- This is the alias for the method <emphasis>isOpened().</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ isOpened
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>isOpened().</emphasis>
+ </entry>
- </row>
- <row>
- <entry>
- close
- </entry>
- <entry>
- This is the alias for the method <emphasis>close().</emphasis>
- </entry>
+ </row>
+ <row>
+ <entry>
+ close
+ </entry>
+ <entry>
+ This is the alias for the method
<emphasis>close().</emphasis>
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section
id="sect-Reference_Guide-eXo_JCR_statistics-Statistics_on_the_JCR_API_accesses">
- <title>Statistics on the JCR API accesses</title>
- <para>
- In order to know exactly how your application uses eXo JCR, it can be interesting to
register all the JCR API accesses in order to easily create real life test scenario based
on pure JCR calls and also to tune your eXo JCR to better fit your requirements.
- </para>
- <para>
- In order to allow you to specify the configuration which part of eXo JCR needs to be
monitored without applying any changes in your code and/or building anything, we choose to
rely on the Load-time Weaving proposed by AspectJ.
- </para>
- <para>
- To enable this feature, you will have to add in your classpath the following jar
files:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>exo.jcr.component.statistics-X.Y.Z</emphasis>.jar
corresponding to your eXo JCR version that you can get from the jboss maven repository
<ulink
url="http://repository.jboss.com/maven2/org/exoplatform/jcr/exo.jcr....;.
- </para>
+ </section>
+
+ <!-- DOC NOTE: Section commented as main jar URL is broken. Have emailed query to
Nicholas Filotto (eXo) for resolution.
+ <section
id="sect-Reference_Guide-eXo_JCR_statistics-Statistics_on_the_JCR_API_accesses">
+ <title>Statistics on the JCR API accesses</title>
+ <para>
+ In order to know exactly how your application uses eXo JCR, it can be
interesting to register all the JCR API accesses in order to easily create real life test
scenario based on pure JCR calls and also to tune your JCR to better fit your
requirements.
+ </para>
+ <para>
+ In order to allow you to specify the configuration which part of eXo JCR
needs to be monitored without applying any changes in your code and/or building anything,
we choose to rely on the Load-time Weaving proposed by AspectJ.
+ </para>
+ <para>
+ To enable this feature, you will have to add in your classpath the following
jar files:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+
<emphasis>exo.jcr.component.statistics-X.Y.Z</emphasis>.jar corresponding to
your eXo JCR version that you can get from the jboss maven repository <ulink
url="http://repository.jboss.com/maven2/org/exoplatform/jcr/exo.jcr....;.
+ </para>
- </listitem>
- <listitem>
- <para>
- aspectjrt-1.6.8.jar that you can get from the main maven repository <ulink
url="http://repo2.maven.org/maven2/org/aspectj/aspectjrt">&l...;.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ aspectjrt-1.6.8.jar that you can get from the main maven repository
<ulink
url="http://repo2.maven.org/maven2/org/aspectj/aspectjrt">&l...;.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- You will also need to get <filename>aspectjweaver-1.6.8.jar</filename>
from the main maven repository <ulink
url="http://repo2.maven.org/maven2/org/aspectj/aspectjweaver"&g...;.
- </para>
- <para>
- At this stage, to enable the statistics on the JCR API accesses, you will need to add
the JVM parameter
<parameter>-javaagent:${pathto}/aspectjweaver-1.6.8.jar</parameter> to your
command line, for more details please refer to <ulink
url="http://www.eclipse.org/aspectj/doc/released/devguide/ltw-config...;.
- </para>
- <para>
- By default, the configuration will collect statistics on all the methods of the
internal interfaces
<literal>org.exoplatform.services.jcr.core.ExtendedSession</literal> and
<literal>org.exoplatform.services.jcr.core.ExtendedNode</literal>, and the JCR
API interface <literal>javax.jcr.Property</literal>.
- </para>
- <para>
- To add and/or remove some interfaces to monitor, you have two configuration files to
change that are bundled into the jar
<literal>exo.jcr.component.statistics-X.Y.Z</literal>.jar, which are
<filename>conf/configuration.xml</filename> and
<filename>META-INF/aop.xml</filename>.
- </para>
- <para>
- The file content below is the content of
<filename>conf/configuration.xml</filename> that you will need to modify to
add and/or remove the full qualified name of the interfaces to monitor, into the list of
parameter values of the init param called
<literal>targetInterfaces</literal>.
- </para>
-
+ </itemizedlist>
+ <para>
+ You will also need to get
<filename>aspectjweaver-1.6.8.jar</filename> from the main maven repository
<ulink
url="http://repo2.maven.org/maven2/org/aspectj/aspectjweaver"&g...;.
+ </para>
+ <para>
+ At this stage, to enable the statistics on the JCR API accesses, you will
need to add the JVM parameter
<parameter>-javaagent:${pathto}/aspectjweaver-1.6.8.jar</parameter> to your
command line, for more details please refer to <ulink
url="http://www.eclipse.org/aspectj/doc/released/devguide/ltw-config...;.
+ </para>
+ <para>
+ By default, the configuration will collect statistics on all the methods of
the internal interfaces
<literal>org.exoplatform.services.jcr.core.ExtendedSession</literal> and
<literal>org.exoplatform.services.jcr.core.ExtendedNode</literal>, and the JCR
API interface <literal>javax.jcr.Property</literal>.
+ </para>
+ <para>
+ To add and/or remove some interfaces to monitor, you have two configuration
files to change that are bundled into the jar
<literal>exo.jcr.component.statistics-X.Y.Z</literal>.jar, which are
<filename>conf/configuration.xml</filename> and
<filename>META-INF/aop.xml</filename>.
+ </para>
+ <para>
+ The file content below is the content of
<filename>conf/configuration.xml</filename> that you will need to modify to
add and/or remove the full qualified name of the interfaces to monitor, into the list of
parameter values of the init param called
<literal>targetInterfaces</literal>.
+ </para>
+
<programlisting language="XML" role="XML"><configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd
http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
@@ -305,197 +306,197 @@
</init-params>
</component>
</configuration></programlisting>
- <para>
- The file content below is the content of
<filename>META-INF/aop.xml</filename> that you will to need to modify to add
and/or remove the full qualified name of the interfaces to monitor, into the expression
filter of the pointcut called <literal>JCRAPIPointcut</literal>.
- </para>
- <para>
- By default only JCR API calls from the <literal>exoplatform</literal>
packages are taken into account. This filter can be modified to add other package names.
- </para>
-
+ <para>
+ The file content below is the content of
<filename>META-INF/aop.xml</filename> that you will to need to modify to add
and/or remove the full qualified name of the interfaces to monitor, into the expression
filter of the pointcut called <literal>JCRAPIPointcut</literal>.
+ </para>
+ <para>
+ By default only JCR API calls from the
<literal>exoplatform</literal> packages are taken into account. This filter
can be modified to add other package names.
+ </para>
+
<programlisting language="XML"
role="XML"><aspectj>
<aspects>
<concrete-aspect
name="org.exoplatform.services.jcr.statistics.JCRAPIAspectImpl"
extends="org.exoplatform.services.jcr.statistics.JCRAPIAspect">
<pointcut name="JCRAPIPointcut"
- expression="(target(org.exoplatform.services.jcr.core.ExtendedSession) ||
target(org.exoplatform.services.jcr.core.ExtendedNode) || target(javax.jcr.Property))
&amp;&amp; call(public * *(..))" />
+ expression="(target(org.exoplatform.services.jcr.core.ExtendedSession) ||
target(org.exoplatform.services.jcr.core.ExtendedNode) || target(javax.jcr.Property))
&& call(public * *(..))" />
</concrete-aspect>
</aspects>
<weaver options="-XnoInline">
<include within="org.exoplatform..*" />
</weaver>
</aspectj></programlisting>
- <para>
- The corresponding CSV files are of type
<filename>Statistics<replaceable>${interface-name}</replaceable>-<replaceable>${creation-timestamp}</replaceable>.csv</filename>
for more details about how the <emphasis>CSV</emphasis> files are managed,
please refer to the section dedicated to the statistics manager.
- </para>
- <para>
- The format of each column header is
<replaceable>${method-alias}</replaceable>-<replaceable>${metric-alias}</replaceable>.
The method alias will be of type
<replaceable>${method-name}(semicolon-delimited-list-of-parameter-types-to-be-compatible-with-the-CSV-format)</replaceable>.
- </para>
- <para>
- The metric alias are described in the statistics manager section.
- </para>
- <para>
- The name of the category of statistics corresponding to these statistics is the simple
name of the monitored interface (e.g. <literal>ExtendedSession</literal> for
<literal>org.exoplatform.services.jcr.core.ExtendedSession</literal>), this
name is mostly needed to access to the statistics through JMX.
- </para>
- <note>
- <title>Performance Consideration</title>
- <para>
- Please note that this feature will affect the performances of eXo JCR so it must be
used with caution.
- </para>
+ <para>
+ The corresponding CSV files are of type
<filename>Statistics<replaceable>${interface-name}</replaceable>-<replaceable>${creation-timestamp}</replaceable>.csv</filename>
for more details about how the <emphasis>CSV</emphasis> files are managed,
please refer to the section dedicated to the statistics manager.
+ </para>
+ <para>
+ The format of each column header is
<replaceable>${method-alias}</replaceable>-<replaceable>${metric-alias}</replaceable>.
The method alias will be of type
<replaceable>${method-name}(semicolon-delimited-list-of-parameter-types-to-be-compatible-with-the-CSV-format)</replaceable>.
+ </para>
+ <para>
+ The metric alias are described in the statistics manager section.
+ </para>
+ <para>
+ The name of the category of statistics corresponding to these statistics is
the simple name of the monitored interface (e.g.
<literal>ExtendedSession</literal> for
<literal>org.exoplatform.services.jcr.core.ExtendedSession</literal>), this
name is mostly needed to access to the statistics through JMX.
+ </para>
+ <note>
+ <title>Performance Consideration</title>
+ <para>
+ Please note that this feature will affect the performances of eXo JCR so
it must be used with caution.
+ </para>
- </note>
+ </note>
- </section>
-
- <section
id="sect-Reference_Guide-eXo_JCR_statistics-Statistics_Manager">
- <title>Statistics Manager</title>
- <para>
- The statistics manager manages all the statistics provided by eXo JCR, it is
responsible of printing the data into the CSV files and also exposing the statistics
through JMX and/or Rest.
- </para>
- <para>
- The statistics manager will create all the CSV files for each category of statistics
that it manages, the format of those files is
<emphasis>Statistics${category-name}-${creation-timestamp}.csv</emphasis>.
Those files will be created into the user directory if it is possible otherwise it will
create them into the temporary directory. The format of those files is
<envar>CSV</envar> (i.e. Comma-Separated Values), one new line will be added
regularly (every 5 seconds by default) and one last line will be added at JVM exit. Each
line, will be composed of the 5 figures described below for each method and globally for
all the methods.
- </para>
- <para>
- <table id="tabl-Reference_Guide-Statistics_Manager-Metric_Alias">
- <title>Metric Alias</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- Min
- </entry>
- <entry>
- The minimum time spent into the method expressed in milliseconds.
- </entry>
+ </section>-->
+
+ <section
id="sect-Reference_Guide-eXo_JCR_statistics-Statistics_Manager">
+ <title>Statistics Manager</title>
+ <para>
+ The statistics manager manages all the statistics provided by eXo JCR, it is
responsible of printing the data into the CSV files and also exposing the statistics
through JMX and/or Rest.
+ </para>
+ <para>
+ The statistics manager will create all the CSV files for each category of
statistics that it manages, the format of those files is
<emphasis>Statistics${category-name}-${creation-timestamp}.csv</emphasis>.
Those files will be created into the user directory if it is possible otherwise it will
create them into the temporary directory. The format of those files is
<envar>CSV</envar> (i.e. Comma-Separated Values), one new line will be added
regularly (every 5 seconds by default) and one last line will be added at JVM exit. Each
line, will be composed of the 5 figures described below for each method and globally for
all the methods.
+ </para>
+ <para>
+ <table
id="tabl-Reference_Guide-Statistics_Manager-Metric_Alias">
+ <title>Metric Alias</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ Min
+ </entry>
+ <entry>
+ The minimum time spent into the method expressed in
milliseconds.
+ </entry>
- </row>
- <row>
- <entry>
- Max
- </entry>
- <entry>
- The maximum time spent into the method expressed in milliseconds.
- </entry>
+ </row>
+ <row>
+ <entry>
+ Max
+ </entry>
+ <entry>
+ The maximum time spent into the method expressed in
milliseconds.
+ </entry>
- </row>
- <row>
- <entry>
- Total
- </entry>
- <entry>
- The total amount of time spent into the method expressed in milliseconds.
- </entry>
+ </row>
+ <row>
+ <entry>
+ Total
+ </entry>
+ <entry>
+ The total amount of time spent into the method expressed
in milliseconds.
+ </entry>
- </row>
- <row>
- <entry>
- Avg
- </entry>
- <entry>
- The average time spent into the method expressed in milliseconds.
- </entry>
+ </row>
+ <row>
+ <entry>
+ Avg
+ </entry>
+ <entry>
+ The average time spent into the method expressed in
milliseconds.
+ </entry>
- </row>
- <row>
- <entry>
- Times
- </entry>
- <entry>
- The total amount of times the method has been called.
- </entry>
+ </row>
+ <row>
+ <entry>
+ Times
+ </entry>
+ <entry>
+ The total amount of times the method has been called.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- You can disable the persistence of the statistics by setting the JVM parameter called
<parameter>JCRStatisticsManager.persistence.enabled</parameter> to
<literal>false</literal>. It is set to <literal>true</literal> by
default.
- </para>
- <para>
- You can also define the period of time between each record (that is, line of data into
the file) by setting the JVM parameter called
<parameter>JCRStatisticsManager.persistence.timeout</parameter> to your
expected value expressed in milliseconds. It is set to <literal>5000</literal>
by default.
- </para>
- <para>
- You can also access to the statistics via JMX. The available methods are:
- </para>
- <para>
- <table id="tabl-Reference_Guide-Statistics_Manager-JMX_Methods">
- <title>JMX Methods</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- getMin
- </entry>
- <entry>
- Give the minimum time spent into the method corresponding to the given category
name and statistics name. The expected arguments are the name of the category of
statistics (<literal>JDBCStorageConnection</literal> for example) and the name
of the expected method or global for the global value.
- </entry>
+ </table>
+ You can disable the persistence of the statistics by setting the JVM
parameter called
<parameter>JCRStatisticsManager.persistence.enabled</parameter> to
<literal>false</literal>. It is set to <literal>true</literal> by
default.
+ </para>
+ <para>
+ You can also define the period of time between each record (that is, line of
data into the file) by setting the JVM parameter called
<parameter>JCRStatisticsManager.persistence.timeout</parameter> to your
expected value expressed in milliseconds. It is set to <literal>5000</literal>
by default.
+ </para>
+ <para>
+ You can also access to the statistics via JMX. The available methods are:
+ </para>
+ <para>
+ <table
id="tabl-Reference_Guide-Statistics_Manager-JMX_Methods">
+ <title>JMX Methods</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ getMin
+ </entry>
+ <entry>
+ Give the minimum time spent into the method corresponding
to the given category name and statistics name. The expected arguments are the name of the
category of statistics (<literal>JDBCStorageConnection</literal> for example)
and the name of the expected method or global for the global value.
+ </entry>
- </row>
- <row>
- <entry>
- getMax
- </entry>
- <entry>
- Give the maximum time spent into the method corresponding to the given category
name and statistics name. The expected arguments are the name of the category of
statistics and the name of the expected method or global for the global value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ getMax
+ </entry>
+ <entry>
+ Give the maximum time spent into the method corresponding
to the given category name and statistics name. The expected arguments are the name of the
category of statistics and the name of the expected method or global for the global
value.
+ </entry>
- </row>
- <row>
- <entry>
- getTotal
- </entry>
- <entry>
- Give the total amount of time spent into the method corresponding to the given
category name and statistics name. The expected arguments are the name of the category of
statistics and the name of the expected method or global for the global value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ getTotal
+ </entry>
+ <entry>
+ Give the total amount of time spent into the method
corresponding to the given category name and statistics name. The expected arguments are
the name of the category of statistics and the name of the expected method or global for
the global value.
+ </entry>
- </row>
- <row>
- <entry>
- getAvg
- </entry>
- <entry>
- Give the average time spent into the method corresponding to the given category
name and statistics name. The expected arguments are the name of the category of
statistics and the name of the expected method or global for the global value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ getAvg
+ </entry>
+ <entry>
+ Give the average time spent into the method corresponding
to the given category name and statistics name. The expected arguments are the name of the
category of statistics and the name of the expected method or global for the global
value.
+ </entry>
- </row>
- <row>
- <entry>
- getTimes
- </entry>
- <entry>
- Give the total amount of times the method has been called corresponding to the
given ,category name and statistics name. The expected arguments are the name of the
category of statistics (e.g. JDBCStorageConnection) and the name of the expected method or
global for the global value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ getTimes
+ </entry>
+ <entry>
+ Give the total amount of times the method has been called
corresponding to the given ,category name and statistics name. The expected arguments are
the name of the category of statistics (e.g. JDBCStorageConnection) and the name of the
expected method or global for the global value.
+ </entry>
- </row>
- <row>
- <entry>
- reset
- </entry>
- <entry>
- Reset the statistics for the given category name and statistics name. The
expected arguments are the name of the category of statistics and the name of the expected
method or global for the global value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ reset
+ </entry>
+ <entry>
+ Reset the statistics for the given category name and
statistics name. The expected arguments are the name of the category of statistics and the
name of the expected method or global for the global value.
+ </entry>
- </row>
- <row>
- <entry>
- resetAll
- </entry>
- <entry>
- Reset all the statistics for the given category name. The expected argument is
the name of the category of statistics (e.g. JDBCStorageConnection).
- </entry>
+ </row>
+ <row>
+ <entry>
+ resetAll
+ </entry>
+ <entry>
+ Reset all the statistics for the given category name. The
expected argument is the name of the category of statistics (e.g. JDBCStorageConnection).
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- The full name of the related MBean is <literal>xo:service=statistic,
view=jcr</literal>.
- </para>
+ </table>
+ The full name of the related MBean is <literal>xo:service=statistic,
view=jcr</literal>.
+ </para>
- </section>
-
+ </section>
+
</chapter>