Author: smumford
Date: 2011-12-06 23:31:34 -0500 (Tue, 06 Dec 2011)
New Revision: 8202
Added:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml.cut
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml.cut
Removed:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.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/concepts/nodetypes-and-namespaces.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/Book_Info.xml
epp/docs/branches/5.2/Reference_Guide/en-US/Reference_Guide.xml
epp/docs/branches/5.2/Reference_Guide/en-US/Revision_History.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortletDevelopment_Standard/default249.java
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Global_Portlet.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/overview.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Standard.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/exo-jcr-configuration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/multilanguage-support.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/lock-manager-config.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/webdav.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/repository-creation-service.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/jcr-query-usecases.xml
epp/docs/branches/5.2/Reference_Guide/publican.cfg
Log:
JBEPP-1431: QA feedback. Removing unnecessary sections
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/Book_Info.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/Book_Info.xml 2011-12-07 04:28:19 UTC (rev
8201)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/Book_Info.xml 2011-12-07 04:31:34 UTC (rev
8202)
@@ -9,7 +9,7 @@
<productname>JBoss Enterprise Portal Platform</productname>
<productnumber>5.2</productnumber>
<edition>5.2.0</edition>
- <pubsnumber>13</pubsnumber>
+ <pubsnumber>14</pubsnumber>
<abstract>
<para>
This Reference Guide is a high-level usage document. It deals with more
advanced topics than the Installation and User Guides, adding new content or taking
concepts discussed in the earlier documents further. It aims to provide supporting
documentation for advanced users of the JBoss Enterprise Portal Platform product. Its
primary focus is on advanced use of the product and it assumes an intermediate or advanced
knowledge of the technology and terms.
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/Reference_Guide.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/Reference_Guide.xml 2011-12-07 04:28:19
UTC (rev 8201)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/Reference_Guide.xml 2011-12-07 04:31:34
UTC (rev 8202)
@@ -3,16 +3,24 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
%BOOK_ENTITIES;
]>
-<book>
- <xi:include href="Book_Info.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="modules/Introduction.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="modules/PortalDevelopment.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="modules/PortletDevelopment.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- <xi:include href="modules/GadgetDevelopment.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
<xi:include href="modules/AuthenticationAndIdentity.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="modules/WSRP.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="modules/Advanced.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="modules/eXoJCR.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="Revision_History.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
-</book>
-
+ <book>
+ <xi:include href="Book_Info.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="modules/Introduction.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="modules/PortalDevelopment.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="modules/PortletDevelopment.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+<!-- <xi:include href="modules/GadgetDevelopment.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <xi:include href="modules/AuthenticationAndIdentity.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="modules/WSRP.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="modules/Advanced.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="modules/eXoJCR.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="Revision_History.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </book>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/Revision_History.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/Revision_History.xml 2011-12-07 04:28:19
UTC (rev 8201)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/Revision_History.xml 2011-12-07 04:31:34
UTC (rev 8202)
@@ -7,6 +7,20 @@
<title>Revision History</title>
<simpara>
<revhistory>
+ <revision>
+ <revnumber>5.2.0-14</revnumber>
+ <date>Wed Dec 7 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email></email>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>JBEPP-1431: Incorporate QA
feedback.</member>
+ </simplelist>
+ </revdescription>
+ </revision>
<revision>
<revnumber>5.2.0-13</revnumber>
<date>Thu Dec 1 2011</date>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -6,17 +6,30 @@
<priority>1</priority>
<page-nodes>
<node>
- <uri>home</uri>
- <name>home</name>
- <label>#{portal.classic.home}</label>
- <page-reference>portal::classic::homepage</page-reference>
+ <uri>home</uri>
+ <name>home</name>
+ <label>#{portal.classic.home}</label>
+ <page-reference>portal::classic::homepage</page-reference>
</node>
<node>
- <uri>sitemap</uri>
- <name>sitemap</name>
- <label>#{portal.classic.sitemap}</label>
- <visibility>DISPLAYED</visibility>
- <page-reference>portal::classic::sitemap</page-reference>
- </node>
+ <name>sitemap</name>
+ <label xml:lang="en">SiteMap</label>
+ <label xml:lang="fr">SiteMap</label>
+ <label xml:lang="es">Mapa del Sitio</label>
+ <label xml:lang="de">Seitenübersicht</label>
+ <label xml:lang="it">Mappa del Sito</label>
+ <label xml:lang="nl">Sitemap</label>
+ <label xml:lang="pt-BR">Mapa do Site</label>
+ <label xml:lang="ja">サイトマップ</label>
+ <label xml:lang="ne">साईटम्याप</label>
+ <label xml:lang="ru">SiteMap</label>
+ <label xml:lang="ar">خريطة الموقع</label>
+ <label xml:lang="ko">사이트맵</label>
+ <label xml:lang="vi">Sơ đồ</label>
+ <label xml:lang="zh">网站地图</label>
+ <label xml:lang="zh-TW">網站導覽</label>
+ <visibility>DISPLAYED</visibility>
+ <page-reference>portal::classic::sitemap</page-reference>
+ </node>
</page-nodes>
</node-navigation>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortletDevelopment_Standard/default249.java
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortletDevelopment_Standard/default249.java 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortletDevelopment_Standard/default249.java 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,6 +1,5 @@
...
- public void processAction(ActionRequest aRequest, ActionResponse aResponse)
throws PortletException, IOException,
- UnavailableException
+ public void processAction(ActionRequest aRequest, ActionResponse aResponse)
throws PortletException, IOException, UnavailableException
{
String sYourname = (String) aRequest.getParameter("yourname");
aResponse.setRenderParameter("yourname", sYourname);
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Global_Portlet.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Global_Portlet.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Global_Portlet.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -4,90 +4,90 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-Shared_portlet.xml">
- <title>Shared <filename>portlet.xml</filename></title>
- <para>
- The Java Portlet Specification introduces <literal>PortletFilter</literal>
as a standard approach to extend the behaviors of portlet objects. For example, a filter
can transform the content of portlet requests and portlet responses.
- </para>
- <para>
- According to the Portlet Specification, there are normally three steps in setting up a
portlet filter:
- </para>
- <procedure>
- <step>
- <para>
- Implement a <literal>PortletFilter</literal> object.
- </para>
+ <title>Shared <filename>portlet.xml</filename></title>
+ <para>
+ The Java Portlet Specification introduces
<literal>PortletFilter</literal> as a standard approach to extend the
behaviors of portlet objects. For example, a filter can transform the content of portlet
requests and portlet responses.
+ </para>
+ <para>
+ According to the Portlet Specification, there are normally three steps in setting
up a portlet filter:
+ </para>
+ <procedure>
+ <step>
+ <para>
+ Implement a <literal>PortletFilter</literal> object.
+ </para>
- </step>
- <step>
- <para>
- Define the filter in portlet application deployment descriptor.
- </para>
+ </step>
+ <step>
+ <para>
+ Define the filter in portlet application deployment descriptor.
+ </para>
- </step>
- <step>
- <para>
- Define the filter mapping in portlet definitions.
- </para>
+ </step>
+ <step>
+ <para>
+ Define the filter mapping in portlet definitions.
+ </para>
- </step>
+ </step>
- </procedure>
-
- <para>
- While the first two steps are quite straightforward, the third requires developers or
administrators to replicate the filter mapping in many portlet definitions. This can be
tedious and opens the potential for input errors. The global portlet feature is designed
to mitigate these concerns.
- </para>
- <para>
- Global portlet metadata is declared in the <filename>portlet.xml</filename>
file and conforms with the Portlet 2.0 XSD.
- </para>
-
+ </procedure>
+
+ <para>
+ While the first two steps are quite straightforward, the third requires
developers or administrators to replicate the filter mapping in many portlet definitions.
This can be tedious and opens the potential for input errors. The global portlet feature
is designed to mitigate these concerns.
+ </para>
+ <para>
+ Global portlet metadata is declared in the
<filename>portlet.xml</filename> file and conforms with the Portlet 2.0 XSD.
+ </para>
+
<programlisting language="XML" role="XML"><portlet-app
version="1.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
</portlet-app>
</programlisting>
- <para>
- The path to the global <filename>portlet.xml</filename> is the value of
<literal>gatein.portlet.config</literal> in the
<filename>configuration.properties.xml</filename> file. By default The file
path is
<filename>/<replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/conf/gatein/portlet.xml</filename>
- </para>
- <para>
- <emphasis role="bold">For JBoss</emphasis>: The file path is
<filename><replaceable><JBOSS_HOME></replaceable>/server/default/conf/gatein/portlet.xml</filename>.
- </para>
- <section
id="sect-Reference_Guide-Shared_portlet.xml-Global_Metadata_Elements">
- <title>Global Metadata Elements</title>
- <para>
- The global <filename>portlet.xml</filename> file conforms, with some
restrictions, to the portlet deployment descriptor schema defined in the Portlet
Specification. In this file, the following elements are supported:
- </para>
- <orderedlist>
- <listitem>
- <para>
- <xref
linkend="form-Reference_Guide-Global_Metadata_Elements-Portlet_Filter" />
- </para>
+ <para>
+ The path to the global <filename>portlet.xml</filename> is the value
of <literal>gatein.portlet.config</literal> in the
<filename>configuration.properties.xml</filename> file. By default The file
path is
<filename>/<replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/conf/gatein/portlet.xml</filename>
+ </para>
+ <para>
+ <emphasis role="bold">For JBoss</emphasis>: The file path
is
<filename><replaceable><JBOSS_HOME></replaceable>/server/default/conf/gatein/portlet.xml</filename>.
+ </para>
+ <section
id="sect-Reference_Guide-Shared_portlet.xml-Global_Metadata_Elements">
+ <title>Global Metadata Elements</title>
+ <para>
+ The global <filename>portlet.xml</filename> file conforms, with
some restrictions, to the portlet deployment descriptor schema defined in the Portlet
Specification. In this file, the following elements are supported:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ <xref
linkend="form-Reference_Guide-Global_Metadata_Elements-Portlet_Filter" />
+ </para>
- </listitem>
- <listitem>
- <para>
- Portlet Mode
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Portlet Mode
+ </para>
- </listitem>
- <listitem>
- <para>
- Window State
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Window State
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <formalpara
id="form-Reference_Guide-Global_Metadata_Elements-Portlet_Filter">
- <title>Portlet Filter</title>
- <para>
- Portlet filter mappings declared in the global
<filename>portlet.xml</filename> file are applied across portlet
applications.
- </para>
+ </orderedlist>
+ <formalpara
id="form-Reference_Guide-Global_Metadata_Elements-Portlet_Filter">
+ <title>Portlet Filter</title>
+ <para>
+ Portlet filter mappings declared in the global
<filename>portlet.xml</filename> file are applied across portlet
applications.
+ </para>
- </formalpara>
- <para>
- With the XML configuration below, the filter
<literal>ApplicationMonitoringFilter</literal> involves in request handling on
any deployed portlet.
- </para>
-
+ </formalpara>
+ <para>
+ With the XML configuration below, the filter
<literal>ApplicationMonitoringFilter</literal> is involved in request handling
on any deployed portlet.
+ </para>
+
<programlisting language="XML"
role="XML"><filter>
<filter-name>org.exoplatform.portal.application.ApplicationMonitoringFilter</filter-name>
<filter-class>org.exoplatform.portal.application.ApplicationMonitoringFilter</filter-class>
@@ -97,42 +97,42 @@
<lifecycle>RESOURCE_PHASE</lifecycle>
</filter>
</programlisting>
- <para>
- <emphasis role="bold">Application Monitoring Filter</emphasis>
supports four lifecycle phases in the order below:
- </para>
- <orderedlist>
- <listitem>
- <para>
- ACTION_PHASE
- </para>
+ <para>
+ <emphasis role="bold">Application Monitoring
Filter</emphasis> supports four lifecycle phases in the order below:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ ACTION_PHASE
+ </para>
- </listitem>
- <listitem>
- <para>
- EVENT_PHASE
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ EVENT_PHASE
+ </para>
- </listitem>
- <listitem>
- <para>
- RENDER_PHASE
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ RENDER_PHASE
+ </para>
- </listitem>
- <listitem>
- <para>
- RESOURCE_PHASE
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ RESOURCE_PHASE
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <para>
- The Application Monitoring Filter records statistic information about deployed
portlets. The filter alternates the actual monitoring mechanism in WebUI Framework.
- </para>
+ </orderedlist>
+ <para>
+ The Application Monitoring Filter records statistic information about
deployed portlets. The filter alternates the actual monitoring mechanism in WebUI
Framework.
+ </para>
- </section>
-
+ </section>
+
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -4,161 +4,161 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Bridge_Configuration">
- <title>Bridge Configuration</title>
- <para>
- The 329 specification is aimed at making the developer's life as easy as possible
with JSF+Portlet development. You will see below that there are minimal settings to
getting any JSF web application up and running in the Portal environment.
- </para>
- <!-- Commented as Maven Archetypes section removed from gettingstarted.xml
+ <title>Bridge Configuration</title>
+ <para>
+ The 329 specification is aimed at making the developer's life as easy as
possible with JSF+Portlet development. You will see below that there are minimal settings
to getting any JSF web application up and running in the Portal environment.
+ </para>
+ <!-- Commented as Maven Archetypes section removed from
gettingstarted.xml
<para>
- If you are new to these concepts, we highly recommend you refer to <xref
linkend="sect-Reference_Guide-Getting_started_with_JBoss_Portlet_Bridge-Maven_Archetypes"
/>.
- </para> --> <section
id="sect-Reference_Guide-Bridge_Configuration-Core_Setup_and_Configuration">
- <title>Core Setup and Configuration</title>
- <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-portlet.xml">
- <title>portlet.xml</title>
- <para>
- The basic JSR-329 portlet configuration.
- </para>
-
+ If you are new to these concepts, we highly recommend you refer to <xref
linkend="sect-Reference_Guide-Getting_started_with_JBoss_Portlet_Bridge-Maven_Archetypes"
/>.
+ </para> --> <section
id="sect-Reference_Guide-Bridge_Configuration-Core_Setup_and_Configuration">
+ <title>Core Setup and Configuration</title>
+ <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-portlet.xml">
+ <title>portlet.xml</title>
+ <para>
+ The basic JSR-329 portlet configuration.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default197.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- When <parameter>preserveActionParams</parameter> is set to
<parameter>TRUE</parameter>, the bridge must maintain any request parameters
assigned during the portlet's action request.
- </para>
- <para>
- The request parameters are maintained in the <emphasis>"bridge request
scope"</emphasis>. When this attribute is not present or is
<parameter>FALSE</parameter> the action's request parameters are only
maintained for the duration of the <emphasis>portlet request
scope</emphasis>.
- </para>
-
+ <para>
+ When <parameter>preserveActionParams</parameter> is set to
<parameter>TRUE</parameter>, the bridge must maintain any request parameters
assigned during the portlet's action request.
+ </para>
+ <para>
+ The request parameters are maintained in the <emphasis>"bridge
request scope"</emphasis>. When this attribute is not present or is
<parameter>FALSE</parameter> the action's request parameters are only
maintained for the duration of the <emphasis>portlet request
scope</emphasis>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default198.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-faces_config.xml">
- <title>faces-config.xml</title>
- <para>
- The <parameter>PortletViewHandler</parameter> ensures that each JSF
portlet instance is properly namespaced.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-faces_config.xml">
+ <title>faces-config.xml</title>
+ <para>
+ The <parameter>PortletViewHandler</parameter> ensures that
each JSF portlet instance is properly namespaced.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default199.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-Facelets_Configuration">
- <title>Facelets Configuration</title>
- <para>
- The following <filename>web.xml</filename> setting is only for
<literal>Facelets</literal> based applications
- </para>
- <section id="sect-Reference_Guide-Facelets_Configuration-web.xml">
- <title>web.xml</title>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-Facelets_Configuration">
+ <title>Facelets Configuration</title>
+ <para>
+ The following <filename>web.xml</filename> setting is only
for <literal>Facelets</literal> based applications
+ </para>
+ <section
id="sect-Reference_Guide-Facelets_Configuration-web.xml">
+ <title>web.xml</title>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default200.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
-
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default201.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <variablelist
id="vari-Reference_Guide-web.xml-RenderPolicy_Options">
- <title>RenderPolicy Options</title>
- <varlistentry>
- <term>ALWAYS_DELEGATE</term>
- <listitem>
- <para>
- Indicates the bridge should not render the view itself but rather always delegate
the rendering.
- </para>
+ <variablelist
id="vari-Reference_Guide-web.xml-RenderPolicy_Options">
+ <title>RenderPolicy Options</title>
+ <varlistentry>
+ <term>ALWAYS_DELEGATE</term>
+ <listitem>
+ <para>
+ Indicates the bridge should not render the view itself
but rather always delegate the rendering.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>NEVER_DELEGATE</term>
- <listitem>
- <para>
- Indicates the bridge should always render the view itself and never delegate.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>NEVER_DELEGATE</term>
+ <listitem>
+ <para>
+ Indicates the bridge should always render the view itself
and never delegate.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>DEFAULT</term>
- <listitem>
- <para>
- Directs the bridge to first delegate the render only if an Exception is thrown
then render the view based on its own logic. If the configuration parameter is not present
or has an invalid value the bridge renders using default behavior as it would if DEFAULT
was set.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>DEFAULT</term>
+ <listitem>
+ <para>
+ Directs the bridge to first delegate the render only if
an Exception is thrown then render the view based on its own logic. If the configuration
parameter is not present or has an invalid value the bridge renders using default behavior
as it would if DEFAULT was set.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-JSP_Only_Configuration">
- <title>JSP Only Configuration</title>
- <para>
- The following <filename>web.xml</filename> setting is only for JSP based
applications. Download the demonstration application <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/trunk/examples/jsf...;.
- </para>
- <section id="sect-Reference_Guide-JSP_Only_Configuration-web.xml">
- <title>web.xml</title>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Core_Setup_and_Configuration-JSP_Only_Configuration">
+ <title>JSP Only Configuration</title>
+ <para>
+ The following <filename>web.xml</filename> setting is only
for JSP based applications. Download the demonstration application <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/trunk/examples/jsf...;.
+ </para>
+ <section
id="sect-Reference_Guide-JSP_Only_Configuration-web.xml">
+ <title>web.xml</title>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default202.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <!-- Section removed as per feedback from Prabhat Jha
+ </section>
+
+ <!-- Section removed as per feedback from Prabhat Jha
<section id="sect-Reference_Guide-Core_Setup_and_Configuration-JSR_329">
- <title>JSR-329</title>
- <para>
- The JBoss Portlet Bridge can be used with any compatible implementation (for example,
<literal>MyFaces</literal> implementation). Simply put the following into
<filename>web.xml</filename>:
- </para>
-
+ <title>JSR-329</title>
+ <para>
+ The JBoss Portlet Bridge can be used with any compatible implementation
(for example, <literal>MyFaces</literal> implementation). Simply put the
following into <filename>web.xml</filename>:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default203.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section> -->
- </section>
-
- <!-- End 301 core setup --> <section
id="sect-Reference_Guide-Bridge_Configuration-RichFaces_Setup_and_Configuration_Options">
- <title>RichFaces Setup and Configuration Options</title>
- <section
id="sect-Reference_Guide-RichFaces_Setup_and_Configuration_Options-web.xml">
- <title>web.xml</title>
- <para>
- The following configuration is designated for portlets using the
<application>RichFaces</application> library. These settings will vary based
on your individual needs.
- </para>
- <para>
- See <ulink
url="http://www.jboss.org/file-access/default/members/jbossrichfaces...
this section</ulink> of the <application>RichFaces</application>
documentation for more details.
- </para>
- <para>
- Sometimes it is better to use the "<parameter>ALL</parameter>"
load strategy in portlets so you do not need to worry about loading the
"framework.pack.js" and "ui.pack.js" files manually in your portlet
header.
- </para>
-
+ </section> -->
+ </section>
+
+ <!-- End 301 core setup --> <section
id="sect-Reference_Guide-Bridge_Configuration-RichFaces_Setup_and_Configuration_Options">
+ <title>RichFaces Setup and Configuration Options</title>
+ <section
id="sect-Reference_Guide-RichFaces_Setup_and_Configuration_Options-web.xml">
+ <title>web.xml</title>
+ <para>
+ The following configuration is designated for portlets using the
<application>RichFaces</application> library. These settings will vary based
on your individual needs.
+ </para>
+ <para>
+ See <ulink
url="http://www.jboss.org/file-access/default/members/jbossrichfaces...
this section</ulink> of the <application>RichFaces</application>
documentation for more details.
+ </para>
+ <para>
+ Sometimes it is better to use the
"<parameter>ALL</parameter>" load strategy in portlets so you do not
need to worry about loading the "framework.pack.js" and "ui.pack.js"
files manually in your portlet header.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default204.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <note>
- <para>
- If you use the "<parameter>NONE</parameter>" strategy, you
must include the following scripts in your portlet or portal page header. If you are using
<application>JBoss Portal</application>, you can add this to the
<filename>jboss-portlet.xml</filename> file.
- </para>
+ <note>
+ <para>
+ If you use the "<parameter>NONE</parameter>"
strategy, you must include the following scripts in your portlet or portal page header. If
you are using <application>JBoss Portal</application>, you can add this to the
<filename>jboss-portlet.xml</filename> file.
+ </para>
- </note>
- <para>
- The <literal>org.ajax4jsf.RESOURCE_URI_PREFIX</literal> configuration
cross-references the path to your scripts below. These settings are required for
<application>RichFaces</application> using the
"<parameter>NONE</parameter>" strategy.
- </para>
-
+ </note>
+ <para>
+ The <literal>org.ajax4jsf.RESOURCE_URI_PREFIX</literal>
configuration cross-references the path to your scripts below. These settings are required
for <application>RichFaces</application> using the
"<parameter>NONE</parameter>" strategy.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default205.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- <application>Seam</application> automatically configures your Ajax4JSF
Filter, so if you are running a <application>Seam</application> portlet, you
do not need the following Filter configuration (however, you do need the
<literal>RESOURCE_URI_PREFIX</literal> no matter what).
- </para>
-
+ <para>
+ <application>Seam</application> automatically configures your
Ajax4JSF Filter, so if you are running a <application>Seam</application>
portlet, you do not need the following Filter configuration (however, you do need the
<literal>RESOURCE_URI_PREFIX</literal> no matter what).
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default206.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-RichFaces_Setup_and_Configuration_Options-Configuration_needed_for_Richfaces_to_work_with_WSRP_and_PortletBridge">
- <!-- Content added from JBEPP-708 and JBQA-3999 -->
<title>Configuration needed for Richfaces to work with WSRP and
PortletBridge</title>
- <para>
- Use the following settings in <filename>web.xml</filename> when running
WSRP portlets:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-RichFaces_Setup_and_Configuration_Options-Configuration_needed_for_Richfaces_to_work_with_WSRP_and_PortletBridge">
+ <!-- Content added from JBEPP-708 and JBQA-3999 -->
<title>Configuration needed for Richfaces to work with WSRP and
PortletBridge</title>
+ <para>
+ Use the following settings in <filename>web.xml</filename>
when running WSRP portlets:
+ </para>
+
<programlisting language="XML"
role="XML"><context-param>
<param-name>org.jboss.portletbridge.WRAP_SCRIPTS</param-name>
<param-value>false</param-value>
@@ -173,10 +173,10 @@
<param-value>DEFAULT</param-value>
</context-param>
</programlisting>
- <para>
- The styles below must also be manually added to the facelets template header in the
<filename><replaceable>JBOSS_HOME</replaceable>/portletbridge/examples/richFacesPortlet-<replaceable><VERSION></replaceable>.war:richFacesPortlet.war/templates/main.xhtml</filename>
file.
- </para>
-
+ <para>
+ The styles below must also be manually added to the facelets template
header in the
<filename><replaceable>JBOSS_HOME</replaceable>/portletbridge/examples/richFacesPortlet-<replaceable><VERSION></replaceable>.war:richFacesPortlet.war/templates/main.xhtml</filename>
file.
+ </para>
+
<programlisting language="XML" role="XML"><link
rel="stylesheet" type="text/css"
href="/richFacesPortlet/faces/rfResorg/richfaces/renderkit/html/css/basic_both.xcss"/>
<link rel="stylesheet" type="text/css"
@@ -184,698 +184,698 @@
<link rel="stylesheet" type="text/css"
href="/richFacesPortlet/faces/rfRes/org/richfaces/skin.xcss"/>
</programlisting>
- <para>
- The table below outlines the current status of RichFaces features when used in both
local and remote portlets.
- </para>
- <table
id="tabl-Reference_Guide-Configuration_needed_for_Richfaces_to_work_with_WSRP_and_PortletBridge-RichFaces_Feature_Status">
- <title>RichFaces Feature Status</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- Richfaces Component
- </entry>
- <entry>
- Supported as Local Portlet
- </entry>
- <entry>
- Supported as Remote Portlet using WSRP
- </entry>
+ <para>
+ The table below outlines the current status of RichFaces features when
used in both local and remote portlets.
+ </para>
+ <table
id="tabl-Reference_Guide-Configuration_needed_for_Richfaces_to_work_with_WSRP_and_PortletBridge-RichFaces_Feature_Status">
+ <title>RichFaces Feature Status</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ Richfaces Component
+ </entry>
+ <entry>
+ Supported as Local Portlet
+ </entry>
+ <entry>
+ Supported as Remote Portlet using WSRP
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>a4j:commandButton</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <literal>a4j:commandButton</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:commandLink</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:commandLink</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:jsFunction</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:jsFunction</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:push</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:push</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:poll</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:poll</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:queue</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:queue</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:status</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:status</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:keepAlive</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:keepAlive</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:include</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:include</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:loadStyle</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:loadStyle</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:loadScript</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:loadScript</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:ajaxValidator</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:ajaxValidator</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:beanValidator</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:beanValidator</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:graphValidator</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:graphValidator</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:mediaOutput</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:mediaOutput</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:outputPanel</literal>
- </entry>
- <entry>
- Yes (except Firefox 3.5)
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:outputPanel</literal>
+ </entry>
+ <entry>
+ Yes (except Firefox 3.5)
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:log</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:log</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:dataTable</literal>
- </entry>
- <entry>
- Yes (except Firefox 3.6 and IE8)
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:dataTable</literal>
+ </entry>
+ <entry>
+ Yes (except Firefox 3.6 and IE8)
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>a4j:dataFilterSlider</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>a4j:dataFilterSlider</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:dataGrid</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:dataGrid</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:dataList</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:dataList</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:datascroller</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:datascroller</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:extendedDataTable</literal>
- </entry>
- <entry>
- Yes (except IE7)
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:extendedDataTable</literal>
+ </entry>
+ <entry>
+ Yes (except IE7)
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:repeat</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:repeat</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:scrollableDataTable</literal>
- </entry>
- <entry>
- Yes (except Firefox 3.6)
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:scrollableDataTable</literal>
+ </entry>
+ <entry>
+ Yes (except Firefox 3.6)
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>drag-drop support</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>drag-drop support</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:contextMenu</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:contextMenu</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:dropDownMenu</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:dropDownMenu</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:tree</literal>
- </entry>
- <entry>
- Yes (except Firefox 3.5)
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:tree</literal>
+ </entry>
+ <entry>
+ Yes (except Firefox 3.5)
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:modalPanel</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:modalPanel</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:paint2d</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:paint2d</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:panel</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:panel</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:panelBar</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:panelBar</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:panelMenu</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:panelMenu</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:progressBar</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:progressBar</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:separator</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:separator</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:simpleTogglePanel</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:simpleTogglePanel</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:spacer</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:spacer</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:tabPanel</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes (except tab deletion)
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:tabPanel</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes (except tab deletion)
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:togglePanel</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:togglePanel</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:toolBar</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:toolBar</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:toolTip</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:toolTip</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:calendar</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:calendar</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:colorPicker</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:colorPicker</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:comboBox</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:comboBox</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:editor</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:editor</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:fileUpload</literal>
- </entry>
- <entry>
- No
- </entry>
- <entry>
- No
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:fileUpload</literal>
+ </entry>
+ <entry>
+ No
+ </entry>
+ <entry>
+ No
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:inplaceSelect</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:inplaceSelect</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:inplaceInput</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:inplaceInput</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:inputNumberSpinner</literal>
- </entry>
- <entry>
- Yes (except IE7)
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:inputNumberSpinner</literal>
+ </entry>
+ <entry>
+ Yes (except IE7)
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:inputNumberSlider</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:inputNumberSlider</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:suggestionBox</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:suggestionBox</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:listShuttle</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:listShuttle</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:orderingList</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:orderingList</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
- <row>
- <entry>
- <literal>rich:pickList</literal>
- </entry>
- <entry>
- Yes
- </entry>
- <entry>
- Yes
- </entry>
+ </row>
+ <row>
+ <entry>
+ <literal>rich:pickList</literal>
+ </entry>
+ <entry>
+ Yes
+ </entry>
+ <entry>
+ Yes
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <!-- DO NOT UNCOMMENT <section>
+ </section>
+
+ <!-- DO NOT UNCOMMENT <section>
<title>jboss-portlet.xml</title>
<para>
To avoid scripts loading more than once from different portlet windows you can define
additional scripts in
@@ -891,138 +891,138 @@
</portlet>
]]></programlisting>
</section> -->
- </section>
-
- <section
id="sect-Reference_Guide-Bridge_Configuration-Seam_Setup_and_Configuration_Options">
- <title>Seam Setup and Configuration Options</title>
- <section
id="sect-Reference_Guide-Seam_Setup_and_Configuration_Options-Configuration">
- <title>Configuration</title>
- <para>
- The <literal>ExceptionHandler</literal> is used to clean
<application>Seam</application> contexts and transactions after errors.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Bridge_Configuration-Seam_Setup_and_Configuration_Options">
+ <title>Seam Setup and Configuration Options</title>
+ <section
id="sect-Reference_Guide-Seam_Setup_and_Configuration_Options-Configuration">
+ <title>Configuration</title>
+ <para>
+ The <literal>ExceptionHandler</literal> is used to clean
<application>Seam</application> contexts and transactions after errors.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default207.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <!-- Section removed as per feedback from Prabhat Jha
+ <!-- Section removed as per feedback from Prabhat Jha
<para>
- If you are using this bridge version from <literal>2.0.0.BETA</literal>
through <literal>2.0.0.CR1</literal>, you must define the following
<filename>web.xml</filename> parameter to use the JBoss Portlet Bridge
provided Seam Phase Listener. This is done by the bridge automatically (if needed) in
<literal>2.0.0.FINAL</literal>.
- </para>
-
+ If you are using this bridge version from
<literal>2.0.0.BETA</literal> through
<literal>2.0.0.CR1</literal>, you must define the following
<filename>web.xml</filename> parameter to use the JBoss Portlet Bridge
provided Seam Phase Listener. This is done by the bridge automatically (if needed) in
<literal>2.0.0.FINAL</literal>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default208.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting> -->
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Bridge_Configuration-Portlet_2.0_Coordination">
- <title>Portlet 2.0 Coordination</title>
- <note>
- <title>Schema and XSD Definitions</title>
- <para>
- It is important to ensure, before using either of the following mechanisms, that the
proper 2.0 schema and xsd are defined at the top of your
<filename>portlet.xml</filename>.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Bridge_Configuration-Portlet_2.0_Coordination">
+ <title>Portlet 2.0 Coordination</title>
+ <note>
+ <title>Schema and XSD Definitions</title>
+ <para>
+ It is important to ensure, before using either of the following
mechanisms, that the proper 2.0 schema and xsd are defined at the top of your
<filename>portlet.xml</filename>.
+ </para>
- </note>
-
+ </note>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default209.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <section
id="sect-Reference_Guide-Portlet_2.0_Coordination-Sending_and_Receiving_Events">
- <title>Sending and Receiving Events</title>
- <section
id="sect-Reference_Guide-Sending_and_Receiving_Events-Configuration">
- <title>Configuration</title>
- <para>
- Just like with any portlet 2.0 event consumer and receiver, you must define them in
the <filename>portlet.xml</filename>.
- </para>
- <!-- Unsure if community reference is appropriate enterprise doc. As per
QE concern (anross
+ <section
id="sect-Reference_Guide-Portlet_2.0_Coordination-Sending_and_Receiving_Events">
+ <title>Sending and Receiving Events</title>
+ <section
id="sect-Reference_Guide-Sending_and_Receiving_Events-Configuration">
+ <title>Configuration</title>
+ <para>
+ Just like with any portlet 2.0 event consumer and receiver, you must
define them in the <filename>portlet.xml</filename>.
+ </para>
+ <!-- Unsure if community reference is appropriate enterprise
doc. As per QE concern (anross
<para>
To see a working example, checkout the Seam Booking Demo portlet. <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/tags/2.0.0.FINAL/e...
/>
</para> --> <para>
- You must also define the following <emphasis>init params</emphasis> in
your <filename>portlet.xml</filename>.
- </para>
-
+ You must also define the following <emphasis>init
params</emphasis> in your <filename>portlet.xml</filename>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default210.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- While future versions of the 2.0 bridge will automate the dispatching and consuming
of events, at the moment you must dispatch the event in the JSF or Seam backing bean.
- </para>
-
+ <para>
+ While future versions of the 2.0 bridge will automate the dispatching
and consuming of events, at the moment you must dispatch the event in the JSF or Seam
backing bean.
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Configuration/default211.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- You must also create the event handler class by implementing the
<literal>BridgeEventHandler</literal> interface to process the event payload.
- </para>
-
+ <para>
+ You must also create the event handler class by implementing the
<literal>BridgeEventHandler</literal> interface to process the event payload.
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Configuration/BookingEventHandler.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Portlet_2.0_Coordination-Public_Render_Parameters">
- <title>Public Render Parameters</title>
- <section
id="sect-Reference_Guide-Public_Render_Parameters-Configuration">
- <title>Configuration</title>
- <para>
- Public Render Parameters (or PRPs) are one of the most powerful and simple Portlet
2.0 features. Several portlets (JSF or otherwise) can share the same render parameters.
This feature can be used to present a cohesive UI to the user across all portlets on the
page. An example would be using an employee ID to display relative data.
- </para>
- <para>
- The bridge maps a render parameter to a backing bean using settings in your
<filename>faces-config.xml</filename> and
<filename>portlet.xml</filename>.
- </para>
- <para>
- A clear and working example can be found in the Seam Booking Demo portlet. <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/tags/2.0.0.FINAL/e...
/>
- </para>
- <para>
- You must define the following <emphasis>init params</emphasis> in your
<filename>portlet.xml</filename>.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Portlet_2.0_Coordination-Public_Render_Parameters">
+ <title>Public Render Parameters</title>
+ <section
id="sect-Reference_Guide-Public_Render_Parameters-Configuration">
+ <title>Configuration</title>
+ <para>
+ Public Render Parameters (or PRPs) are one of the most powerful and
simple Portlet 2.0 features. Several portlets (JSF or otherwise) can share the same render
parameters. This feature can be used to present a cohesive UI to the user across all
portlets on the page. An example would be using an employee ID to display relative data.
+ </para>
+ <para>
+ The bridge maps a render parameter to a backing bean using settings
in your <filename>faces-config.xml</filename> and
<filename>portlet.xml</filename>.
+ </para>
+ <para>
+ A clear and working example can be found in the Seam Booking Demo
portlet. <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/tags/2.2.0.GA.EPP5...
/>
+ </para>
+ <para>
+ You must define the following <emphasis>init
params</emphasis> in your <filename>portlet.xml</filename>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default212.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Create a managed bean and <literal>public-parameter-mappings</literal>
in your <filename>faces-config.xml</filename>. This should be a basic bean
that you can bind the passed parameter to a string with
<emphasis>getter</emphasis> and <emphasis>setter</emphasis>.
- </para>
-
+ <para>
+ Create a managed bean and
<literal>public-parameter-mappings</literal> in your
<filename>faces-config.xml</filename>. This should be a basic bean that you
can bind the passed parameter to a string with <emphasis>getter</emphasis> and
<emphasis>setter</emphasis>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default213.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- You must set the parameter in the JSF or Seam backing bean, if you are providing one
from your portlet.
- </para>
-
+ <para>
+ You must set the parameter in the JSF or Seam backing bean, if you
are providing one from your portlet.
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Configuration/default214.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Then you must also implement the
<literal>BridgePublicRenderParameterHandler</literal> interface to process any
updates from the received parameter.
- </para>
-
+ <para>
+ Then you must also implement the
<literal>BridgePublicRenderParameterHandler</literal> interface to process any
updates from the received parameter.
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Configuration/default215.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Portlet_2.0_Coordination-Serving_Your_JSF_Resources_in_a_Portlet">
- <title>Serving Your JSF Resources in a Portlet</title>
- <section
id="sect-Reference_Guide-Serving_Your_JSF_Resources_in_a_Portlet-Configuration">
- <title>Configuration</title>
- <para>
- We have setup a few examples to show you how to use
<literal>EL</literal> and a simple bean that will allow you to use the portlet
resource serving mechanism within a JSF portlet.
- </para>
- <para>
- In <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/tags/2.0.0.CR1/exa...;,
you can see a very simple implementation of a Map object that uses the bridge to get and
encode a resource url served from the portlets web application.
- </para>
- <para>
- So, when you have the normal "<filename>/images</filename>",
"<filename>/styles</filename>" and other resource folders in your
web application, you can use the following <literal>EL</literal> expression to
serve them in your JSF application.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Portlet_2.0_Coordination-Serving_Your_JSF_Resources_in_a_Portlet">
+ <title>Serving Your JSF Resources in a Portlet</title>
+ <section
id="sect-Reference_Guide-Serving_Your_JSF_Resources_in_a_Portlet-Configuration">
+ <title>Configuration</title>
+ <para>
+ We have setup a few examples to show you how to use
<literal>EL</literal> and a simple bean that will allow you to use the portlet
resource serving mechanism within a JSF portlet.
+ </para>
+ <para>
+ In <ulink
url="http://anonsvn.jboss.org/repos/portletbridge/tags/2.0.0.CR1/exa...;,
you can see a very simple implementation of a Map object that uses the bridge to get and
encode a resource url served from the portlets web application.
+ </para>
+ <para>
+ So, when you have the normal
"<filename>/images</filename>",
"<filename>/styles</filename>" and other resource folders in your
web application, you can use the following <literal>EL</literal> expression to
serve them in your JSF application.
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Configuration/default216.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Just copy the <literal>ResourceBean.java</literal> code above, and add
an entry to your <filename>faces-config.xml</filename> for the bean:
- </para>
-
+ <para>
+ Just copy the <literal>ResourceBean.java</literal> code
above, and add an entry to your <filename>faces-config.xml</filename> for the
bean:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Configuration/default217.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/overview.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/overview.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/overview.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -4,56 +4,56 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JBoss_Portlet_Bridge_Overview">
- <title>JBoss Portlet Bridge Overview</title>
- <formalpara
id="form-Reference_Guide-JBoss_Portlet_Bridge_Overview-What_is_the_JBoss_Portlet_Bridge">
- <title>What is the JBoss Portlet Bridge?</title>
- <para>
- The JBoss Portlet Bridge (or <literal>JBPB</literal> for short) is a
non-final implementation of the <ulink
url="http://jcp.org/en/jsr/detail?id=329">JSR-329</ulink>
specification.
- </para>
+ <title>JBoss Portlet Bridge Overview</title>
+ <formalpara
id="form-Reference_Guide-JBoss_Portlet_Bridge_Overview-What_is_the_JBoss_Portlet_Bridge">
+ <title>What is the JBoss Portlet Bridge?</title>
+ <para>
+ The JBoss Portlet Bridge (or <literal>JBPB</literal> for short)
is an implementation of the <ulink
url="http://jcp.org/en/jsr/detail?id=329">JSR-329</ulink>
specification.
+ </para>
- </formalpara>
- <para>
- It supports the JSF 1.2 runtime within a JSR 286 portlet and with added enhancements to
support other web frameworks (such as <ulink
url="http://www.seamframework.org/">Seam</ulink> and <ulink
url="http://www.jboss.org/jbossrichfaces/">RichFaces</ulink>).
- </para>
- <para>
- It allows any Java developer to quickly get started with their JSF web application
running in a portal environment. The developer no longer needs to worry about the
underlying portlet development, portlet concepts, or the API.
- </para>
- <para>
- Find more information about the JBoss Portlet Bridge, the developers, the community at
<ulink
url="http://www.jboss.org/portletbridge/">the project
page</ulink>.
- </para>
- <formalpara
id="form-Reference_Guide-JBoss_Portlet_Bridge_Overview-Understanding_how_JSF_works_with_Portal">
- <title>Understanding how JSF works with Portal</title>
- <para>
- The portlet bridge is not a portlet. It is the mediator between the two environments
and allows JSF and Portal to be completely unaware of each other.
- </para>
+ </formalpara>
+ <para>
+ It supports the JSF 1.2 runtime within a JSR 286 portlet and with added
enhancements to support other web frameworks (such as <ulink
url="http://www.seamframework.org/">Seam</ulink> and <ulink
url="http://www.jboss.org/jbossrichfaces/">RichFaces</ulink>).
+ </para>
+ <para>
+ It allows any Java developer to quickly get started with their JSF web
application running in a portal environment. The developer no longer needs to worry about
the underlying portlet development, portlet concepts, or the API.
+ </para>
+ <para>
+ Find more information about the JBoss Portlet Bridge, the developers, the
community at <ulink
url="http://www.jboss.org/portletbridge/">the project
page</ulink>.
+ </para>
+ <formalpara
id="form-Reference_Guide-JBoss_Portlet_Bridge_Overview-Understanding_how_JSF_works_with_Portal">
+ <title>Understanding how JSF works with Portal</title>
+ <para>
+ The portlet bridge is not a portlet. It is the mediator between the two
environments and allows JSF and Portal to be completely unaware of each other.
+ </para>
- </formalpara>
- <para>
- The bridge is used to execute <literal>Faces</literal> requests on behalf
of the portlet. During each request, the <literal>Faces</literal> environment
is setup and handled by the bridge.
- </para>
- <para>
- Part of this implementation acts as a <literal>Faces</literal> controller
much as the FacesServlet does in the direct client request environment.
- </para>
- <para>
- The other part of this implementation is provided by implementing a variety of
(standard) <literal>Faces</literal> extensions.
- </para>
- <important>
- <title>Disclaimer</title>
- <para>
- This draft specification for the JSR 329 specification is not final. Any final
specification that may be published will likely contain differences, some of which may be
substantial.
- </para>
- <para>
- Publication of this draft specification is not intended to provide the basis for
implementations of the specification. This draft specification is provided AS IS.
- </para>
- <para>
- THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF CONDITION OF
TITLE OR NONINFRINGEMENT. You may copy and display this draft specification provided that
you include this notice and any existing copyright notice.
- </para>
- <para>
- Except for the limited copyright license granted above, there are no other licenses
granted to any intellectual property owned or controlled by any of the authors or
developers of this material. No other rights are granted by implication, estoppel or
otherwise.
- </para>
+ </formalpara>
+ <para>
+ The bridge is used to execute <literal>Faces</literal> requests on
behalf of the portlet. During each request, the <literal>Faces</literal>
environment is setup and handled by the bridge.
+ </para>
+ <para>
+ Part of this implementation acts as a <literal>Faces</literal>
controller much as the FacesServlet does in the direct client request environment.
+ </para>
+ <para>
+ The other part of this implementation is provided by implementing a variety of
(standard) <literal>Faces</literal> extensions.
+ </para>
+ <important>
+ <title>Disclaimer</title>
+ <para>
+ This draft specification for the JSR 329 specification is not final. Any
final specification that may be published will likely contain differences, some of which
may be substantial.
+ </para>
+ <para>
+ Publication of this draft specification is not intended to provide the basis
for implementations of the specification. This draft specification is provided AS IS.
+ </para>
+ <para>
+ THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF
CONDITION OF TITLE OR NONINFRINGEMENT. You may copy and display this draft specification
provided that you include this notice and any existing copyright notice.
+ </para>
+ <para>
+ Except for the limited copyright license granted above, there are no other
licenses granted to any intellectual property owned or controlled by any of the authors or
developers of this material. No other rights are granted by implication, estoppel or
otherwise.
+ </para>
- </important>
- <!-- <figure id="build.fig">
+ </important>
+ <!-- <figure id="build.fig">
<title>Faces in Portlet Environment</title>
<mediaobject>
<imageobject>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -4,251 +4,251 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge">
- <title>Developing Portlets with the Bridge</title>
- <para>
- This chapter demonstrates common development tasks described by the 329 specification.
- </para>
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Excluding_Attributes_from_the_Bridge_Request_Scope">
- <title>Excluding Attributes from the Bridge Request Scope</title>
- <para>
- When your application uses request attributes on a per request basis and you do not
want that particular attribute to be managed in the extended bridge request scope, you
must use the following configuration in your
<filename>faces-config.xml</filename>.
- </para>
- <para>
- In the code sample below you can see that any attribute namespaced as
<literal>foo.bar</literal> or any attribute beginning with
<literal>foo.baz(wild-card)</literal> will be excluded from the bridge request
scope and only be used per that application's request.
- </para>
-
+ <title>Developing Portlets with the Bridge</title>
+ <para>
+ This chapter demonstrates common development tasks described by the 329
specification.
+ </para>
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Excluding_Attributes_from_the_Bridge_Request_Scope">
+ <title>Excluding Attributes from the Bridge Request Scope</title>
+ <para>
+ When your application uses request attributes on a per request basis and you
do not want that particular attribute to be managed in the extended bridge request scope,
you must use the following configuration in your
<filename>faces-config.xml</filename>.
+ </para>
+ <para>
+ In the code sample below you can see that any attribute namespaced as
<literal>foo.bar</literal> or any attribute beginning with
<literal>foo.baz(wild-card)</literal> will be excluded from the bridge request
scope and only be used per that application's request.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default223.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Supporting_PortletMode_Changes">
- <title>Supporting PortletMode Changes</title>
- <para>
- A <literal>PortletMode</literal> represents a distinct render path within
an application. There are three standard modes: <emphasis>view</emphasis>,
<emphasis>edit</emphasis>, and <emphasis>help</emphasis>.
- </para>
- <para>
- The bridge's <literal>ExternalContext.encodeActionURL</literal>
recognizes the query string parameter
<literal>javax.portlet.faces.PortletMode</literal> and uses this
parameter's value to set the portlet mode on the underlying portlet
<literal>actionURL</literal> or response.
- </para>
- <para>
- Once processed it then removes this parameter from the query string. This means the
following navigation rule causes one to render the \edit.jspx viewId in the portlet edit
mode:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Supporting_PortletMode_Changes">
+ <title>Supporting PortletMode Changes</title>
+ <para>
+ A <literal>PortletMode</literal> represents a distinct render
path within an application. There are three standard modes:
<emphasis>view</emphasis>, <emphasis>edit</emphasis>, and
<emphasis>help</emphasis>.
+ </para>
+ <para>
+ The bridge's
<literal>ExternalContext.encodeActionURL</literal> recognizes the query string
parameter <literal>javax.portlet.faces.PortletMode</literal> and uses this
parameter's value to set the portlet mode on the underlying portlet
<literal>actionURL</literal> or response.
+ </para>
+ <para>
+ Once processed it then removes this parameter from the query string. This
means the following navigation rule causes one to render the
<filename>/edit.jspx</filename> viewId in the portlet edit mode:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default224.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Navigating_to_a_modes_last_viewId">
- <title>Navigating to a mode's last viewId</title>
- <para>
- By default a mode change will start in the mode's default view without any (prior)
existing state. One common portlet pattern when returning to a mode left after entering
another mode (e.g.. view -> edit -> view) is to return to the last view (and
state) of this origin mode.
- </para>
- <para>
- The bridge will explicitly encode the necessary information so that when returning to
a prior mode it can target the appropriate view and restore the appropriate state.
- </para>
- <para>
- The session attributes maintained by the bridge are intended to be used by developers
to navigate back from a mode to the last location and state of a prior mode. As such, a
developer needs to describe a dynamic navigation: "From view
<parameter>X</parameter> return to the last view of mode
<parameter>Y</parameter>".
- </para>
- <para>
- This is most easily expressed via an <literal>EL</literal> expression. For
example:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Navigating_to_a_modes_last_viewId">
+ <title>Navigating to a mode's last viewId</title>
+ <para>
+ By default a mode change will start in the mode's default view without
any (prior) existing state. One common portlet pattern when returning to a mode left after
entering another mode (e.g.. view -> edit -> view) is to return to the last
view (and state) of this origin mode.
+ </para>
+ <para>
+ The bridge will explicitly encode the necessary information so that when
returning to a prior mode it can target the appropriate view and restore the appropriate
state.
+ </para>
+ <para>
+ The session attributes maintained by the bridge are intended to be used by
developers to navigate back from a mode to the last location and state of a prior mode. As
such, a developer needs to describe a dynamic navigation: "From view
<parameter>X</parameter> return to the last view of mode
<parameter>Y</parameter>".
+ </para>
+ <para>
+ This is most easily expressed via an <literal>EL</literal>
expression. For example:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default225.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <section
id="sect-Reference_Guide-Navigating_to_a_modes_last_viewId-Note_to_Portlet_Developers">
- <title>Note to Portlet Developers</title>
- <para>
- Depending on the bridge implementation, when using values from these session scoped
attributes or any viewIds which may contain query string parameters it may be necessary to
use the wild-card syntax when identifying the rule target. In the above, for example, the
- </para>
-
+ <section
id="sect-Reference_Guide-Navigating_to_a_modes_last_viewId-Note_to_Portlet_Developers">
+ <title>Note to Portlet Developers</title>
+ <para>
+ Depending on the bridge implementation, when using values from these
session scoped attributes or any viewIds which may contain query string parameters it may
be necessary to use the wild-card syntax when identifying the rule target. In the above,
for example, the
+ </para>
+
<programlisting language="XML"
role="XML"><to-view-id>
</programlisting>
- <para>
- expression returns a <parameter>viewId</parameter> of the form
- </para>
-
+ <para>
+ expression returns a <parameter>viewId</parameter> of the
form
+ </para>
+
<programlisting language="XML"
role="XML">/viewId?javax.portlet.faces.PortletMode=view&....
</programlisting>
- <para>
- Without wild-carding, when a subsequent navigation occurs from this new view, the
navigation rules wouldn't resolve because there wouldn't be an exact match.
Likewise, the above <literal>edit.jspx</literal>
- </para>
-
+ <para>
+ Without wild-carding, when a subsequent navigation occurs from this new
view, the navigation rules wouldn't resolve because there wouldn't be an exact
match. Likewise, the above <literal>edit.jspx</literal>
+ </para>
+
<programlisting language="XML"
role="XML"><from-view-id>
</programlisting>
- <para>
- is wild-carded because there are navigation rules that target it that use a query
string:
- </para>
-
+ <para>
+ is wild-carded because there are navigation rules that target it that use
a query string:
+ </para>
+
<programlisting language="XML" role="XML">
<to-view-id> /edit.jspx?javax.portlet.faces.PortletMode=edit
</to-view-id>
</programlisting>
- <para>
- Developers are encouraged to use such wild-carding to ensure they execute properly in
the broadest set of bridge implementations.
- </para>
+ <para>
+ Developers are encouraged to use such wild-carding to ensure they execute
properly in the broadest set of bridge implementations.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Clearing_The_View_History_When_Changing_Portlet_Modes">
- <title>Clearing The View History When Changing Portlet Modes</title>
- <para>
- By default the bridge remembers the view history when you switch to a different
portlet mode (like "Help" or "Edit"). You can use the following
parameter in your <filename>portlet.xml</filename> to use the default viewId
each time you switch modes.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Clearing_The_View_History_When_Changing_Portlet_Modes">
+ <title>Clearing The View History When Changing Portlet Modes</title>
+ <para>
+ By default the bridge remembers the view history when you switch to a
different portlet mode (like "Help" or "Edit"). You can use the
following parameter in your <filename>portlet.xml</filename> to use the
default viewId each time you switch modes.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default230.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-General_Error_Handling">
- <title>General Error Handling</title>
- <note>
- <para>
- If you are developing a <application>Seam</application> portlet you can
now use <filename>pages.xml</filename> for all error handling.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-General_Error_Handling">
+ <title>General Error Handling</title>
+ <note>
+ <para>
+ If you are developing a <application>Seam</application>
portlet you can now use <filename>pages.xml</filename> for all error
handling.
+ </para>
- </note>
- <para>
- The following configuration may be used to handle exceptions. This is also useful for
handling session timeout and <literal>ViewExpiredExceptions</literal>.
- </para>
- <note>
- <title>The Location Element</title>
- <para>
- The location element must contain the <filename>/faces/</filename>
mapping to work properly.
- </para>
+ </note>
+ <para>
+ The following configuration may be used to handle exceptions. This is also
useful for handling session timeout and
<literal>ViewExpiredExceptions</literal>.
+ </para>
+ <note>
+ <title>The Location Element</title>
+ <para>
+ The location element must contain the
<filename>/faces/</filename> mapping to work properly.
+ </para>
- </note>
-
+ </note>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default231.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Custom_Ajax_Error_Handling">
- <title>Custom Ajax Error Handling</title>
- <para>
- By default, error handling is sent to a standard servlet page for Ajax requests. To
handle the error inside the portlet, use the following javascript:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Custom_Ajax_Error_Handling">
+ <title>Custom Ajax Error Handling</title>
+ <para>
+ By default, error handling is sent to a standard servlet page for Ajax
requests. To handle the error inside the portlet, use the following javascript:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default232.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Also, add the following to <filename>web.xml</filename>.
- </para>
-
+ <para>
+ Also, add the following to <filename>web.xml</filename>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default233.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Read more about these settings here <ulink
url="http://docs.jboss.org/richfaces/3.3.X/3.3.3.Final/en/devguide/h...
Errors and Session Expiration Handling</ulink>
- </para>
+ <para>
+ Read more about these settings here <ulink
url="http://docs.jboss.org/richfaces/3.3.X/3.3.3.Final/en/devguide/h...
Errors and Session Expiration Handling</ulink>
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Communication_Between_Your_Portlets">
- <title>Communication Between Your Portlets</title>
- <para>
- There are four different ways to send messages, events, and parameters between
portlets which are contained in different <literal>ears/wars</literal> or
contained in the same <literal>war</literal>.
- </para>
- <para>
- Having two portlets in the same <literal>war</literal> or having them
separated does not affect the Portlet Container because each portlet has a different
<parameter>HttpSession</parameter>.
- </para>
- <para>
- The recommended way to share a parameter or event payload between two or more portlets
with the Portlet 2.0 specification are the <xref
linkend="sect-Reference_Guide-Portlet_2.0_Coordination-Public_Render_Parameters"
/> and <xref
linkend="sect-Reference_Guide-Portlet_2.0_Coordination-Sending_and_Receiving_Events"
/> mechanisms.
- </para>
- <para>
- This allows you to decouple your application from surgically managing objects in the
<parameter>PortletSession.APPLICATION_SCOPE.</parameter>
- </para>
- <para>
- However, if these do not meet your use case or you have a different strategy, you can
use one of the following methods.
- </para>
- <section
id="sect-Reference_Guide-Communication_Between_Your_Portlets-Storing_Components_in_PortletSession.APPLICATION_SCOPE">
- <title>Storing Components in
<parameter>PortletSession.APPLICATION_SCOPE</parameter></title>
- <para>
- Sometimes it is beneficial to store your <application>Seam</application>
components in the portlet <parameter>APPLICATION_SCOPE</parameter>.
- </para>
- <para>
- By default, these objects are stored in the
<parameter>PORTLET_SCOPE</parameter> but with the annotation below, this class
can be pulled out of the <literal>PortletSession</literal> and its values used
in other portlets across different <application>Seam</application>
applications.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Communication_Between_Your_Portlets">
+ <title>Communication Between Your Portlets</title>
+ <para>
+ There are four different ways to send messages, events, and parameters
between portlets which are contained in different <literal>ears/wars</literal>
or contained in the same <literal>war</literal>.
+ </para>
+ <para>
+ Having two portlets in the same <literal>war</literal> or having
them separated does not affect the Portlet Container because each portlet has a different
<parameter>HttpSession</parameter>.
+ </para>
+ <para>
+ The recommended way to share a parameter or event payload between two or more
portlets with the Portlet 2.0 specification are the <xref
linkend="sect-Reference_Guide-Portlet_2.0_Coordination-Public_Render_Parameters"
/> and <xref
linkend="sect-Reference_Guide-Portlet_2.0_Coordination-Sending_and_Receiving_Events"
/> mechanisms.
+ </para>
+ <para>
+ This allows you to decouple your application from surgically managing objects
in the <parameter>PortletSession.APPLICATION_SCOPE.</parameter>
+ </para>
+ <para>
+ However, if these do not meet your use case or you have a different strategy,
you can use one of the following methods.
+ </para>
+ <section
id="sect-Reference_Guide-Communication_Between_Your_Portlets-Storing_Components_in_PortletSession.APPLICATION_SCOPE">
+ <title>Storing Components in
<parameter>PortletSession.APPLICATION_SCOPE</parameter></title>
+ <para>
+ Sometimes it is beneficial to store your
<application>Seam</application> components in the portlet
<parameter>APPLICATION_SCOPE</parameter>.
+ </para>
+ <para>
+ By default, these objects are stored in the
<parameter>PORTLET_SCOPE</parameter> but with the annotation below, this class
can be pulled out of the <literal>PortletSession</literal> and its values used
in other portlets across different <application>Seam</application>
applications.
+ </para>
+
<programlisting language="Java"
role="JAVA">(a)PortletScope(PortletScope.ScopeType.APPLICATION_SCOPE)
</programlisting>
- <para>
- Then you would pull the stateful object from the session:
- </para>
-
+ <para>
+ Then you would pull the stateful object from the session:
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default235.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- This method is demonstrated in this video: <ulink
url="http://www.vimeo.com/4521877">Lesson 2: Portlet 1.0 Advanced Seam and
RichFaces</ulink>
- </para>
+ <para>
+ This method is demonstrated in this video: <ulink
url="http://www.vimeo.com/4521877">Lesson 2: Portlet 1.0 Advanced Seam and
RichFaces</ulink>
+ </para>
- </section>
-
- <section
id="sect-Reference_Guide-Communication_Between_Your_Portlets-Using_the_PortletSession">
- <title>Using the PortletSession</title>
- <para>
- If you need to access the <literal>PortletSession</literal> to simply
share a parameter or value across multiple portlets, you can use the following:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Communication_Between_Your_Portlets-Using_the_PortletSession">
+ <title>Using the PortletSession</title>
+ <para>
+ If you need to access the <literal>PortletSession</literal>
to simply share a parameter or value across multiple portlets, you can use the following:
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default236.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Then, in your JSP or Facelets page, you can use:
- </para>
-
+ <para>
+ Then, in your JSP or Facelets page, you can use:
+ </para>
+
<programlisting language="XML"
role="XML">#{httpSessionScope['your parameter name']}
</programlisting>
- <para>
- <note>
- <title>Note to Portlet Developers</title>
- <para>
- <literal>#{httpSessionScope}</literal> was implemented after
<literal>2.0.0.BETA</literal>. If you are using the
<literal>1.0</literal> bridge or pre
<literal>2.0.0.BETA</literal>, you must use the
<literal>EL</literal> variable
<literal>#{sessionApplicationScope}</literal>.
- </para>
+ <para>
+ <note>
+ <title>Note to Portlet Developers</title>
+ <para>
+ <literal>#{httpSessionScope}</literal> was
implemented after <literal>2.0.0.BETA</literal>. If you are using the
<literal>1.0</literal> bridge or pre
<literal>2.0.0.BETA</literal>, you must use the
<literal>EL</literal> variable
<literal>#{sessionApplicationScope}</literal>.
+ </para>
- </note>
- For more information about which <literal>EL</literal> variables are
provided by the bridge, read <ulink
url="http://jcp.org/aboutJava/communityprocess/edr/jsr329/index2.htm...
6.5.1 of the JSR-329 specification</ulink>.
- </para>
+ </note>
+ For more information about which <literal>EL</literal>
variables are provided by the bridge, read <ulink
url="http://jcp.org/aboutJava/communityprocess/edr/jsr329/index2.htm...
6.5.1 of the JSR-329 specification</ulink>.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Linking_to_PortletJSF_Pages_Using_houtputlink">
- <title>Linking to Portlet/JSF Pages Using h:outputlink</title>
- <para>
- For linking to any JSF/Facelets page within your portlet web application, you can use
the following.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Linking_to_PortletJSF_Pages_Using_houtputlink">
+ <title>Linking to Portlet/JSF Pages Using h:outputlink</title>
+ <para>
+ For linking to any JSF/Facelets page within your portlet web application, you
can use the following.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default238.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Redirecting_to_an_External_Page_or_Resource">
- <title>Redirecting to an External Page or Resource</title>
- <para>
- To link to a non JSF view, <emphasis>jboss.org</emphasis> for example, you
can use the following parameter.
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Redirecting_to_an_External_Page_or_Resource">
+ <title>Redirecting to an External Page or Resource</title>
+ <para>
+ To link to a non JSF view, <emphasis>jboss.org</emphasis> for
example, you can use the following parameter.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default239.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Then in your backing bean, you must call a
<parameter>redirect()</parameter>.
- </para>
-
+ <para>
+ Then in your backing bean, you must call a
<parameter>redirect()</parameter>.
+ </para>
+
<programlisting language="Java"
role="JAVA">FacesContext.getCurrentInstance().getExternalContext().redirect("http://www.jboss.org");
</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Using_Provided_EL_Variables">
- <title>Using Provided EL Variables</title>
- <para>
- All <literal>EL</literal> variables found in the JSR-329 (Portlet 2.0)
specification are available in the JBoss Portlet Bridge. For example, you can use the
following to edit the portlet preferences on the UI:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge-Using_Provided_EL_Variables">
+ <title>Using Provided EL Variables</title>
+ <para>
+ All <literal>EL</literal> variables found in the JSR-329 (Portlet
2.0) specification are available in the JBoss Portlet Bridge. For example, you can use the
following to edit the portlet preferences on the UI:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default241.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <para>
- Then in your backing bean, you must call the PortletPreferences.store() method.
- </para>
-
+ <para>
+ Then in your backing bean, you must call the PortletPreferences.store()
method.
+ </para>
+
<programlisting language="Java" role="Java"><xi:include
href="../../../extras/PortletBridge_Portlet_Development/default242.java"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
+ </section>
+
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Standard.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Standard.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortletDevelopment/Standard.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -130,7 +130,7 @@
<section id="sect-Reference_Guide-Portlet_Primer-Tutorials">
<title>Tutorials</title>
<para>
- The tutorials contained in this chapter are targeted toward portlet
developers. It is also recommend that developers read and understand the <ulink
url="http://www.jcp.org/en/jsr/detail?id=286"> JSR-286 Portlet Specification
</ulink> .
+ The tutorials contained in this chapter are targeted toward portlet
developers. It is also recommended that developers read and understand the <ulink
url="http://www.jcp.org/en/jsr/detail?id=286"> JSR-286 Portlet Specification
</ulink> .
</para>
<note>
<title>Maven</title>
@@ -140,7 +140,7 @@
</note>
<section
id="sect-Reference_Guide-Tutorials-Deploying_your_first_Portlet">
- <title>Deploying your first Portlet</title>
+ <title>Deploying your first portlet</title>
<para>
This section describes how to deploy a portlet in JBoss Enterprise Portal
Platform.
</para>
@@ -163,7 +163,7 @@
</step>
<step>
<para>
- If the example is successfully packaged, the result will be
available in:
<filename>simplesthelloworld/target/gatein-simplest-helloworld<replaceable>-1.0.0-GA-SNAPSHOT</replaceable>.war
</filename>.
+ If the example is successfully packaged, the result will be
available in: <filename>gatein-simplest-helloworld-&VZ;.GA.war
</filename>.
</para>
</step>
@@ -257,11 +257,11 @@
</para>
<programlistingco>
<areaspec>
- <area coords="10"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-extends"
/>
- <area coords="13"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-doview"
/>
- <area coords="15"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-writer"
/>
- <area coords="16"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-write"
/>
- <area coords="17"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-close"
/>
+ <area coords="6 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-extends"
/>
+ <area coords="12 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-doview"
/>
+ <area coords="14 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-writer"
/>
+ <area coords="15 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-write"
/>
+ <area coords="16 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Portlet_Class-close"
/>
</areaspec>
@@ -331,10 +331,10 @@
</para>
<programlistingco>
<areaspec>
- <area coords="8 70"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-portletname"
/>
- <area coords="9 70"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-portletclass"
/>
- <area coords="12 70"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-supports"
/>
- <area coords="15 70"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-portletinfo"
/>
+ <area coords="6 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-portletname"
/>
+ <area coords="8 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-portletclass"
/>
+ <area coords="10 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-supports"
/>
+ <area coords="13 80"
id="area-Reference_Guide-Deploying_your_first_Portlet-Application_Descriptors-portletinfo"
/>
</areaspec>
@@ -440,7 +440,7 @@
</step>
<step>
<para>
- Copy
<filename>jsphellouser/target/gatein-jsp-hellouser-<replaceable>1.0.0-GA-SNAPSHOT</replaceable>.war</filename>
to the <literal>deploy</literal> directory of JBoss Application Server.
+ Copy
<filename>jsphellouser/target/gatein-jsp-hellouser-&VZ;.GA.war</filename>
to the <literal>deploy</literal> directory of JBoss Application Server.
</para>
</step>
@@ -493,10 +493,10 @@
</para>
<programlistingco>
<areaspec>
- <area coords="18 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-doView"
/>
- <area coords="21 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-renderParameter"
/>
- <area coords="25 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-requestDispatcher"
/>
- <area coords="26 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-include"
/>
+ <area coords="17 60"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-doView"
/>
+ <area coords="20"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-renderParameter"
/>
+ <area coords="24"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-requestDispatcher"
/>
+ <area coords="25"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-include"
/>
</areaspec>
@@ -553,7 +553,7 @@
</para>
<programlistingco>
<areaspec>
- <area coords="2 100"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-processAction"
/>
+ <area coords="2 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-processAction"
/>
<area coords="5 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-getActionParameter"
/>
<area coords="6 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-Portlet_Class-setRenderParameter"
/>
@@ -601,12 +601,12 @@
</para>
<programlistingco>
<areaspec>
- <area coords="1"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-taglib"
/>
- <area coords="13"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method1"
/>
- <area coords="20"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method2.1"
/>
- <area coords="24"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method2.2"
/>
- <area coords="30"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method3.1"
/>
- <area coords="31"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method3.2"
/>
+ <area coords="1 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-taglib"
/>
+ <area coords="14 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method1"
/>
+ <area coords="20 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method2.1"
/>
+ <area coords="24 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method2.2"
/>
+ <area coords="30 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method3.1"
/>
+ <area coords="31 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSP_files_and_the_Portlet_Tag_Library-method3.2"
/>
</areaspec>
@@ -654,7 +654,7 @@
</programlistingco>
<para>
- In the third method the action phase is triggered first then the
render phase is triggered, which outputs some content back to the web browser based on the
available render parameters.
+ In the third method, the action phase is triggered first then the
render phase is triggered, which outputs some content back to the web browser based on the
available render parameters.
</para>
<mediaobject>
<imageobject role="html">
@@ -685,11 +685,11 @@
The portlet bridge libraries must be available and are usually
bundled with the <literal>WEB-INF/lib</literal> directory of the web archive.
</para>
<para>
- The other differences when compared to a regular portlet application
are in the portlet descriptor. All the relevant details about this can be found in the
JSR-301 specification that the JBoss Portlet Bridge implements.
+ The other differences when compared to a regular portlet application
are in the portlet descriptor. All the relevant details about this can be found in the
JSR-329 specification that the JBoss Portlet Bridge implements.
</para>
<programlistingco>
<areaspec>
- <area coords="9 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSF_example_using_the_JBoss_Portlet_Bridge-portlet"
/>
+ <area coords="8 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSF_example_using_the_JBoss_Portlet_Bridge-portlet"
/>
<area coords="21 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSF_example_using_the_JBoss_Portlet_Bridge-view"
/>
<area coords="26 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSF_example_using_the_JBoss_Portlet_Bridge-edit"
/>
<area coords="31 80"
id="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSF_example_using_the_JBoss_Portlet_Bridge-help"
/>
@@ -700,7 +700,7 @@
<calloutlist>
<callout
arearefs="area-Reference_Guide-JavaServer_Pages_Portlet_Example-JSF_example_using_the_JBoss_Portlet_Bridge-portlet">
<para>
- All JSF portlets define
<literal>javax.portlet.faces.GenericFacesPortlet </literal> as portlet class.
This class is part of the JBoss Portlet Bridge
+ All JSF portlets define
<literal>javax.portlet.faces.GenericFacesPortlet </literal> as portlet class.
This class is part of the JBoss Portlet Bridge.
</para>
</callout>
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,83 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Advantages_of_eXo_JCR">
- <title>Advantages of eXo JCR</title>
- <section
id="sect-Reference_Guide-Advantages_of_eXo_JCR-Application_Developers">
- <title>Application Developers</title>
- <itemizedlist>
- <listitem>
- <para>
- The data repository and the application are isolated from each other, allowing
application developers to concentrate on the business logic of a particular application
built on the top of JCR without the need to learn the details of particular data
storage's interfaces.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Repositories can be exchanged between different applications without changing the
applications themselves.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Data storage types and versions can be changed and also, different types of data
storages can be combined in one repository data model. The complexity of building
interfaces between the repository and its data storage still exists, however these changes
are isolated in the repository and thus manageable from the point of view of the
customer.
- </para>
-
- </listitem>
-
- </itemizedlist>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/jcr-490x333.gif"
width="444" />
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section id="sect-Reference_Guide-Advantages_of_eXo_JCR-Managers">
- <title>Managers</title>
- <itemizedlist>
- <listitem>
- <para>
- Using a standardized repository for content management reduces the risk of
dependence on a particular software vendor and proprietary API.
- </para>
-
- </listitem>
-
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- Costs for maintaining and developing a content repository based custom application
is significantly lower than developing and supporting your own interfaces and maintaining
your own data repository applications (staff can be trained once, it is possible to take
help from the community and the third party consultants).
- </para>
-
- </listitem>
-
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- Using a flexible layered JCR API, it is possible to fit the legacy storage subsystem
into new interfaces and decrease the costs and the risk of losing data.
- </para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- An extension to the API exists as we can see in the following layer schema.
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/JCR-Application2.jpg"
width="444" />
- </imageobject>
-
- </mediaobject>
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-advantages.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,83 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Advantages_of_eXo_JCR">
+ <title>Advantages of eXo JCR</title>
+ <section
id="sect-Reference_Guide-Advantages_of_eXo_JCR-Application_Developers">
+ <title>Application Developers</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The data repository and the application are isolated from each other, allowing
application developers to concentrate on the business logic of a particular application
built on the top of JCR without the need to learn the details of particular data
storage's interfaces.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Repositories can be exchanged between different applications without changing the
applications themselves.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Data storage types and versions can be changed and also, different types of data
storages can be combined in one repository data model. The complexity of building
interfaces between the repository and its data storage still exists, however these changes
are isolated in the repository and thus manageable from the point of view of the
customer.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/jcr-490x333.gif"
width="444" />
+ </imageobject>
+
+ </mediaobject>
+
+ </section>
+
+ <section id="sect-Reference_Guide-Advantages_of_eXo_JCR-Managers">
+ <title>Managers</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using a standardized repository for content management reduces the risk of
dependence on a particular software vendor and proprietary API.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Costs for maintaining and developing a content repository based custom application
is significantly lower than developing and supporting your own interfaces and maintaining
your own data repository applications (staff can be trained once, it is possible to take
help from the community and the third party consultants).
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using a flexible layered JCR API, it is possible to fit the legacy storage subsystem
into new interfaces and decrease the costs and the risk of losing data.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <para>
+ An extension to the API exists as we can see in the following layer schema.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/JCR-Application2.jpg"
width="444" />
+ </imageobject>
+
+ </mediaobject>
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,64 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-eXo_JCR_Application_Model">
- <title>eXo JCR Application Model</title>
- <para>
- The following image illustrates the interaction between Applications and JCR:
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/jcr-applications.gif"
width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- Every Content (JCR) dependent application interacts with the eXo JCR via JSR-170 and
the eXo JCR API extension either directly or through an intermediary Framework.
- </para>
- <note>
- <title>Note:</title>
- <para>
- Neither the application nor the framework should ever rely on the implementation
directly.
- </para>
-
- </note>
- <para>
- <emphasis role="bold">Content Application:</emphasis> all
applications may use the JCR as a data storage. Some of them are generic and completely
decoupled from the JCR API as an interaction protocol (such as a WebDav client) hides
Content storage nature. Other applications are partially decoupled (such as Command
framework based applications), meaning that they do not use the JCR API directly. Most
applications use JSR-170 directly.
- </para>
- <para>
- <emphasis role="bold">Frameworks</emphasis> are a special kind of
JCR client that act as an intermediate level between the <literal>Content
Repository</literal> and an <literal>End Client Application</literal>.
- </para>
- <para>
- Framworks are categorized as follows:
- </para>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>Protocol Specific Frameworks</term>
- <listitem>
- <para>
- Frameworks that are specific to a networking protocol include WebDav, RMI and FTP
servers.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Pattern Specific Frameworks</term>
- <listitem>
- <para>
- Frameworks that are pattern specific include Command, Web(servlet), J2EE connector
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
- <para>
- It is possible to build a multi-layered (in framework sense) JCR application, for
example Web application uses Web framework that uses Command framework underneath.
- </para>
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-applications.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,64 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-eXo_JCR_Application_Model">
+ <title>eXo JCR Application Model</title>
+ <para>
+ The following image illustrates the interaction between Applications and JCR:
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/jcr-applications.gif"
width="444" />
+ </imageobject>
+
+ </mediaobject>
+ <para>
+ Every Content (JCR) dependent application interacts with the eXo JCR via JSR-170 and
the eXo JCR API extension either directly or through an intermediary Framework.
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ Neither the application nor the framework should ever rely on the implementation
directly.
+ </para>
+
+ </note>
+ <para>
+ <emphasis role="bold">Content Application:</emphasis> all
applications may use the JCR as a data storage. Some of them are generic and completely
decoupled from the JCR API as an interaction protocol (such as a WebDav client) hides
Content storage nature. Other applications are partially decoupled (such as Command
framework based applications), meaning that they do not use the JCR API directly. Most
applications use JSR-170 directly.
+ </para>
+ <para>
+ <emphasis role="bold">Frameworks</emphasis> are a special kind of
JCR client that act as an intermediate level between the <literal>Content
Repository</literal> and an <literal>End Client Application</literal>.
+ </para>
+ <para>
+ Framworks are categorized as follows:
+ </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>Protocol Specific Frameworks</term>
+ <listitem>
+ <para>
+ Frameworks that are specific to a networking protocol include WebDav, RMI and FTP
servers.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>Pattern Specific Frameworks</term>
+ <listitem>
+ <para>
+ Frameworks that are pattern specific include Command, Web(servlet), J2EE connector
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+ <para>
+ It is possible to build a multi-layered (in framework sense) JCR application, for
example Web application uses Web framework that uses Command framework underneath.
+ </para>
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,147 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Compatibility_Levels">
- <title>Compatibility Levels</title>
- <section id="sect-Reference_Guide-Compatibility_Levels-Introduction">
- <title>Introduction</title>
- <para>
- The Java Content Repository specification JSR-170 has been split into two compliance
levels as well as a set of optional features. <literal>Level 1</literal>
defines a read-only repository while <literal>Level 2</literal> defines
methods for writing content and bi-directional interaction with the repository.
- </para>
- <para>
- The eXo JCR supports JSR-170 Level 1 and Level 2 and all optional features. The recent
JSR-283 is not yet supported.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Compatibility_Levels-Level_1">
- <title>Level 1</title>
- <para>
- Level 1 includes read-only functionality for very simple repositories. It is useful to
migrate an existing data repository and step through converting it to a more advanced
implementation. The JCR uses a well-known Session abstraction to access the repository
data.
- </para>
- <para>
- The features of Level 1:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Initiating a session calling login method with the name of desired workspace and
client credentials. It involves some security mechanisms (JAAS) to authenticate the client
and in case the client is authorized to use the data from a particular workspace, it can
retrieve the session with a workspace tied to it.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Using the obtained session, the client can retrieve data (items) by traversing the
tree, directly accessing a particular item (requesting path or UUID) or traversing the
query result. So an application developer can choose the "best" form depending
on the content structure and desired operation.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Reading property values. All content of a repository is ultimately accessed through
properties and stored in property values of predefined types (Boolean, Binary Data,
Double, Long, String) and special types Name, Reference, and Path. It is possible to read
property value without knowing its real name as a primary item.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Export to XML. The repository supports two XML/JCR data model mappings:
<literal>system</literal> and <literal>doc</literal> view. The
system view provides complete XML serialization without loss of information and is
somewhat difficult for a human to read. In contrast, the document view is human readable
but does not completely reflect the state of repository; it is used for Xpath queries.
- </para>
-
- </listitem>
- <listitem>
- <para>
- A query facility with Xpath syntax. Xpath, originally developed for XML, suits the
JCR data model as the two models are similar. Xpath is applied to the JCR as it would be
applied to the document view of the serialized repository content; returning a table of
property names and content matching the query.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Discovery of available node types. Every node should have only one primary node type
that defines names, types and other characteristics of child nodes and properties. It also
can have one or more mixin data types that defines additional characteristics. Level 1
provides methods for discovering available in repository node types and node types of a
concrete node.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Transient namespace remapping. Item name can have prefix, delimited by a single
':' (colon) character that indicates the namespace of this name. It is patterned
after XML namespaces, prefix is mapped to URI to minimize names collisions. In Level 1, a
prefix can be temporary overridden by another prefix in the scope of a session.
- </para>
-
- </listitem>
-
- </itemizedlist>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/level_1.gif" />
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section id="sect-Reference_Guide-Compatibility_Levels-Level_2">
- <title>Level 2</title>
- <para>
- JCR Level 2 includes reading and writing of content functionality, importing other
sources and managing content definition and structuring using extensible node types.
- </para>
- <para>
- In addition to the features of Level 1, it also supports the following major
features:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Adding, moving, copying and removing items inside workspace and moving, copying and
cloning items between workspaces. The client can also compare the persisted state of an
item with its unsaved states and either save the new state or discard it.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Modifying and writing value of properties. Property types are checked and can be
converted to the defined format.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Importing XML document into the repository as a tree of nodes and properties. If the
XML document is an export of JCR system view, the content of repository can be completely
restored. If this is not the case, the document is interpreted as a document view and the
import procedure builds a tree of JCR nodes and properties that matches the tree structure
of the XML document.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Assigning node types to nodes. The primary node type is assigned when adding a node.
This can be done automatically based on the parent node type definition and mixin node
types.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Persistent namespaces changes. Adding, changing and removing namespaces stored in
the namespace registry, excluding built-in namespaces required by JCR.
- </para>
-
- </listitem>
-
- </itemizedlist>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/level_2.gif" />
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section
id="sect-Reference_Guide-Compatibility_Levels-Optional_features">
- <title>Optional features</title>
- <para>
- On the top of Level 1 or Level 2, a number of optional features are defined for a more
advanced repository functionality. This includes functions such as Versioning, (JTA)
Transactions, Query using SQL, Explicit Locking and Content Observation. eXo JCR supports
all optional features.
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/optional.gif" />
- </imageobject>
-
- </mediaobject>
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,147 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Compatibility_Levels">
+ <title>Compatibility Levels</title>
+ <section id="sect-Reference_Guide-Compatibility_Levels-Introduction">
+ <title>Introduction</title>
+ <para>
+ The Java Content Repository specification JSR-170 has been split into two compliance
levels as well as a set of optional features. <literal>Level 1</literal>
defines a read-only repository while <literal>Level 2</literal> defines
methods for writing content and bi-directional interaction with the repository.
+ </para>
+ <para>
+ The eXo JCR supports JSR-170 Level 1 and Level 2 and all optional features. The recent
JSR-283 is not yet supported.
+ </para>
+
+ </section>
+
+ <section id="sect-Reference_Guide-Compatibility_Levels-Level_1">
+ <title>Level 1</title>
+ <para>
+ Level 1 includes read-only functionality for very simple repositories. It is useful to
migrate an existing data repository and step through converting it to a more advanced
implementation. The JCR uses a well-known Session abstraction to access the repository
data.
+ </para>
+ <para>
+ The features of Level 1:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Initiating a session calling login method with the name of desired workspace and
client credentials. It involves some security mechanisms (JAAS) to authenticate the client
and in case the client is authorized to use the data from a particular workspace, it can
retrieve the session with a workspace tied to it.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Using the obtained session, the client can retrieve data (items) by traversing the
tree, directly accessing a particular item (requesting path or UUID) or traversing the
query result. So an application developer can choose the "best" form depending
on the content structure and desired operation.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Reading property values. All content of a repository is ultimately accessed through
properties and stored in property values of predefined types (Boolean, Binary Data,
Double, Long, String) and special types Name, Reference, and Path. It is possible to read
property value without knowing its real name as a primary item.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Export to XML. The repository supports two XML/JCR data model mappings:
<literal>system</literal> and <literal>doc</literal> view. The
system view provides complete XML serialization without loss of information and is
somewhat difficult for a human to read. In contrast, the document view is human readable
but does not completely reflect the state of repository; it is used for Xpath queries.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ A query facility with Xpath syntax. Xpath, originally developed for XML, suits the
JCR data model as the two models are similar. Xpath is applied to the JCR as it would be
applied to the document view of the serialized repository content; returning a table of
property names and content matching the query.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Discovery of available node types. Every node should have only one primary node type
that defines names, types and other characteristics of child nodes and properties. It also
can have one or more mixin data types that defines additional characteristics. Level 1
provides methods for discovering available in repository node types and node types of a
concrete node.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Transient namespace remapping. Item name can have prefix, delimited by a single
':' (colon) character that indicates the namespace of this name. It is patterned
after XML namespaces, prefix is mapped to URI to minimize names collisions. In Level 1, a
prefix can be temporary overridden by another prefix in the scope of a session.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/level_1.gif" />
+ </imageobject>
+
+ </mediaobject>
+
+ </section>
+
+ <section id="sect-Reference_Guide-Compatibility_Levels-Level_2">
+ <title>Level 2</title>
+ <para>
+ JCR Level 2 includes reading and writing of content functionality, importing other
sources and managing content definition and structuring using extensible node types.
+ </para>
+ <para>
+ In addition to the features of Level 1, it also supports the following major
features:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Adding, moving, copying and removing items inside workspace and moving, copying and
cloning items between workspaces. The client can also compare the persisted state of an
item with its unsaved states and either save the new state or discard it.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Modifying and writing value of properties. Property types are checked and can be
converted to the defined format.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Importing XML document into the repository as a tree of nodes and properties. If the
XML document is an export of JCR system view, the content of repository can be completely
restored. If this is not the case, the document is interpreted as a document view and the
import procedure builds a tree of JCR nodes and properties that matches the tree structure
of the XML document.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Assigning node types to nodes. The primary node type is assigned when adding a node.
This can be done automatically based on the parent node type definition and mixin node
types.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Persistent namespaces changes. Adding, changing and removing namespaces stored in
the namespace registry, excluding built-in namespaces required by JCR.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/level_2.gif" />
+ </imageobject>
+
+ </mediaobject>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Compatibility_Levels-Optional_features">
+ <title>Optional features</title>
+ <para>
+ On the top of Level 1 or Level 2, a number of optional features are defined for a more
advanced repository functionality. This includes functions such as Versioning, (JTA)
Transactions, Query using SQL, Explicit Locking and Content Observation. eXo JCR supports
all optional features.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/optional.gif" />
+ </imageobject>
+
+ </mediaobject>
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,188 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Implementation">
- <!-- This document was created with Syntext Serna Free. -->
<title>Implementation</title>
- <para>
- The relationships between the eXo Repository Service components are illustrated below:
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/exojcr.gif" />
- </imageobject>
-
- </mediaobject>
- <variablelist id="vari-Reference_Guide-Implementation-Definitions">
- <title>Definitions</title>
- <varlistentry>
- <term>eXo Container:</term>
- <listitem>
- <para>
- A subclass of
<parameter>org.exoplatform.container.ExoContainer</parameter>
(<parameter>org.exoplatform.container.PortalContainer</parameter>) holds a
reference to the Repository Service.
- </para>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>Repository Service</term>
- <listitem>
- <para>
- This contains information about repositories. eXo JCR is able to manage many
Repositories.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Repository</term>
- <listitem>
- <para>
- An implementation of <literal>javax.jcr.Repository</literal>. It
holds references to one or more Workspace(s).
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Workspace</term>
- <listitem>
- <para>
- Container of a single rooted tree of Items.
- </para>
- <note>
- <title>Note:</title>
- <para>
- That here it is not exactly the same as
<literal>javax.jcr.Workspace</literal> as it is not a per Session object.
- </para>
-
- </note>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
- <para>
- The usual JCR application usecase includes two initial steps:
- </para>
- <procedure>
- <step>
- <para>
- Obtaining Repository object by getting <emphasis
role="bold">Repository Service</emphasis> via JNDI lookup if eXo
repository is bound to the naming context using (see <xref
linkend="chap-Reference_Guide-JCR_configuration" /> for details).
- </para>
-
- </step>
- <step>
- <para>
- Creating a <parameter>javax.jcr.Session object</parameter> that calls
<parameter>Repository.login(..)</parameter>.
- </para>
-
- </step>
-
- </procedure>
-
- <section
id="sect-Reference_Guide-Implementation-Workspace_Data_Model">
- <title>Workspace Data Model</title>
- <para>
- The following diagram explains which components of a eXo JCR implementation are used
in a data flow to perform operations specified in the JCR API.
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/wsdatamodel.gif"
width="444" />
- </imageobject>
-
- </mediaobject>
- <para>
- The Workspace Data Model can be split into four levels by data isolation and value
from the JCR model point of view.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The eXo JCR core implements <emphasis role="bold">JCR
API</emphasis> interfaces, such as Item, Node, Property. It contains JCR
"<emphasis>logical</emphasis>" view on stored data.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Session Level</emphasis>: isolates
transient data viewable inside one JCR Session and interacts with API level using eXo JCR
internal API.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Session Data Manager</emphasis>:
maintains transient session data. With data access/ modification/ validation logic, it
contains Modified Items Storage to hold the data changed between subsequent save() calling
and Session Items Cache.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Transaction Data Manager</emphasis>:
maintains session data between save() and transaction commit/ rollback if the current
session is part of a transaction.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Workspace Level</emphasis>: operates for
particular workspace shared data. It contains per-Workspace objects
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Workspace Storage Data
Manager:</emphasis> maintains workspace data, including final validation, events
firing, caching.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Workspace Data Container</emphasis>:
implements physical data storage. It allows different types of backend (like RDB, FS
files, etc) to be used as a storage for JCR data. With the main Data Container, other
storages for persisted Property Values can be configured and used.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Indexer:</emphasis> maintains workspace
data indexing for further queries.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Storage Level</emphasis>: Persistent
storages for:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- JCR Data
- </para>
-
- </listitem>
- <listitem>
- <para>
- Indexes (Apache Lucene)
- </para>
-
- </listitem>
- <listitem>
- <para>
- Values (e.g., for BLOBs) if different from the main Data Container
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
-
-</chapter>
-
Added:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-exo-implementation.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,188 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Implementation">
+ <!-- This document was created with Syntext Serna Free. -->
<title>Implementation</title>
+ <para>
+ The relationships between the eXo Repository Service components are illustrated below:
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/exojcr.gif" />
+ </imageobject>
+
+ </mediaobject>
+ <variablelist id="vari-Reference_Guide-Implementation-Definitions">
+ <title>Definitions</title>
+ <varlistentry>
+ <term>eXo Container:</term>
+ <listitem>
+ <para>
+ A subclass of
<parameter>org.exoplatform.container.ExoContainer</parameter>
(<parameter>org.exoplatform.container.PortalContainer</parameter>) holds a
reference to the Repository Service.
+ </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>Repository Service</term>
+ <listitem>
+ <para>
+ This contains information about repositories. eXo JCR is able to manage many
Repositories.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>Repository</term>
+ <listitem>
+ <para>
+ An implementation of <literal>javax.jcr.Repository</literal>. It
holds references to one or more Workspace(s).
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>Workspace</term>
+ <listitem>
+ <para>
+ Container of a single rooted tree of Items.
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ That here it is not exactly the same as
<literal>javax.jcr.Workspace</literal> as it is not a per Session object.
+ </para>
+
+ </note>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+ <para>
+ The usual JCR application usecase includes two initial steps:
+ </para>
+ <procedure>
+ <step>
+ <para>
+ Obtaining Repository object by getting <emphasis
role="bold">Repository Service</emphasis> via JNDI lookup if eXo
repository is bound to the naming context using (see <xref
linkend="chap-Reference_Guide-JCR_configuration" /> for details).
+ </para>
+
+ </step>
+ <step>
+ <para>
+ Creating a <parameter>javax.jcr.Session object</parameter> that calls
<parameter>Repository.login(..)</parameter>.
+ </para>
+
+ </step>
+
+ </procedure>
+
+ <section
id="sect-Reference_Guide-Implementation-Workspace_Data_Model">
+ <title>Workspace Data Model</title>
+ <para>
+ The following diagram explains which components of a eXo JCR implementation are used
in a data flow to perform operations specified in the JCR API.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/wsdatamodel.gif"
width="444" />
+ </imageobject>
+
+ </mediaobject>
+ <para>
+ The Workspace Data Model can be split into four levels by data isolation and value
from the JCR model point of view.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The eXo JCR core implements <emphasis role="bold">JCR
API</emphasis> interfaces, such as Item, Node, Property. It contains JCR
"<emphasis>logical</emphasis>" view on stored data.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Session Level</emphasis>: isolates
transient data viewable inside one JCR Session and interacts with API level using eXo JCR
internal API.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Session Data Manager</emphasis>:
maintains transient session data. With data access/ modification/ validation logic, it
contains Modified Items Storage to hold the data changed between subsequent save() calling
and Session Items Cache.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Transaction Data Manager</emphasis>:
maintains session data between save() and transaction commit/ rollback if the current
session is part of a transaction.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Workspace Level</emphasis>: operates for
particular workspace shared data. It contains per-Workspace objects
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Workspace Storage Data
Manager:</emphasis> maintains workspace data, including final validation, events
firing, caching.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Workspace Data Container</emphasis>:
implements physical data storage. It allows different types of backend (like RDB, FS
files, etc) to be used as a storage for JCR data. With the main Data Container, other
storages for persisted Property Values can be configured and used.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Indexer:</emphasis> maintains workspace
data indexing for further queries.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Storage Level</emphasis>: Persistent
storages for:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ JCR Data
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Indexes (Apache Lucene)
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Values (e.g., for BLOBs) if different from the main Data Container
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,285 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-JCR_Extensions">
- <title>JCR Extensions</title>
- <section
id="sect-Reference_Guide-JCR_Extensions-JCR_Service_Extensions">
- <title>JCR Service Extensions</title>
- <section id="sect-Reference_Guide-JCR_Service_Extensions-Concept">
- <title>Concept</title>
- <para>
- eXo JCR supports <emphasis role="bold">observation</emphasis>
(JSR-170 8.3), which enables applications to register interest in events that describe
changes to a workspace, and then monitor and respond to those events. The standard
observation feature allows dispatching events when <emphasis
role="bold">persistent change</emphasis> to the workspace is made.
- </para>
- <para>
- eXo JCR also offers a proprietary <emphasis role="bold">Extension
Action</emphasis> which dispatches and activates an event upon each <emphasis
role="bold">transient session level change</emphasis>, performed by a
client. In other words, the event is triggered when a client's program invokes some
updating methods (such as: <literal>Session.addNode()</literal>,
<literal>Session.setProperty()</literal>,
<literal>Workspace.move()</literal>) in a session or a workspace.
- </para>
- <note>
- <title>Note:</title>
- <para>
- Each action will add its own execution time to the standard JCR methods
(<literal>Session.addNode()</literal>,
<literal>Session.setProperty()</literal>,
<literal>Workspace.move()</literal>) execution time. As a consequence,
it's necessary to minimize Action.execute(Context) body execution time.
- </para>
-
- </note>
- <para>
- To make the rule, you can use the dedicated Thread in
<literal>Action.execute(Context)</literal> body for a custom logic.
- </para>
- <para>
- However, if your application logic requires the action to add items to a created or
updated item and you save these changes immediately after the JCR API method call is
returned, the suggestion with Thread is not applicable for you in this case.
- </para>
- <figure id="figu-Reference_Guide-Concept-Implementation">
- <title>Implementation</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/interceptor.jpg"
width="444" />
- </imageobject>
-
- </mediaobject>
-
- </figure>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Service_Extensions-Configuration">
- <title>Configuration</title>
- <para>
- Add a <literal>SessionActionCatalog</literal> service and an appropriate
<literal>AddActionsPlugin</literal> (see the example below) configuration to
your eXo Container configuration.
- </para>
- <para>
- Each Action entry is exposed as
<literal>org.exoplatform.services.jcr.impl.ext.action</literal>.
<literal>ActionConfiguration</literal> of actions collection of
<literal>org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig</literal>
(see an example below).
- </para>
- <para>
- The mandatory field named <literal>actionClassName</literal> is the fully
qualified name of <literal>org.exoplatform.services.command.action.Action
implementation</literal>. The command will be launched in case the current event
matches the <emphasis role="bold">criteria</emphasis>. All other
fields are criteria. The criteria are appended together with *<emphasis
role="bold">AND</emphasis>* operations.
- </para>
- <para>
- In other words, for a particular item to be listened to, it must meet ALL the
criteria:
- </para>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>Workspace</term>
- <listitem>
- <para>
- The comma delimited (ORed) list of workspaces.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>eventTypes</term>
- <listitem>
- <para>
- A comma delimited (ORed) <emphasis role="bold">list of event
names</emphasis> (see below) to be listened to. This is the only mandatory field,
others are optional and if they are missing they are interpreted as ANY.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>path</term>
- <listitem>
- <para>
- A comma delimited (ORed) list of <emphasis role="bold">item
absolute paths</emphasis> (or within its subtree if <emphasis
role="bold">isDeep</emphasis> is <emphasis
role="bold">true</emphasis>, which is the default value).
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>nodeTypes</term>
- <listitem>
- <para>
- A comma delimited (ORed) list of the <emphasis role="bold">current
NodeType</emphasis>.
- </para>
- <para>
- Since version 1.6.1 JCR supports the functionalities of
<literal>nodeType</literal> and <literal>parentNodeType</literal>.
This parameter has different semantics depending on the type of the current item and the
operation performed:
- </para>
- <para>
- If the current item is a <emphasis
role="bold">property</emphasis> it means the <emphasis
role="bold">parent node type</emphasis>.
- </para>
- <para>
- If the current item is a <emphasis
role="bold">node,</emphasis> the semantic depends on the event type:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">add node event</emphasis>: the node
type of the newly added node.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">add mixin event</emphasis>: the
newly added mixing node type of the current node.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">remove mixin event</emphasis> the
removed mixin type of the current node.
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">other events</emphasis>: the already
assigned NodeType(s) of the current node (can be both primary and mixin).
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
- <note>
- <title>Note</title>
- <para>
- Remember the following points:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The list of fields can be extended.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Do not use spaces between list elements.
- </para>
-
- </listitem>
- <listitem>
- <para>
- The <literal>sDeep=false</literal> property means node, node
properties and child nodes.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </note>
- <para>
- The list of supported Event names is:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">addNode</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">addProperty</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">changeProperty</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">removeProperty</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">removeNode</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">addMixin</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">removeMixin</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">lock</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">unlock</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">checkin</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">checkout</emphasis>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">read</emphasis>
- </para>
-
- </listitem>
-
- </itemizedlist>
-
-<programlisting language="XML"
role="XML"><component>
-
<type>org.exoplatform.services.jcr.impl.ext.action.SessionActionCatalog</type>
- <component-plugins>
- <component-plugin>
- <name>addActions</name>
- <set-method>addPlugin</set-method>
-
<type>org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin</type>
- <description>add actions plugin</description>
- <init-params>
- <object-param>
- <name>actions</name>
- <object
type="org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig">
- <field name="actions">
- <collection type="java.util.ArrayList">
- <value>
- <object
type="org.exoplatform.services.jcr.impl.ext.action.ActionConfiguration">
- <field
name="eventTypes"><string>addNode,removeNode</string></field>
- <field
name="path"><string>/test,/exo:test</string></field>
- <field
name="isDeep"><boolean>true</boolean></field>
- <field
name="nodeTypes"><string>nt:file,nt:folder,mix:lockable</string></field>
- <!-- field
name="workspace"><string>backup</string></field
-->
- <field
name="actionClassName"><string>org.exoplatform.services.jcr.ext.DummyAction</string></field>
- </object>
- </value>
- </collection>
- </field>
- </object>
- </object-param>
- </init-params>
- </component-plugin>
- </component-plugins>
-</component></programlisting>
-
- </section>
-
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-extensions.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,285 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-JCR_Extensions">
+ <title>JCR Extensions</title>
+ <section
id="sect-Reference_Guide-JCR_Extensions-JCR_Service_Extensions">
+ <title>JCR Service Extensions</title>
+ <section id="sect-Reference_Guide-JCR_Service_Extensions-Concept">
+ <title>Concept</title>
+ <para>
+ eXo JCR supports <emphasis role="bold">observation</emphasis>
(JSR-170 8.3), which enables applications to register interest in events that describe
changes to a workspace, and then monitor and respond to those events. The standard
observation feature allows dispatching events when <emphasis
role="bold">persistent change</emphasis> to the workspace is made.
+ </para>
+ <para>
+ eXo JCR also offers a proprietary <emphasis role="bold">Extension
Action</emphasis> which dispatches and activates an event upon each <emphasis
role="bold">transient session level change</emphasis>, performed by a
client. In other words, the event is triggered when a client's program invokes some
updating methods (such as: <literal>Session.addNode()</literal>,
<literal>Session.setProperty()</literal>,
<literal>Workspace.move()</literal>) in a session or a workspace.
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ Each action will add its own execution time to the standard JCR methods
(<literal>Session.addNode()</literal>,
<literal>Session.setProperty()</literal>,
<literal>Workspace.move()</literal>) execution time. As a consequence,
it's necessary to minimize Action.execute(Context) body execution time.
+ </para>
+
+ </note>
+ <para>
+ To make the rule, you can use the dedicated Thread in
<literal>Action.execute(Context)</literal> body for a custom logic.
+ </para>
+ <para>
+ However, if your application logic requires the action to add items to a created or
updated item and you save these changes immediately after the JCR API method call is
returned, the suggestion with Thread is not applicable for you in this case.
+ </para>
+ <figure id="figu-Reference_Guide-Concept-Implementation">
+ <title>Implementation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/interceptor.jpg"
width="444" />
+ </imageobject>
+
+ </mediaobject>
+
+ </figure>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-JCR_Service_Extensions-Configuration">
+ <title>Configuration</title>
+ <para>
+ Add a <literal>SessionActionCatalog</literal> service and an appropriate
<literal>AddActionsPlugin</literal> (see the example below) configuration to
your eXo Container configuration.
+ </para>
+ <para>
+ Each Action entry is exposed as
<literal>org.exoplatform.services.jcr.impl.ext.action</literal>.
<literal>ActionConfiguration</literal> of actions collection of
<literal>org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig</literal>
(see an example below).
+ </para>
+ <para>
+ The mandatory field named <literal>actionClassName</literal> is the fully
qualified name of <literal>org.exoplatform.services.command.action.Action
implementation</literal>. The command will be launched in case the current event
matches the <emphasis role="bold">criteria</emphasis>. All other
fields are criteria. The criteria are appended together with *<emphasis
role="bold">AND</emphasis>* operations.
+ </para>
+ <para>
+ In other words, for a particular item to be listened to, it must meet ALL the
criteria:
+ </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>Workspace</term>
+ <listitem>
+ <para>
+ The comma delimited (ORed) list of workspaces.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>eventTypes</term>
+ <listitem>
+ <para>
+ A comma delimited (ORed) <emphasis role="bold">list of event
names</emphasis> (see below) to be listened to. This is the only mandatory field,
others are optional and if they are missing they are interpreted as ANY.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>path</term>
+ <listitem>
+ <para>
+ A comma delimited (ORed) list of <emphasis role="bold">item
absolute paths</emphasis> (or within its subtree if <emphasis
role="bold">isDeep</emphasis> is <emphasis
role="bold">true</emphasis>, which is the default value).
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>nodeTypes</term>
+ <listitem>
+ <para>
+ A comma delimited (ORed) list of the <emphasis role="bold">current
NodeType</emphasis>.
+ </para>
+ <para>
+ Since version 1.6.1 JCR supports the functionalities of
<literal>nodeType</literal> and <literal>parentNodeType</literal>.
This parameter has different semantics depending on the type of the current item and the
operation performed:
+ </para>
+ <para>
+ If the current item is a <emphasis
role="bold">property</emphasis> it means the <emphasis
role="bold">parent node type</emphasis>.
+ </para>
+ <para>
+ If the current item is a <emphasis
role="bold">node,</emphasis> the semantic depends on the event type:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">add node event</emphasis>: the node
type of the newly added node.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">add mixin event</emphasis>: the
newly added mixing node type of the current node.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">remove mixin event</emphasis> the
removed mixin type of the current node.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">other events</emphasis>: the already
assigned NodeType(s) of the current node (can be both primary and mixin).
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+ <note>
+ <title>Note</title>
+ <para>
+ Remember the following points:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The list of fields can be extended.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Do not use spaces between list elements.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ The <literal>sDeep=false</literal> property means node, node
properties and child nodes.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </note>
+ <para>
+ The list of supported Event names is:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">addNode</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">addProperty</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">changeProperty</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">removeProperty</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">removeNode</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">addMixin</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">removeMixin</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">lock</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">unlock</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">checkin</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">checkout</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">read</emphasis>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+<programlisting language="XML"
role="XML"><component>
+
<type>org.exoplatform.services.jcr.impl.ext.action.SessionActionCatalog</type>
+ <component-plugins>
+ <component-plugin>
+ <name>addActions</name>
+ <set-method>addPlugin</set-method>
+
<type>org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin</type>
+ <description>add actions plugin</description>
+ <init-params>
+ <object-param>
+ <name>actions</name>
+ <object
type="org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig">
+ <field name="actions">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object
type="org.exoplatform.services.jcr.impl.ext.action.ActionConfiguration">
+ <field
name="eventTypes"><string>addNode,removeNode</string></field>
+ <field
name="path"><string>/test,/exo:test</string></field>
+ <field
name="isDeep"><boolean>true</boolean></field>
+ <field
name="nodeTypes"><string>nt:file,nt:folder,mix:lockable</string></field>
+ <!-- field
name="workspace"><string>backup</string></field
-->
+ <field
name="actionClassName"><string>org.exoplatform.services.jcr.ext.DummyAction</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+ </component-plugins>
+</component></programlisting>
+
+ </section>
+
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,44 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Namespace_Altering">
- <!-- This document was created with Syntext Serna Free. -->
<title>Namespace Altering</title>
- <para>
- Since version 1.11, the eXo JCR implementation supports namespaces altering.
- </para>
- <formalpara
id="form-Reference_Guide-Namespace_Altering-Adding_New_Namespace">
- <title>Adding New Namespace</title>
- <para>
- Add a new namespace with:
- </para>
-
- </formalpara>
-
-<programlisting language="Java"
role="Java">ExtendedNamespaceRegistry namespaceRegistry =
(ExtendedNamespaceRegistry) workspace.getNamespaceRegistry();
-namespaceRegistry.registerNamespace("newMapping",
"http://dumb.uri/jcr");</programlisting>
- <formalpara
id="form-Reference_Guide-Namespace_Altering-Changing_Existing_Namespace">
- <title>Changing Existing Namespace</title>
- <para>
- Change an existing namespace with:
- </para>
-
- </formalpara>
-
-<programlisting language="Java"
role="Java">ExtendedNamespaceRegistry namespaceRegistry =
(ExtendedNamespaceRegistry) workspace.getNamespaceRegistry();
-namespaceRegistry.registerNamespace("newMapping",
"http://dumb.uri/jcr");
-namespaceRegistry.registerNamespace("newMapping2",
"http://dumb.uri/jcr");</programlisting>
- <formalpara
id="form-Reference_Guide-Namespace_Altering-Removing_Existing_Namespace">
- <title>Removing Existing Namespace</title>
- <para>
- Remove an existing namespace with:
- </para>
-
- </formalpara>
-
-<programlisting language="Java"
role="Java">ExtendedNamespaceRegistry namespaceRegistry =
(ExtendedNamespaceRegistry) workspace.getNamespaceRegistry();
-namespaceRegistry.registerNamespace("newMapping",
"http://dumb.uri/jcr");
-namespaceRegistry.unregisterNamespace("newMapping");</programlisting>
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-namespace-altering.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Namespace_Altering">
+ <!-- This document was created with Syntext Serna Free. -->
<title>Namespace Altering</title>
+ <para>
+ Since version 1.11, the eXo JCR implementation supports namespaces altering.
+ </para>
+ <formalpara
id="form-Reference_Guide-Namespace_Altering-Adding_New_Namespace">
+ <title>Adding New Namespace</title>
+ <para>
+ Add a new namespace with:
+ </para>
+
+ </formalpara>
+
+<programlisting language="Java"
role="Java">ExtendedNamespaceRegistry namespaceRegistry =
(ExtendedNamespaceRegistry) workspace.getNamespaceRegistry();
+namespaceRegistry.registerNamespace("newMapping",
"http://dumb.uri/jcr");</programlisting>
+ <formalpara
id="form-Reference_Guide-Namespace_Altering-Changing_Existing_Namespace">
+ <title>Changing Existing Namespace</title>
+ <para>
+ Change an existing namespace with:
+ </para>
+
+ </formalpara>
+
+<programlisting language="Java"
role="Java">ExtendedNamespaceRegistry namespaceRegistry =
(ExtendedNamespaceRegistry) workspace.getNamespaceRegistry();
+namespaceRegistry.registerNamespace("newMapping",
"http://dumb.uri/jcr");
+namespaceRegistry.registerNamespace("newMapping2",
"http://dumb.uri/jcr");</programlisting>
+ <formalpara
id="form-Reference_Guide-Namespace_Altering-Removing_Existing_Namespace">
+ <title>Removing Existing Namespace</title>
+ <para>
+ Remove an existing namespace with:
+ </para>
+
+ </formalpara>
+
+<programlisting language="Java"
role="Java">ExtendedNamespaceRegistry namespaceRegistry =
(ExtendedNamespaceRegistry) workspace.getNamespaceRegistry();
+namespaceRegistry.registerNamespace("newMapping",
"http://dumb.uri/jcr");
+namespaceRegistry.unregisterNamespace("newMapping");</programlisting>
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,130 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Registry_Service">
- <title>Registry Service</title>
- <section id="sect-Reference_Guide-Registry_Service-Concept">
- <title>Concept</title>
- <para>
- The Registry Service is one of the key parts of the infrastructure built around eXo
JCR. Each JCR that is based on services and applications may have its own configuration,
settings, and other data that have to be stored persistently and used by the appropriate
service or application (referred to as a <emphasis>Consumer</emphasis>).
- </para>
- <para>
- The service acts as a centralized collector (Registry) for such data. A registry
storage is JCR based, that is, it is stored in some JCR workspace (one per Repository) as
an Item tree under a <literal>/exo:registry</literal> node.
- </para>
- <para>
- Despite the fact that the structure of the tree is well defined (see the scheme
below), it is not recommended for other services to manipulate data using the JCR API
directly. So the Registry Service acts as a mediator between a Consumer and its settings.
- </para>
- <para>
- The proposed structure of the Registry Service storage is divided into three logical
groups: services, applications and users:
- </para>
-
-<programlisting> exo:registry/ <-- registry "root"
(exo:registry)
- exo:services/ <-- service data storage (exo:registryGroup)
- service1/
- Consumer data (exo:registryEntry)
- ...
- exo:applications/ <-- application data storage (exo:registryGroup)
- app1/
- Consumer data (exo:registryEntry)
- ...
- exo:users/ <-- user personal data storage (exo:registryGroup)
- user1/
- Consumer data (exo:registryEntry)
- ...</programlisting>
- <para>
- Each upper level Service may store its configuration in the Registry. At first start
the service can call its settings from an XML configuration file and, once the settings
have been stored, from then on call settings from the Registry.
- </para>
- <para>
- In a configuration file, you can add the
<parameter>force-xml-configuration</parameter> parameter to the component to
force it to ignore reading parameter initialization from
<literal>RegistryService</literal> and to use the configuration file instead:
- </para>
-
-<programlisting language="XML"
role="XML"><value-param>
- <name>force-xml-configuration</name>
- <value>true</value>
-</value-param></programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-Registry_Service-The_API">
- <title>The API</title>
- <para>
- The main functionality of the Registry Service is described in the Registry abstract
class as the following:
- </para>
-
-<programlisting language="Java" role="Java">public abstract
class Registry {
-
- /**
- * Returns the Registry object which wraps the Node of the "exo:registry"
type
- */
- public abstract RegistryNode getRegistry(SessionProvider sessionProvider)
- throws RepositoryConfigurationException, RepositoryException;
-
- /**
- * Returns the existing RegistryEntry which wraps the Node of the
"exo:registryEntry" type
- */
- public abstract RegistryEntry getEntry(SessionProvider sessionProvider, String
groupName,
- String entryName) throws RepositoryException;
-
- /**
- * Creates a new RegistryEntry
- */
- public abstract void createEntry(SessionProvider sessionProvider,
- String groupName, RegistryEntry entry) throws RepositoryException;
-
- /**
- * Replaces a RegistryEntry
- */
- public abstract void recreateEntry(SessionProvider sessionProvider,
- String groupName, RegistryEntry entry) throws RepositoryException;
-
- /**
- * Removes a RegistryEntry
- */
- public abstract void removeEntry(SessionProvider sessionProvider,
- String groupName, String entryName) throws
RepositoryException;</programlisting>
- <para>
- This is a CRUD interface as the <literal>RegistryEntry</literal> object
which wraps registry data for some Consumer as a Registry Entry. The Registry Service
itself is unaware of the wrapping data as it is the Consumer's responsibility to
manage and use its data in its own way.
- </para>
- <para>
- To create an Entity Consumer you should know how to serialize the data to some XML
structure and then create a <literal>RegistryEntry</literal> from these data
at once or populate them in a <literal>RegistryEntry</literal> object by using
<literal>RegistryEntry(String entryName)</literal> constructor and then obtain
and fill a DOM document.
- </para>
- <para>
- An example of <literal>RegistryService</literal> using:
- </para>
-
-<programlisting language="Java" role="Java"> RegistryService
regService = (RegistryService) container
- .getComponentInstanceOfType(RegistryService.class);
-
- RegistryEntry registryEntry = regService.getEntry(sessionProvider,
- RegistryService.EXO_SERVICES, "my-service");
-
- Document doc = registryEntry.getDocument();
-
- String mySetting =
getElementsByTagName("tagname").item(index).getTextContent();
- .....</programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-Registry_Service-Configuration">
- <title>Configuration</title>
- <para>
- <literal>RegistryService</literal> has only one optional properties
parameter; <parameter>locations</parameter>. It is used to mention where
<literal>exo:registry</literal> is placed for each repository. The name of
each property is interpreted as a repository name and its value as a workspace name (a
system workspace by default).
- </para>
-
-<programlisting language="XML"
role="XML"><component>
-
<type>org.exoplatform.services.jcr.ext.registry.RegistryService</type>
- <init-params>
- <properties-param>
- <name>locations</name>
- <property name="db1" value="ws2"/>
- </properties-param>
- </init-params>
-</component></programlisting>
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-registry-service.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Registry_Service">
+ <title>Registry Service</title>
+ <section id="sect-Reference_Guide-Registry_Service-Concept">
+ <title>Concept</title>
+ <para>
+ The Registry Service is one of the key parts of the infrastructure built around eXo
JCR. Each JCR that is based on services and applications may have its own configuration,
settings, and other data that have to be stored persistently and used by the appropriate
service or application (referred to as a <emphasis>Consumer</emphasis>).
+ </para>
+ <para>
+ The service acts as a centralized collector (Registry) for such data. A registry
storage is JCR based, that is, it is stored in some JCR workspace (one per Repository) as
an Item tree under a <literal>/exo:registry</literal> node.
+ </para>
+ <para>
+ Despite the fact that the structure of the tree is well defined (see the scheme
below), it is not recommended for other services to manipulate data using the JCR API
directly. So the Registry Service acts as a mediator between a Consumer and its settings.
+ </para>
+ <para>
+ The proposed structure of the Registry Service storage is divided into three logical
groups: services, applications and users:
+ </para>
+
+<programlisting> exo:registry/ <-- registry "root"
(exo:registry)
+ exo:services/ <-- service data storage (exo:registryGroup)
+ service1/
+ Consumer data (exo:registryEntry)
+ ...
+ exo:applications/ <-- application data storage (exo:registryGroup)
+ app1/
+ Consumer data (exo:registryEntry)
+ ...
+ exo:users/ <-- user personal data storage (exo:registryGroup)
+ user1/
+ Consumer data (exo:registryEntry)
+ ...</programlisting>
+ <para>
+ Each upper level Service may store its configuration in the Registry. At first start
the service can call its settings from an XML configuration file and, once the settings
have been stored, from then on call settings from the Registry.
+ </para>
+ <para>
+ In a configuration file, you can add the
<parameter>force-xml-configuration</parameter> parameter to the component to
force it to ignore reading parameter initialization from
<literal>RegistryService</literal> and to use the configuration file instead:
+ </para>
+
+<programlisting language="XML"
role="XML"><value-param>
+ <name>force-xml-configuration</name>
+ <value>true</value>
+</value-param></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-Registry_Service-The_API">
+ <title>The API</title>
+ <para>
+ The main functionality of the Registry Service is described in the Registry abstract
class as the following:
+ </para>
+
+<programlisting language="Java" role="Java">public abstract
class Registry {
+
+ /**
+ * Returns the Registry object which wraps the Node of the "exo:registry"
type
+ */
+ public abstract RegistryNode getRegistry(SessionProvider sessionProvider)
+ throws RepositoryConfigurationException, RepositoryException;
+
+ /**
+ * Returns the existing RegistryEntry which wraps the Node of the
"exo:registryEntry" type
+ */
+ public abstract RegistryEntry getEntry(SessionProvider sessionProvider, String
groupName,
+ String entryName) throws RepositoryException;
+
+ /**
+ * Creates a new RegistryEntry
+ */
+ public abstract void createEntry(SessionProvider sessionProvider,
+ String groupName, RegistryEntry entry) throws RepositoryException;
+
+ /**
+ * Replaces a RegistryEntry
+ */
+ public abstract void recreateEntry(SessionProvider sessionProvider,
+ String groupName, RegistryEntry entry) throws RepositoryException;
+
+ /**
+ * Removes a RegistryEntry
+ */
+ public abstract void removeEntry(SessionProvider sessionProvider,
+ String groupName, String entryName) throws
RepositoryException;</programlisting>
+ <para>
+ This is a CRUD interface as the <literal>RegistryEntry</literal> object
which wraps registry data for some Consumer as a Registry Entry. The Registry Service
itself is unaware of the wrapping data as it is the Consumer's responsibility to
manage and use its data in its own way.
+ </para>
+ <para>
+ To create an Entity Consumer you should know how to serialize the data to some XML
structure and then create a <literal>RegistryEntry</literal> from these data
at once or populate them in a <literal>RegistryEntry</literal> object by using
<literal>RegistryEntry(String entryName)</literal> constructor and then obtain
and fill a DOM document.
+ </para>
+ <para>
+ An example of <literal>RegistryService</literal> using:
+ </para>
+
+<programlisting language="Java" role="Java"> RegistryService
regService = (RegistryService) container
+ .getComponentInstanceOfType(RegistryService.class);
+
+ RegistryEntry registryEntry = regService.getEntry(sessionProvider,
+ RegistryService.EXO_SERVICES, "my-service");
+
+ Document doc = registryEntry.getDocument();
+
+ String mySetting =
getElementsByTagName("tagname").item(index).getTextContent();
+ .....</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-Registry_Service-Configuration">
+ <title>Configuration</title>
+ <para>
+ <literal>RegistryService</literal> has only one optional properties
parameter; <parameter>locations</parameter>. It is used to mention where
<literal>exo:registry</literal> is placed for each repository. The name of
each property is interpreted as a repository name and its value as a workspace name (a
system workspace by default).
+ </para>
+
+<programlisting language="XML"
role="XML"><component>
+
<type>org.exoplatform.services.jcr.ext.registry.RegistryService</type>
+ <init-params>
+ <properties-param>
+ <name>locations</name>
+ <property name="db1" value="ws2"/>
+ </properties-param>
+ </init-params>
+</component></programlisting>
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,252 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Using_The_JCR">
- <title>Using The JCR</title>
- <section
id="sect-Reference_Guide-Using_The_JCR-Obtaining_a_Repository_Object">
- <title>Obtaining a Repository Object</title>
- <para>
- A <literal>javax.jcr.Repository</literal> object can be obtained by:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Using the eXo Container <emphasis>native</emphasis> mechanism. All
Repositories are kept with a single <literal>RepositoryService</literal>
component. This can be obtained from the eXo Container as follows:
- </para>
-
-<programlisting language="Java" role="Java">
- RepositoryService repositoryService = (RepositoryService)
container.getComponentInstanceOfType(RepositoryService.class);
- Repository repository = repositoryService.getRepository("repositoryName");
-</programlisting>
-
- </listitem>
- <listitem>
- <para>
- Using the eXo Container <emphasis>native</emphasis>" mechanism with
a thread local saved <literal>current</literal> repository (particularly if
you plan to use a single repository, which covers more than 90% of use cases).
- </para>
-
-<programlisting language="Java" role="Java"> // set current
repository at initial time
- RepositoryService repositoryService = (RepositoryService)
container.getComponentInstanceOfType(RepositoryService.class);
- repositoryService.setCurrentRepositoryName("repositoryName");
- ....
- // retrieve and use this repository
- Repository repository = repositoryService.getCurrentRepository();
-</programlisting>
-
- </listitem>
- <listitem>
- <para>
- Using JNDI as specified in JSR-170. This way you have to configure the reference:
- </para>
-
-<programlisting language="Java" role="Java"> Context ctx = new
InitialContext();
- Repository repository =(Repository)
ctx.lookup("repositoryName");</programlisting>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-Using_The_JCR-JCR_Session_common_considerations">
- <title>JCR Session common considerations</title>
- <para>
- <itemizedlist>
- <listitem>
- <para>
- Remember that <literal>javax.jcr.Session</literal> is not a thread safe
object. <emphasis role="bold">Never try to share it between
threads</emphasis>.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Do not use <emphasis role="bold">System session</emphasis>
from the <emphasis role="bold">user</emphasis> related code because
a system session has <emphasis role="bold">unlimited
rights</emphasis>. Call ManageableRepository.getSystemSession() from <emphasis
role="bold">process</emphasis> related code only.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Call <literal>Session.logout()</literal> explicitly to <emphasis
role="bold">release resources</emphasis> assigned to the session.
- </para>
-
- </listitem>
- <listitem>
- <para>
- When designing your application, take care of the Session policy inside your
application. Two strategies are possible: <emphasis
role="bold">Stateless</emphasis> (Session per business request) and
<emphasis role="bold">Stateful</emphasis> (Session per User) or some
mix.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Using_The_JCR-JCR_Application_Practices">
- <title>JCR Application Practices</title>
- <section
id="sect-Reference_Guide-JCR_Application_Practices-Log_Out_of_All_Open_Sessions">
- <title>Log Out of All Open Sessions</title>
- <para>
- Use
<literal>org.exoplatform.services.jcr.ext.common.SessionProvider</literal>
which is responsible for caching or obtaining your JCR Sessions and closing all opened
sessions at once.
- </para>
-
-<programlisting language="Java" role="Java">public class
SessionProvider {
-
- /**
- * Creates a SessionProvider for a certain identity
- * @param cred
- */
- public SessionProvider(Credentials cred)
-
- /**
- * Gets the session from internal cache or creates and caches a new one
- */
- public Session getSession(String workspaceName, ManageableRepository repository)
- throws LoginException, NoSuchWorkspaceException, RepositoryException
-
- /**
- * Calls a logout() method for all cached sessions
- */
- public void close()
-
- /**
- * a Helper for creating a System session provider
- * @return System session
- */
- public static SessionProvider createSystemProvider()
-
- /**
- * a Helper for creating an Anonimous session provider
- * @return System session
- */
- public static SessionProvider createAnonimProvider()
-
-}</programlisting>
- <para>
- The <literal>SessionProvider</literal> is per-request or per-user object,
depending on your policy. Create it with your application before performing JCR
operations, use it to obtain the Sessions and close at the end of an application
<literal>session(request)</literal>. See the following example:
- </para>
-
-<programlisting language="Java" role="Java">// (1) obtain
current javax.jcr.Credentials, for example get it from AuthenticationService
-Credentials cred = ....
-
-// (2) create SessionProvider for current user
-SessionProvider sessionProvider = new SessionProvider(ConversationState.getCurrent());
-
-// NOTE: for creating an Anonymous or System Session use the corresponding static
SessionProvider.create...() method
-// Get appropriate Repository as described in "Obtaining Repository object"
section for example
-ManageableRepository repository = (ManageableRepository)
ctx.lookup("repositoryName");
-
-// get an appropriate workspace's session
-Session session = sessionProvider.getSession("workspaceName", repository);
-
- .........
-// your JCR code
- .........
-
- // Close the session provider
- sessionProvider.close();</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Application_Practices-Reusing_SessionProvider">
- <title>Reusing SessionProvider</title>
- <para>
- Since creating the <literal>SessionProvider</literal> involves multiple
steps which may need to be repeated for each JCR session, the
<literal>SessionProviderService</literal> assists you to get a
<literal>SessionProvider</literal> object.
- </para>
- <para>
- The
<literal>org.exoplatform.services.jcr.ext.app.SessionProviderService</literal>
interface is defined as follows:
- </para>
-
-<programlisting language="Java" role="Java">public interface
SessionProviderService {
- void setSessionProvider(Object key, SessionProvider sessionProvider);
- SessionProvider getSessionProvider(Object key);
- void removeSessionProvider(Object key);
-}</programlisting>
- <para>
- The main contract of an implemented component is obtaining a
<literal>SessionProvider</literal> by key. the eXo JCR provides two
implementations:
- </para>
- <table
id="tabl-Reference_Guide-Reusing_SessionProvider-SessionProvider_implementations">
- <title>SessionProvider implementations</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- Implementation
- </entry>
- <entry>
- Description
- </entry>
- <entry>
- Typical Use
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>org.exoplatform.services.jcr.ext.app.MapStoredSessionProviderService</literal>
- </entry>
- <entry>
- Per-user style which keeps objects in a Map.
- </entry>
- <entry>
- Per-user. The usual practice utilizes a user's name or Credentials as a key.
- </entry>
-
- </row>
- <row>
- <entry>
- <literal>org.exoplatform.services.jcr.ext.app.ThreadLocalSessionProviderService</literal>
- </entry>
- <entry>
- Per-request style which keeps a single
<literal>SessionProvider</literal> in a static ThreadLocal variable.
- </entry>
- <entry>
- Always use null for the key.
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
- <para>
- For any implementation, your code should adhere to the following sequence:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Call <literal>SessionProviderService.setSessionProvider(Object key,
SessionProvider, sessionProvider)</literal> at the beginning of a business request
for Stateless application or application's session for Statefull policy.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Call <literal>SessionProviderService.getSessionProvider(Object
key)</literal> for obtaining a SessionProvider object
- </para>
-
- </listitem>
- <listitem>
- <para>
- Call <literal>SessionProviderService.removeSessionProvider(Object
key)</literal> at the end of a business request for Stateless application or
application's session for Statefull policy.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/jcr-usage.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,252 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Using_The_JCR">
+ <title>Using The JCR</title>
+ <section
id="sect-Reference_Guide-Using_The_JCR-Obtaining_a_Repository_Object">
+ <title>Obtaining a Repository Object</title>
+ <para>
+ A <literal>javax.jcr.Repository</literal> object can be obtained by:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using the eXo Container <emphasis>native</emphasis> mechanism. All
Repositories are kept with a single <literal>RepositoryService</literal>
component. This can be obtained from the eXo Container as follows:
+ </para>
+
+<programlisting language="Java" role="Java">
+ RepositoryService repositoryService = (RepositoryService)
container.getComponentInstanceOfType(RepositoryService.class);
+ Repository repository = repositoryService.getRepository("repositoryName");
+</programlisting>
+
+ </listitem>
+ <listitem>
+ <para>
+ Using the eXo Container <emphasis>native</emphasis>" mechanism with
a thread local saved <literal>current</literal> repository (particularly if
you plan to use a single repository, which covers more than 90% of use cases).
+ </para>
+
+<programlisting language="Java" role="Java"> // set current
repository at initial time
+ RepositoryService repositoryService = (RepositoryService)
container.getComponentInstanceOfType(RepositoryService.class);
+ repositoryService.setCurrentRepositoryName("repositoryName");
+ ....
+ // retrieve and use this repository
+ Repository repository = repositoryService.getCurrentRepository();
+</programlisting>
+
+ </listitem>
+ <listitem>
+ <para>
+ Using JNDI as specified in JSR-170. This way you have to configure the reference:
+ </para>
+
+<programlisting language="Java" role="Java"> Context ctx = new
InitialContext();
+ Repository repository =(Repository)
ctx.lookup("repositoryName");</programlisting>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Using_The_JCR-JCR_Session_common_considerations">
+ <title>JCR Session common considerations</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Remember that <literal>javax.jcr.Session</literal> is not a thread safe
object. <emphasis role="bold">Never try to share it between
threads</emphasis>.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Do not use <emphasis role="bold">System session</emphasis>
from the <emphasis role="bold">user</emphasis> related code because
a system session has <emphasis role="bold">unlimited
rights</emphasis>. Call ManageableRepository.getSystemSession() from <emphasis
role="bold">process</emphasis> related code only.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Call <literal>Session.logout()</literal> explicitly to <emphasis
role="bold">release resources</emphasis> assigned to the session.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ When designing your application, take care of the Session policy inside your
application. Two strategies are possible: <emphasis
role="bold">Stateless</emphasis> (Session per business request) and
<emphasis role="bold">Stateful</emphasis> (Session per User) or some
mix.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Using_The_JCR-JCR_Application_Practices">
+ <title>JCR Application Practices</title>
+ <section
id="sect-Reference_Guide-JCR_Application_Practices-Log_Out_of_All_Open_Sessions">
+ <title>Log Out of All Open Sessions</title>
+ <para>
+ Use
<literal>org.exoplatform.services.jcr.ext.common.SessionProvider</literal>
which is responsible for caching or obtaining your JCR Sessions and closing all opened
sessions at once.
+ </para>
+
+<programlisting language="Java" role="Java">public class
SessionProvider {
+
+ /**
+ * Creates a SessionProvider for a certain identity
+ * @param cred
+ */
+ public SessionProvider(Credentials cred)
+
+ /**
+ * Gets the session from internal cache or creates and caches a new one
+ */
+ public Session getSession(String workspaceName, ManageableRepository repository)
+ throws LoginException, NoSuchWorkspaceException, RepositoryException
+
+ /**
+ * Calls a logout() method for all cached sessions
+ */
+ public void close()
+
+ /**
+ * a Helper for creating a System session provider
+ * @return System session
+ */
+ public static SessionProvider createSystemProvider()
+
+ /**
+ * a Helper for creating an Anonimous session provider
+ * @return System session
+ */
+ public static SessionProvider createAnonimProvider()
+
+}</programlisting>
+ <para>
+ The <literal>SessionProvider</literal> is per-request or per-user object,
depending on your policy. Create it with your application before performing JCR
operations, use it to obtain the Sessions and close at the end of an application
<literal>session(request)</literal>. See the following example:
+ </para>
+
+<programlisting language="Java" role="Java">// (1) obtain
current javax.jcr.Credentials, for example get it from AuthenticationService
+Credentials cred = ....
+
+// (2) create SessionProvider for current user
+SessionProvider sessionProvider = new SessionProvider(ConversationState.getCurrent());
+
+// NOTE: for creating an Anonymous or System Session use the corresponding static
SessionProvider.create...() method
+// Get appropriate Repository as described in "Obtaining Repository object"
section for example
+ManageableRepository repository = (ManageableRepository)
ctx.lookup("repositoryName");
+
+// get an appropriate workspace's session
+Session session = sessionProvider.getSession("workspaceName", repository);
+
+ .........
+// your JCR code
+ .........
+
+ // Close the session provider
+ sessionProvider.close();</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-JCR_Application_Practices-Reusing_SessionProvider">
+ <title>Reusing SessionProvider</title>
+ <para>
+ Since creating the <literal>SessionProvider</literal> involves multiple
steps which may need to be repeated for each JCR session, the
<literal>SessionProviderService</literal> assists you to get a
<literal>SessionProvider</literal> object.
+ </para>
+ <para>
+ The
<literal>org.exoplatform.services.jcr.ext.app.SessionProviderService</literal>
interface is defined as follows:
+ </para>
+
+<programlisting language="Java" role="Java">public interface
SessionProviderService {
+ void setSessionProvider(Object key, SessionProvider sessionProvider);
+ SessionProvider getSessionProvider(Object key);
+ void removeSessionProvider(Object key);
+}</programlisting>
+ <para>
+ The main contract of an implemented component is obtaining a
<literal>SessionProvider</literal> by key. the eXo JCR provides two
implementations:
+ </para>
+ <table
id="tabl-Reference_Guide-Reusing_SessionProvider-SessionProvider_implementations">
+ <title>SessionProvider implementations</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ Implementation
+ </entry>
+ <entry>
+ Description
+ </entry>
+ <entry>
+ Typical Use
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <literal>org.exoplatform.services.jcr.ext.app.MapStoredSessionProviderService</literal>
+ </entry>
+ <entry>
+ Per-user style which keeps objects in a Map.
+ </entry>
+ <entry>
+ Per-user. The usual practice utilizes a user's name or Credentials as a key.
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ <literal>org.exoplatform.services.jcr.ext.app.ThreadLocalSessionProviderService</literal>
+ </entry>
+ <entry>
+ Per-request style which keeps a single
<literal>SessionProvider</literal> in a static ThreadLocal variable.
+ </entry>
+ <entry>
+ Always use null for the key.
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+ <para>
+ For any implementation, your code should adhere to the following sequence:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Call <literal>SessionProviderService.setSessionProvider(Object key,
SessionProvider, sessionProvider)</literal> at the beginning of a business request
for Stateless application or application's session for Statefull policy.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Call <literal>SessionProviderService.getSessionProvider(Object
key)</literal> for obtaining a SessionProvider object
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Call <literal>SessionProviderService.removeSessionProvider(Object
key)</literal> at the end of a business request for Stateless application or
application's session for Statefull policy.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+
+ </section>
+
+
+</chapter>
+
Deleted:
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-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,554 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%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>
-
- </listitem>
- <listitem>
- <para>
- From an XML document. Refer to <xref
linkend="exam-Reference_Guide-Node_type_registration-Runtime_Registration_From_XML_File"
/>.
- </para>
-
- </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>
-
-<programlisting language="Java" role="Java">public static final
int IGNORE_IF_EXISTS = 0;
-
-public static final int FAIL_IF_EXISTS = 2;
-
-public static final int REPLACE_IF_EXISTS = 4;
-
-
-/**
- * Registers node type using value object.
- */
-void registerNodeType(NodeTypeValue nodeTypeValue, int alreadyExistsBehaviour) throws
RepositoryException;
-
-/**
- * Registers all node types using XML binding value objects from xml stream.
- */
-void registerNodeTypes(InputStream xml, int alreadyExistsBehaviour) throws
RepositoryException;
-
-/**
- * Return <code>NodeTypeValue</code> for a given nodetype
name. Used for
- * nodetype update. Value can be edited and registered via
- * <code>registerNodeType(NodeTypeValue nodeTypeValue, int
alreadyExistsBehaviour)</code>
- */
-NodeTypeValue getNodeTypeValue(String ntName) throws NoSuchNodeTypeException,
RepositoryException;
-
-/**
- * Registers or updates the specified <code>Collection</code>
of
- * <code>NodeTypeValue</code> objects.
- */
-public NodeTypeIterator registerNodeTypes(Collection<NodeTypeValue>
values,
- int alreadyExistsBehaviour) throws
UnsupportedRepositoryOperationException,
-
RepositoryException;
-
-/**
- * Unregisters the specified node type.
- */
-public void unregisterNodeType(String name) throws
UnsupportedRepositoryOperationException,
- NoSuchNodeTypeException,
- RepositoryException;
-
-/**
- * Unregisters the specified set of node types.<p/> Used to unregister a
set
- * of node types with mutual dependencies.
- */
-public void unregisterNodeTypes(String[] names) throws
UnsupportedRepositoryOperationException,
- 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>
-
-<programlisting language="Java" role="Java">/**
- * @return Returns the declaredSupertypeNames.
- */
-public List<String> getDeclaredSupertypeNames();
-
-/**
- * @param declaredSupertypeNames
- *The declaredSupertypeNames to set.
- */
-public void setDeclaredSupertypeNames(List<String>
declaredSupertypeNames);
-
-/**
- * @return Returns the mixin.
- */
-public boolean isMixin();
-
-/**
- * @param mixin
- *The mixin to set.
- */
-public void setMixin(boolean mixin);
-
-/**
- * @return Returns the name.
- */
-public String getName();
-
-/**
- * @param name
- *The name to set.
- */
-public void setName(String name);
-
-/**
- * @return Returns the orderableChild.
- */
-public boolean isOrderableChild();
-
-/**
- * @param orderableChild
- *The orderableChild to set.
- */
-public void setOrderableChild(boolean orderableChild);
-
-/**
- * @return Returns the primaryItemName.
- */
-public String getPrimaryItemName();
-
-/**
- * @param primaryItemName
- *The primaryItemName to set.
- */
-public void setPrimaryItemName(String primaryItemName);
-
-/**
- * @return Returns the declaredChildNodeDefinitionNames.
- */
-public List<NodeDefinitionValue> getDeclaredChildNodeDefinitionValues();
-
-/**
- * @param declaredChildNodeDefinitionNames
- *The declaredChildNodeDefinitionNames to set.
- */
-public void setDeclaredChildNodeDefinitionValues(List<NodeDefinitionValue>
declaredChildNodeDefinitionValues);
-
-/**
- * @return Returns the declaredPropertyDefinitionNames.
- */
-public List<PropertyDefinitionValue>
getDeclaredPropertyDefinitionValues();
-
-/**
- * @param declaredPropertyDefinitionNames
- *The declaredPropertyDefinitionNames to set.
- */
-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>
-
-<programlisting language="Java" role="Java">/**
- * @return Returns the declaredSupertypeNames.
- */
-public List<String> getDeclaredSupertypeNames();
-
-/**
- * @param declaredSupertypeNames
- *The declaredSupertypeNames to set.
- */
-public void setDeclaredSupertypeNames(List<String>
declaredSupertypeNames);
-
-/**
- * @return Returns the mixin.
- */
-public boolean isMixin();
-
-/**
- * @param mixin
- *The mixin to set.
- */
-public void setMixin(boolean mixin);
-
-/**
- * @return Returns the name.
- */
-public String getName();
-
-/**
- * @param name
- *The name to set.
- */
-public void setName(String name);
-
-/**
- * @return Returns the orderableChild.
- */
-public boolean isOrderableChild();
-
-/**
- * @param orderableChild
- *The orderableChild to set.
- */
-public void setOrderableChild(boolean orderableChild);
-
-/**
- * @return Returns the primaryItemName.
- */
-public String getPrimaryItemName();
-
-/**
- * @param primaryItemName
- *The primaryItemName to set.
- */
-public void setPrimaryItemName(String primaryItemName);
-
-/**
- * @return Returns the declaredChildNodeDefinitionNames.
- */
-public List<NodeDefinitionValue> getDeclaredChildNodeDefinitionValues();
-
-/**
- * @param declaredChildNodeDefinitionNames
- *The declaredChildNodeDefinitionNames to set.
- */
-public void setDeclaredChildNodeDefinitionValues(List<NodeDefinitionValue>
declaredChildNodeDefinitionValues);
-
-/**
- * @return Returns the declaredPropertyDefinitionNames.
- */
-public List<PropertyDefinitionValue>
getDeclaredPropertyDefinitionValues();
-
-/**
- * @param declaredPropertyDefinitionNames
- *The declaredPropertyDefinitionNames to set.
- */
-public void
setDeclaredPropertyDefinitionValues(List<PropertyDefinitionValue>
declaredPropertyDefinitionValues);
-
-</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>
-
-<programlisting language="Java" role="Java">/**
- * @return Returns the defaultValues.
- */
-public List<String> getDefaultValueStrings();
-
-/**
- * @param defaultValues The defaultValues to set.
- */
-public void setDefaultValueStrings(List<String> defaultValues);
-
-/**
- * @return Returns the multiple.
- */
-public boolean isMultiple();
-
-/**
- * @param multiple The multiple to set.
- */
-public void setMultiple(boolean multiple);
-
-/**
- * @return Returns the requiredType.
- */
-public int getRequiredType();
-
-/**
- * @param requiredType The requiredType to set.
- */
-public void setRequiredType(int requiredType);
-
-/**
- * @return Returns the valueConstraints.
- */
-public List<String> getValueConstraints();
-
-/**
- * @param valueConstraints The valueConstraints to set.
- */
-public void setValueConstraints(List<String>
valueConstraints);</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-PropertyDefinitionValue-ItemDefinitionValue">
-
<title><literal>ItemDefinitionValue</literal></title>
-
-<programlisting language="Java" role="Java"> /**
- * @return Returns the autoCreate.
- */
-public boolean isAutoCreate();
-
-/**
- * @param autoCreate The autoCreate to set.
- */
-public void setAutoCreate(boolean autoCreate);
-
-/**
- * @return Returns the mandatory.
- */
-public boolean isMandatory();
-
-/**
- * @param mandatory The mandatory to set.
- */
-public void setMandatory(boolean mandatory);
-
-/**
- * @return Returns the name.
- */
-public String getName();
-
-/**
- * @param name The name to set.
- */
-public void setName(String name);
-
-/**
- * @return Returns the onVersion.
- */
-public int getOnVersion();
-
-/**
- * @param onVersion The onVersion to set.
- */
-public void setOnVersion(int onVersion);
-
-/**
- * @return Returns the readOnly.
- */
-public boolean isReadOnly();
-
-/**
- * @param readOnly The readOnly to set.
- */
-public void setReadOnly(boolean readOnly);</programlisting>
-
- </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>
-
-<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>
-
-<programlisting language="Java"
role="Java">ExtendedNodeTypeManager nodeTypeManager =
(ExtendedNodeTypeManager) session.getWorkspace()
- .getNodeTypeManager();
-NodeTypeValue testNValue = new NodeTypeValue();
-
-List<String> superType = new ArrayList<String>();
-superType.add("nt:base");
-testNValue.setName("exo:myNodeType");
-testNValue.setPrimaryItemName("");
-testNValue.setDeclaredSupertypeNames(superType);
-List<PropertyDefinitionValue> props = new
ArrayList<PropertyDefinitionValue>();
-props.add(new PropertyDefinitionValue("*",
- false,
- false,
- 1,
- false,
- new ArrayList<String>(),
- false,
- 0,
- new ArrayList<String>()));
-testNValue.setDeclaredPropertyDefinitionValues(props);
-
-nodeTypeManager.registerNodeType(testNValue,
ExtendedNodeTypeManager.FAIL_IF_EXISTS);</programlisting>
-
- </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>
-
-<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>
-
-<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>
- <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>();
-props.add(new PropertyDefinitionValue("tt",
- true,
- true,
- 1,
- false,
- new ArrayList<String>(),
- false,
- PropertyType.STRING,
- new ArrayList<String>()));
-myNodeTypeValue.setDeclaredPropertyDefinitionValues(props);
-
-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>
-
-<programlisting language="Java" role="Java">NodeTypeValue
myNodeTypeValue = nodeTypeManager.getNodeTypeValue(myNodeTypeName);
-
-List<NodeDefinitionValue> nodes = new
ArrayList<NodeDefinitionValue>();
-nodes.add(new NodeDefinitionValue("child",
- false,
- false,
- 1,
- false,
- "nt:base",
- new ArrayList<String>(),
- false));
-testNValue.setDeclaredChildNodeDefinitionValues(nodes);
-
-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>
-
- </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>
-
- </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>
- Change the definition of the property
<literal>downloadCount</literal> of the node type
<literal>myNodeType</literal> to mandatory.
- </para>
-
- </step>
-
- </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>
-
-<programlisting language="Java" role="Java">NodeTypeValue
testNValue = nodeTypeManager.getNodeTypeValue("exo:myNodeType");
-
-List<String> superType = testNValue.getDeclaredSupertypeNames();
-superType.add("mix:versionable");
-testNValue.setDeclaredSupertypeNames(superType);
-
-nodeTypeManager.registerNodeType(testNValue,
ExtendedNodeTypeManager.REPLACE_IF_EXISTS);</programlisting>
-
- </section>
-
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml.cut
(from rev 8191,
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.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetype-registration.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,554 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%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>
+
+ </listitem>
+ <listitem>
+ <para>
+ From an XML document. Refer to <xref
linkend="exam-Reference_Guide-Node_type_registration-Runtime_Registration_From_XML_File"
/>.
+ </para>
+
+ </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>
+
+<programlisting language="Java" role="Java">public static final
int IGNORE_IF_EXISTS = 0;
+
+public static final int FAIL_IF_EXISTS = 2;
+
+public static final int REPLACE_IF_EXISTS = 4;
+
+
+/**
+ * Registers node type using value object.
+ */
+void registerNodeType(NodeTypeValue nodeTypeValue, int alreadyExistsBehaviour) throws
RepositoryException;
+
+/**
+ * Registers all node types using XML binding value objects from xml stream.
+ */
+void registerNodeTypes(InputStream xml, int alreadyExistsBehaviour) throws
RepositoryException;
+
+/**
+ * Return <code>NodeTypeValue</code> for a given nodetype
name. Used for
+ * nodetype update. Value can be edited and registered via
+ * <code>registerNodeType(NodeTypeValue nodeTypeValue, int
alreadyExistsBehaviour)</code>
+ */
+NodeTypeValue getNodeTypeValue(String ntName) throws NoSuchNodeTypeException,
RepositoryException;
+
+/**
+ * Registers or updates the specified <code>Collection</code>
of
+ * <code>NodeTypeValue</code> objects.
+ */
+public NodeTypeIterator registerNodeTypes(Collection<NodeTypeValue>
values,
+ int alreadyExistsBehaviour) throws
UnsupportedRepositoryOperationException,
+
RepositoryException;
+
+/**
+ * Unregisters the specified node type.
+ */
+public void unregisterNodeType(String name) throws
UnsupportedRepositoryOperationException,
+ NoSuchNodeTypeException,
+ RepositoryException;
+
+/**
+ * Unregisters the specified set of node types.<p/> Used to unregister a
set
+ * of node types with mutual dependencies.
+ */
+public void unregisterNodeTypes(String[] names) throws
UnsupportedRepositoryOperationException,
+ 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>
+
+<programlisting language="Java" role="Java">/**
+ * @return Returns the declaredSupertypeNames.
+ */
+public List<String> getDeclaredSupertypeNames();
+
+/**
+ * @param declaredSupertypeNames
+ *The declaredSupertypeNames to set.
+ */
+public void setDeclaredSupertypeNames(List<String>
declaredSupertypeNames);
+
+/**
+ * @return Returns the mixin.
+ */
+public boolean isMixin();
+
+/**
+ * @param mixin
+ *The mixin to set.
+ */
+public void setMixin(boolean mixin);
+
+/**
+ * @return Returns the name.
+ */
+public String getName();
+
+/**
+ * @param name
+ *The name to set.
+ */
+public void setName(String name);
+
+/**
+ * @return Returns the orderableChild.
+ */
+public boolean isOrderableChild();
+
+/**
+ * @param orderableChild
+ *The orderableChild to set.
+ */
+public void setOrderableChild(boolean orderableChild);
+
+/**
+ * @return Returns the primaryItemName.
+ */
+public String getPrimaryItemName();
+
+/**
+ * @param primaryItemName
+ *The primaryItemName to set.
+ */
+public void setPrimaryItemName(String primaryItemName);
+
+/**
+ * @return Returns the declaredChildNodeDefinitionNames.
+ */
+public List<NodeDefinitionValue> getDeclaredChildNodeDefinitionValues();
+
+/**
+ * @param declaredChildNodeDefinitionNames
+ *The declaredChildNodeDefinitionNames to set.
+ */
+public void setDeclaredChildNodeDefinitionValues(List<NodeDefinitionValue>
declaredChildNodeDefinitionValues);
+
+/**
+ * @return Returns the declaredPropertyDefinitionNames.
+ */
+public List<PropertyDefinitionValue>
getDeclaredPropertyDefinitionValues();
+
+/**
+ * @param declaredPropertyDefinitionNames
+ *The declaredPropertyDefinitionNames to set.
+ */
+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>
+
+<programlisting language="Java" role="Java">/**
+ * @return Returns the declaredSupertypeNames.
+ */
+public List<String> getDeclaredSupertypeNames();
+
+/**
+ * @param declaredSupertypeNames
+ *The declaredSupertypeNames to set.
+ */
+public void setDeclaredSupertypeNames(List<String>
declaredSupertypeNames);
+
+/**
+ * @return Returns the mixin.
+ */
+public boolean isMixin();
+
+/**
+ * @param mixin
+ *The mixin to set.
+ */
+public void setMixin(boolean mixin);
+
+/**
+ * @return Returns the name.
+ */
+public String getName();
+
+/**
+ * @param name
+ *The name to set.
+ */
+public void setName(String name);
+
+/**
+ * @return Returns the orderableChild.
+ */
+public boolean isOrderableChild();
+
+/**
+ * @param orderableChild
+ *The orderableChild to set.
+ */
+public void setOrderableChild(boolean orderableChild);
+
+/**
+ * @return Returns the primaryItemName.
+ */
+public String getPrimaryItemName();
+
+/**
+ * @param primaryItemName
+ *The primaryItemName to set.
+ */
+public void setPrimaryItemName(String primaryItemName);
+
+/**
+ * @return Returns the declaredChildNodeDefinitionNames.
+ */
+public List<NodeDefinitionValue> getDeclaredChildNodeDefinitionValues();
+
+/**
+ * @param declaredChildNodeDefinitionNames
+ *The declaredChildNodeDefinitionNames to set.
+ */
+public void setDeclaredChildNodeDefinitionValues(List<NodeDefinitionValue>
declaredChildNodeDefinitionValues);
+
+/**
+ * @return Returns the declaredPropertyDefinitionNames.
+ */
+public List<PropertyDefinitionValue>
getDeclaredPropertyDefinitionValues();
+
+/**
+ * @param declaredPropertyDefinitionNames
+ *The declaredPropertyDefinitionNames to set.
+ */
+public void
setDeclaredPropertyDefinitionValues(List<PropertyDefinitionValue>
declaredPropertyDefinitionValues);
+
+</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>
+
+<programlisting language="Java" role="Java">/**
+ * @return Returns the defaultValues.
+ */
+public List<String> getDefaultValueStrings();
+
+/**
+ * @param defaultValues The defaultValues to set.
+ */
+public void setDefaultValueStrings(List<String> defaultValues);
+
+/**
+ * @return Returns the multiple.
+ */
+public boolean isMultiple();
+
+/**
+ * @param multiple The multiple to set.
+ */
+public void setMultiple(boolean multiple);
+
+/**
+ * @return Returns the requiredType.
+ */
+public int getRequiredType();
+
+/**
+ * @param requiredType The requiredType to set.
+ */
+public void setRequiredType(int requiredType);
+
+/**
+ * @return Returns the valueConstraints.
+ */
+public List<String> getValueConstraints();
+
+/**
+ * @param valueConstraints The valueConstraints to set.
+ */
+public void setValueConstraints(List<String>
valueConstraints);</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-PropertyDefinitionValue-ItemDefinitionValue">
+
<title><literal>ItemDefinitionValue</literal></title>
+
+<programlisting language="Java" role="Java"> /**
+ * @return Returns the autoCreate.
+ */
+public boolean isAutoCreate();
+
+/**
+ * @param autoCreate The autoCreate to set.
+ */
+public void setAutoCreate(boolean autoCreate);
+
+/**
+ * @return Returns the mandatory.
+ */
+public boolean isMandatory();
+
+/**
+ * @param mandatory The mandatory to set.
+ */
+public void setMandatory(boolean mandatory);
+
+/**
+ * @return Returns the name.
+ */
+public String getName();
+
+/**
+ * @param name The name to set.
+ */
+public void setName(String name);
+
+/**
+ * @return Returns the onVersion.
+ */
+public int getOnVersion();
+
+/**
+ * @param onVersion The onVersion to set.
+ */
+public void setOnVersion(int onVersion);
+
+/**
+ * @return Returns the readOnly.
+ */
+public boolean isReadOnly();
+
+/**
+ * @param readOnly The readOnly to set.
+ */
+public void setReadOnly(boolean readOnly);</programlisting>
+
+ </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>
+
+<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>
+
+<programlisting language="Java"
role="Java">ExtendedNodeTypeManager nodeTypeManager =
(ExtendedNodeTypeManager) session.getWorkspace()
+ .getNodeTypeManager();
+NodeTypeValue testNValue = new NodeTypeValue();
+
+List<String> superType = new ArrayList<String>();
+superType.add("nt:base");
+testNValue.setName("exo:myNodeType");
+testNValue.setPrimaryItemName("");
+testNValue.setDeclaredSupertypeNames(superType);
+List<PropertyDefinitionValue> props = new
ArrayList<PropertyDefinitionValue>();
+props.add(new PropertyDefinitionValue("*",
+ false,
+ false,
+ 1,
+ false,
+ new ArrayList<String>(),
+ false,
+ 0,
+ new ArrayList<String>()));
+testNValue.setDeclaredPropertyDefinitionValues(props);
+
+nodeTypeManager.registerNodeType(testNValue,
ExtendedNodeTypeManager.FAIL_IF_EXISTS);</programlisting>
+
+ </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>
+
+<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>
+
+<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>
+ <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>();
+props.add(new PropertyDefinitionValue("tt",
+ true,
+ true,
+ 1,
+ false,
+ new ArrayList<String>(),
+ false,
+ PropertyType.STRING,
+ new ArrayList<String>()));
+myNodeTypeValue.setDeclaredPropertyDefinitionValues(props);
+
+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>
+
+<programlisting language="Java" role="Java">NodeTypeValue
myNodeTypeValue = nodeTypeManager.getNodeTypeValue(myNodeTypeName);
+
+List<NodeDefinitionValue> nodes = new
ArrayList<NodeDefinitionValue>();
+nodes.add(new NodeDefinitionValue("child",
+ false,
+ false,
+ 1,
+ false,
+ "nt:base",
+ new ArrayList<String>(),
+ false));
+testNValue.setDeclaredChildNodeDefinitionValues(nodes);
+
+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>
+
+ </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>
+
+ </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>
+ Change the definition of the property
<literal>downloadCount</literal> of the node type
<literal>myNodeType</literal> to mandatory.
+ </para>
+
+ </step>
+
+ </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>
+
+<programlisting language="Java" role="Java">NodeTypeValue
testNValue = nodeTypeManager.getNodeTypeValue("exo:myNodeType");
+
+List<String> superType = testNValue.getDeclaredSupertypeNames();
+superType.add("mix:versionable");
+testNValue.setDeclaredSupertypeNames(superType);
+
+nodeTypeManager.registerNodeType(testNValue,
ExtendedNodeTypeManager.REPLACE_IF_EXISTS);</programlisting>
+
+ </section>
+
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,150 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Node_Types_and_Namespaces">
- <title>Node Types and Namespaces</title>
- <section
id="sect-Reference_Guide-Node_Types_and_Namespaces-Introduction">
- <title>Introduction</title>
- <para>
- The JSR-170 specification requires support of node types and namespaces. Beyond the
methods required by the specification, the eXo JCR has its own API extension for NodeType
registration as well as the ability to declaratively define node types in the Repository
at the start-up time.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Node_Types_and_Namespaces-Node_Types_Definition">
- <title>Node Types Definition</title>
- <para>
- Node type registration extension is declared in
<literal>org.exoplatform.services.jcr.core.nodetype.ExtendedNodeTypeManager</literal>
interface
- </para>
- <para>
- Your custom service can register some necessary predefined node types at start up. The
node definition should be placed in a special XML file (refer to the DTD below for more
information) and declared in the service's configuration file via the eXo component
plugin mechanism, described as follows:
- </para>
-
-<programlisting language="XML"
role="XML"><external-component-plugins>
-
<target-component>org.exoplatform.services.jcr.RepositoryService</target-component>
- <component-plugin>
- <name>add.nodeType</name>
- <set-method>addPlugin</set-method>
-
<type>org.exoplatform.services.jcr.impl.AddNodeTypePlugin</type>
- <init-params>
- <values-param>
- <name>autoCreatedInNewRepository</name>
- <description>Node types configuration
file</description>
- <value>jar:/conf/test/nodetypes-tck.xml</value>
- <value>jar:/conf/test/nodetypes-impl.xml</value>
- </values-param>
- <values-param>
- <name>repo1</name>
- <description>Node types configuration file for repository with
name repo1</description>
- <value>jar:/conf/test/nodetypes-test.xml</value>
- </values-param>
- <values-param>
- <name>repo2</name>
- <description>Node types configuration file for repository with
name repo2</description>
- <value>jar:/conf/test/nodetypes-test2.xml</value>
- </values-param>
- </init-params>
- </component-plugin></programlisting>
- <para>
- There are two types of registration:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Registration of node types in all created repositories, it is configured in
values-param with the name <emphasis
role="bold">autoCreatedInNewRepository</emphasis>.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Registration of node types in specified repository and it is configured in
values-param with the name of repository.
- </para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- Node type definition file format:
- </para>
-
-<programlisting language="XML" role="XML"> <?xml
version="1.0" encoding="UTF-8"?>
- <!DOCTYPE nodeTypes [
- <!ELEMENT nodeTypes (nodeType)*>
- <!ELEMENT nodeType
(supertypes?|propertyDefinitions?|childNodeDefinitions?)>
-
- <!ATTLIST nodeType
- name CDATA #REQUIRED
- isMixin (true|false) #REQUIRED
- hasOrderableChildNodes (true|false)
- primaryItemName CDATA
- >
- <!ELEMENT supertypes (supertype*)>
- <!ELEMENT supertype (CDATA)>
-
- <!ELEMENT propertyDefinitions (propertyDefinition*)>
-
- <!ELEMENT propertyDefinition (valueConstraints?|defaultValues?)>
- <!ATTLIST propertyDefinition
- name CDATA #REQUIRED
- requiredType
(String|Date|Path|Name|Reference|Binary|Double|Long|Boolean|undefined) #REQUIRED
- autoCreated (true|false) #REQUIRED
- mandatory (true|false) #REQUIRED
- onParentVersion (COPY|VERSION|INITIALIZE|COMPUTE|IGNORE|ABORT) #REQUIRED
- protected (true|false) #REQUIRED
- multiple (true|false) #REQUIRED
- >
- <!-- For example if you need to set ValueConstraints [],
- you have to add an empty element <valueConstraints/>.
- The same order is for other properties like defaultValues, requiredPrimaryTypes
etc.
- -->
- <!ELEMENT valueConstraints (valueConstraint*)>
- <!ELEMENT valueConstraint (CDATA)>
- <!ELEMENT defaultValues (defaultValue*)>
- <!ELEMENT defaultValue (CDATA)>
-
- <!ELEMENT childNodeDefinitions (childNodeDefinition*)>
-
- <!ELEMENT childNodeDefinition (requiredPrimaryTypes)>
- <!ATTLIST childNodeDefinition
- name CDATA #REQUIRED
- defaultPrimaryType CDATA #REQUIRED
- autoCreated (true|false) #REQUIRED
- mandatory (true|false) #REQUIRED
- onParentVersion (COPY|VERSION|INITIALIZE|COMPUTE|IGNORE|ABORT) #REQUIRED
- protected (true|false) #REQUIRED
- sameNameSiblings (true|false) #REQUIRED
- >
- <!ELEMENT requiredPrimaryTypes (requiredPrimaryType+)>
- <!ELEMENT requiredPrimaryType (CDATA)>
-]></programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Node_Types_and_Namespaces-Namespaces_Definition">
- <title>Namespaces Definition</title>
- <para>
- Default namespaces are registered by repository at start up.
- </para>
- <para>
- Your custom service can extend a set of namespaces with some application specific
ones, declaring it in service's configuration file thanks to eXo component plugin
mechanism, described as follows:
- </para>
-
-<programlisting language="XML" role="XML">
<component-plugin>
- <name>add.namespaces</name>
- <set-method>addPlugin</set-method>
-
<type>org.exoplatform.services.jcr.impl.AddNamespacesPlugin</type>
- <init-params>
- <properties-param>
- <name>namespaces</name>
- <property name="test"
value="http://www.test.org/test"/>
- </properties-param>
- </init-params>
- </component-plugin></programlisting>
-
- </section>
-
-
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,150 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Node_Types_and_Namespaces">
+ <title>Node Types and Namespaces</title>
+ <section
id="sect-Reference_Guide-Node_Types_and_Namespaces-Introduction">
+ <title>Introduction</title>
+ <para>
+ The JSR-170 specification requires support of node types and namespaces. Beyond the
methods required by the specification, the eXo JCR has its own API extension for NodeType
registration as well as the ability to declaratively define node types in the Repository
at the start-up time.
+ </para>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Node_Types_and_Namespaces-Node_Types_Definition">
+ <title>Node Types Definition</title>
+ <para>
+ Node type registration extension is declared in
<literal>org.exoplatform.services.jcr.core.nodetype.ExtendedNodeTypeManager</literal>
interface
+ </para>
+ <para>
+ Your custom service can register some necessary predefined node types at start up. The
node definition should be placed in a special XML file (refer to the DTD below for more
information) and declared in the service's configuration file via the eXo component
plugin mechanism, described as follows:
+ </para>
+
+<programlisting language="XML"
role="XML"><external-component-plugins>
+
<target-component>org.exoplatform.services.jcr.RepositoryService</target-component>
+ <component-plugin>
+ <name>add.nodeType</name>
+ <set-method>addPlugin</set-method>
+
<type>org.exoplatform.services.jcr.impl.AddNodeTypePlugin</type>
+ <init-params>
+ <values-param>
+ <name>autoCreatedInNewRepository</name>
+ <description>Node types configuration
file</description>
+ <value>jar:/conf/test/nodetypes-tck.xml</value>
+ <value>jar:/conf/test/nodetypes-impl.xml</value>
+ </values-param>
+ <values-param>
+ <name>repo1</name>
+ <description>Node types configuration file for repository with
name repo1</description>
+ <value>jar:/conf/test/nodetypes-test.xml</value>
+ </values-param>
+ <values-param>
+ <name>repo2</name>
+ <description>Node types configuration file for repository with
name repo2</description>
+ <value>jar:/conf/test/nodetypes-test2.xml</value>
+ </values-param>
+ </init-params>
+ </component-plugin></programlisting>
+ <para>
+ There are two types of registration:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Registration of node types in all created repositories, it is configured in
values-param with the name <emphasis
role="bold">autoCreatedInNewRepository</emphasis>.
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Registration of node types in specified repository and it is configured in
values-param with the name of repository.
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <para>
+ Node type definition file format:
+ </para>
+
+<programlisting language="XML" role="XML"> <?xml
version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE nodeTypes [
+ <!ELEMENT nodeTypes (nodeType)*>
+ <!ELEMENT nodeType
(supertypes?|propertyDefinitions?|childNodeDefinitions?)>
+
+ <!ATTLIST nodeType
+ name CDATA #REQUIRED
+ isMixin (true|false) #REQUIRED
+ hasOrderableChildNodes (true|false)
+ primaryItemName CDATA
+ >
+ <!ELEMENT supertypes (supertype*)>
+ <!ELEMENT supertype (CDATA)>
+
+ <!ELEMENT propertyDefinitions (propertyDefinition*)>
+
+ <!ELEMENT propertyDefinition (valueConstraints?|defaultValues?)>
+ <!ATTLIST propertyDefinition
+ name CDATA #REQUIRED
+ requiredType
(String|Date|Path|Name|Reference|Binary|Double|Long|Boolean|undefined) #REQUIRED
+ autoCreated (true|false) #REQUIRED
+ mandatory (true|false) #REQUIRED
+ onParentVersion (COPY|VERSION|INITIALIZE|COMPUTE|IGNORE|ABORT) #REQUIRED
+ protected (true|false) #REQUIRED
+ multiple (true|false) #REQUIRED
+ >
+ <!-- For example if you need to set ValueConstraints [],
+ you have to add an empty element <valueConstraints/>.
+ The same order is for other properties like defaultValues, requiredPrimaryTypes
etc.
+ -->
+ <!ELEMENT valueConstraints (valueConstraint*)>
+ <!ELEMENT valueConstraint (CDATA)>
+ <!ELEMENT defaultValues (defaultValue*)>
+ <!ELEMENT defaultValue (CDATA)>
+
+ <!ELEMENT childNodeDefinitions (childNodeDefinition*)>
+
+ <!ELEMENT childNodeDefinition (requiredPrimaryTypes)>
+ <!ATTLIST childNodeDefinition
+ name CDATA #REQUIRED
+ defaultPrimaryType CDATA #REQUIRED
+ autoCreated (true|false) #REQUIRED
+ mandatory (true|false) #REQUIRED
+ onParentVersion (COPY|VERSION|INITIALIZE|COMPUTE|IGNORE|ABORT) #REQUIRED
+ protected (true|false) #REQUIRED
+ sameNameSiblings (true|false) #REQUIRED
+ >
+ <!ELEMENT requiredPrimaryTypes (requiredPrimaryType+)>
+ <!ELEMENT requiredPrimaryType (CDATA)>
+]></programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Node_Types_and_Namespaces-Namespaces_Definition">
+ <title>Namespaces Definition</title>
+ <para>
+ Default namespaces are registered by repository at start up.
+ </para>
+ <para>
+ Your custom service can extend a set of namespaces with some application specific
ones, declaring it in service's configuration file thanks to eXo component plugin
mechanism, described as follows:
+ </para>
+
+<programlisting language="XML" role="XML">
<component-plugin>
+ <name>add.namespaces</name>
+ <set-method>addPlugin</set-method>
+
<type>org.exoplatform.services.jcr.impl.AddNamespacesPlugin</type>
+ <init-params>
+ <properties-param>
+ <name>namespaces</name>
+ <property name="test"
value="http://www.test.org/test"/>
+ </properties-param>
+ </init-params>
+ </component-plugin></programlisting>
+
+ </section>
+
+
+</chapter>
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,27 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="chap-Reference_Guide-Java_Content_Repository">
- <title>Java Content Repository</title>
- <para>
- A Java Content Repository (<abbrev>JCR</abbrev>) is a java interface used
to access contents that are not only web contents, but also other hierarchically stored
data. The content is stored in a repository. The repository can be a file system, a
relational database or an XML document. The internal structure of JCR data looks similar
to an XML document; a document tree with nodes and data, however, in a JCR, the data is
stored in <literal>property items</literal>.
- </para>
- <para>
- The JCR specification states: "<emphasis>A content repository is a
high-level information management system that is a superset of traditional data
repositories</emphasis>."
- </para>
- <para>
- A JCR provides a unique java interface for interacting with both text and binary data
and for managing any kind and amount of metadata. A JCR supplies methods for storing,
updating, deleting and retrieving your data, independent of where the data is physically
stored (such as an RDBMS, a file system or as an XML document). The JCR interface is also
defined as classes and methods for searching, versioning, access control, locking, and
observation.
- </para>
- <para>
- Furthermore, an export and import functionality is specified.
- </para>
- <para>
- In order to further understand the theory of JCR and the API, please refer to some
external documents about this standard:
- </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>
-</chapter>
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/concepts/why-jcr.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,27 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter id="chap-Reference_Guide-Java_Content_Repository">
+ <title>Java Content Repository</title>
+ <para>
+ A Java Content Repository (<abbrev>JCR</abbrev>) is a java interface used
to access contents that are not only web contents, but also other hierarchically stored
data. The content is stored in a repository. The repository can be a file system, a
relational database or an XML document. The internal structure of JCR data looks similar
to an XML document; a document tree with nodes and data, however, in a JCR, the data is
stored in <literal>property items</literal>.
+ </para>
+ <para>
+ The JCR specification states: "<emphasis>A content repository is a
high-level information management system that is a superset of traditional data
repositories</emphasis>."
+ </para>
+ <para>
+ A JCR provides a unique java interface for interacting with both text and binary data
and for managing any kind and amount of metadata. A JCR supplies methods for storing,
updating, deleting and retrieving your data, independent of where the data is physically
stored (such as an RDBMS, a file system or as an XML document). The JCR interface is also
defined as classes and methods for searching, versioning, access control, locking, and
observation.
+ </para>
+ <para>
+ Furthermore, an export and import functionality is specified.
+ </para>
+ <para>
+ In order to further understand the theory of JCR and the API, please refer to some
external documents about this standard:
+ </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>
+</chapter>
+
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/exo-jcr-configuration.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/exo-jcr-configuration.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/exo-jcr-configuration.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -321,38 +321,93 @@
<section
id="sect-Reference_Guide-Portal_configuration-Workspace_configuration">
<title>Workspace configuration:</title>
- <para>
- <emphasis>name</emphasis>: The name of a workspace
- </para>
- <para>
- <emphasis>auto-init-root-nodetype</emphasis>: DEPRECATED in
JCR 1.9 (use initializer). The node type for root node initialization.
- </para>
- <para>
- <emphasis>container</emphasis>: Workspace data container
(physical storage) configuration.
- </para>
- <para>
- <emphasis>initializer</emphasis>: Workspace initializer
configuration.
- </para>
- <para>
- <emphasis>cache</emphasis>: Workspace storage cache
configuration.
- </para>
- <para>
- <emphasis>query-handler</emphasis>: Query handler
configuration.
- </para>
- <para>
- <emphasis>auto-init-permissions</emphasis>: DEPRECATED in JCR
1.9 (use initializer). Default permissions of the root node. It is defined as a set of
semicolon-delimited permissions containing a group of space-delimited identities (user,
group, etc, see Organization service documentation for details) and the type of
permission. For example, any read; <emphasis>:/admin read;</emphasis>:/admin
add_node; <emphasis>:/admin set_property;</emphasis>:/admin remove means that
users from group <emphasis>admin</emphasis> have all permissions and other
users have only a 'read' permission.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>name</term>
+ <listitem>
+ <para>
+ The name of a workspace.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>auto-init-root-nodetype</term>
+ <listitem>
+ <para>
+ DEPRECATED in JCR 1.9 (use initializer). The node
type for root node initialization.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>container</term>
+ <listitem>
+ <para>
+ Workspace data container (physical storage)
configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>initializer</term>
+ <listitem>
+ <para>
+ Workspace initializer configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cache</term>
+ <listitem>
+ <para>
+ Workspace storage cache configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>query-handler</term>
+ <listitem>
+ <para>
+ Query handler configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>auto-init-permissions</term>
+ <listitem>
+ <para>
+ DEPRECATED in JCR 1.9 (use initializer). Default
permissions of the root node. It is defined as a set of semicolon-delimited permissions
containing a group of space-delimited identities and the type of permission.
+ </para>
+ <para>
+ For example, any read; <literal>:/admin
read;</literal>:/admin add_node; <literal>:/admin
set_property;</literal>:/admin remove means that users from group
<literal>admin</literal> have all permissions and other users have only a
'read' permission.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</section>
<section
id="sect-Reference_Guide-Portal_configuration-Workspace_data_container_configuration">
<title>Workspace data container configuration:</title>
- <para>
- <emphasis>class:</emphasis> A workspace data container class
name.
- </para>
- <para>
- <emphasis>properties</emphasis>: The list of properties
(name-value pairs) for the concrete Workspace data container.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>class</term>
+ <listitem>
+ <para>
+ A workspace data container class name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>properties</term>
+ <listitem>
+ <para>
+ The list of properties (name-value pairs) for the
concrete Workspace data container.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
<table
id="tabl-Reference_Guide-Workspace_data_container_configuration-Parameter_Descriptions">
<title>Parameter Descriptions</title>
<tgroup cols="2">
@@ -417,9 +472,17 @@
</para>
</note>
- <para>
- <emphasis>value-storages</emphasis>: The list of value
storage plugins.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>value-storage</term>
+ <listitem>
+ <para>
+ The list of value storage plugins.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</section>
@@ -429,125 +492,252 @@
<para>
The value-storage element is optional. If you don't include it,
the values will be stored as BLOBs inside the database.
</para>
-
</note>
- <para>
- <emphasis>value-storage</emphasis>: Optional value Storage
plugin definition.
- </para>
- <para>
- <emphasis>class</emphasis>: A value storage plugin class name
(attribute).
- </para>
- <para>
- <emphasis>properties</emphasis>: The list of properties
(name-value pairs) for a concrete Value Storage plugin.
- </para>
- <para>
- <emphasis>filters</emphasis>: The list of filters defining
conditions when this plugin is applicable.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>value-storage</term>
+ <listitem>
+ <para>
+ Optional value Storage plugin definition.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>class</term>
+ <listitem>
+ <para>
+ A value storage plugin class name (attribute).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>properties</term>
+ <listitem>
+ <para>
+ The list of properties (name-value pairs) for a concrete
Value Storage plugin.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>filters</term>
+ <listitem>
+ <para>
+ The list of filters defining conditions when this plugin
is applicable.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</section>
<section
id="sect-Reference_Guide-Portal_configuration-Initializer_configuration_optional">
<title>Initializer configuration (optional):</title>
- <para>
- <emphasis>class</emphasis>: Initializer implementation
class.
- </para>
- <para>
- <emphasis>properties</emphasis>: The list of properties
(name-value pairs). Properties are supported.
- </para>
- <para>
- <emphasis>root-nodetype</emphasis>: The node type for root
node initialization.
- </para>
- <para>
- <emphasis>root-permissions</emphasis>: Default permissions of
the root node. It is defined as a set of semicolon-delimited permissions containing a
group of space-delimited identities (user, group etc, see Organization service
documentation for details) and the type of permission. For example any read; <emphasis
role="bold">:/admin read;</emphasis>:/admin add_node; <emphasis
role="bold">:/admin set_property;</emphasis>:/admin remove means that
users from group <emphasis>admin</emphasis> have all permissions and other
users have only a 'read' permission.
- </para>
- <para>
- Configurable initializer adds a capability to override workspace initial
startup procedure (used for Clustering). Also it replaces workspace element parameters
auto-init-root-nodetype and auto-init-permissions with root-nodetype and
root-permissions.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>class</term>
+ <listitem>
+ <para>
+ Initializer implementation class.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>properties</term>
+ <listitem>
+ <para>
+ The list of properties (name-value pairs). Properties
are supported.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>root-nodetype</term>
+ <listitem>
+ <para>
+ The node type for root node initialization.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>root-permissions</term>
+ <listitem>
+ <para>
+ Default permissions of the root node. It is defined
as a set of semicolon-delimited permissions containing a group of space-delimited
identities (user, group etc, see Organization service documentation for details) and the
type of permission. For example any read; <emphasis role="bold">:/admin
read;</emphasis>:/admin add_node; <emphasis role="bold">:/admin
set_property;</emphasis>:/admin remove means that users from group
<emphasis>admin</emphasis> have all permissions and other users have only a
'read' permission.
+ </para>
+ <para>
+ Configurable initializer adds a capability to
override workspace initial startup procedure (used for Clustering). Also it replaces
workspace element parameters auto-init-root-nodetype and auto-init-permissions with
root-nodetype and root-permissions.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</section>
<section
id="sect-Reference_Guide-Portal_configuration-Cache_configuration">
<title>Cache configuration:</title>
- <para>
- <emphasis>enabled</emphasis>: If workspace cache is enabled
or not.
- </para>
- <para>
- <emphasis>class</emphasis>: Cache implementation class,
optional from 1.9. Default value is.
org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl.
- </para>
- <para>
- Cache can be configured to use concrete implementation of
WorkspaceStorageCache interface. JCR core has two implementation to use:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- LinkedWorkspaceStorageCacheImpl - default, with configurable read
behavior and statistic.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>enabled</term>
+ <listitem>
+ <para>
+ If workspace cache is enabled or not.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>class</term>
+ <listitem>
+ <para>
+ Cache implementation class, optional from 1.9.
Default value is.
<literal>org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl</literal>.
+ </para>
+ <para>
+ Cache can be configured to use concrete
implementation of WorkspaceStorageCache interface. JCR core has two implementation to
use:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ LinkedWorkspaceStorageCacheImpl - default,
with configurable read behavior and statistic.
+ </para>
- </listitem>
- <listitem>
- <para>
- WorkspaceStorageCacheImpl - pre 1.9, still can be used.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ WorkspaceStorageCacheImpl - pre 1.9, still
can be used.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>properties</term>
+ <listitem>
+ <para>
+ The list of properties (name-value pairs) for
Workspace cache.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>max-size</term>
+ <listitem>
+ <para>
+ Cache maximum size (maxSize prior to v.1.9).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>live-time</term>
+ <listitem>
+ <para>
+ Cached item live time (liveTime prior to v.1.9).
+ </para>
+ <para>
+ From 1.9
<literal>LinkedWorkspaceStorageCacheImpl</literal> supports additional
optional parameters.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>statistic-period</term>
+ <listitem>
+ <para>
+ Period (time format) of cache statistic thread
execution, 5 minutes by default.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>statistic-log</term>
+ <listitem>
+ <para>
+ If true cache statistic will be printed to default
logger (log.info), false by default or not.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>statistic-clean</term>
+ <listitem>
+ <para>
+ If true cache statistic will be cleaned after was
gathered, false by default or not.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cleaner-period</term>
+ <listitem>
+ <para>
+ Period of the eldest items remover execution, 20
minutes by default.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>blocking-users-count</term>
+ <listitem>
+ <para>
+ Number of concurrent users allowed to read cache
storage, 0 - unlimited by default.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
- </listitem>
-
- </itemizedlist>
- <para>
- <emphasis>properties</emphasis>: The list of properties
(name-value pairs) for Workspace cache.
- </para>
- <para>
- <emphasis>max-size</emphasis>: Cache maximum size (maxSize
prior to v.1.9).
- </para>
- <para>
- <emphasis>live-time</emphasis>: Cached item live time
(liveTime prior to v.1.9).
- </para>
- <para>
- From 1.9 LinkedWorkspaceStorageCacheImpl supports additional optional
parameters.
- </para>
- <para>
- <emphasis>statistic-period</emphasis>: Period (time format)
of cache statistic thread execution, 5 minutes by default.
- </para>
- <para>
- <emphasis>statistic-log</emphasis>: If true cache statistic
will be printed to default logger (log.info), false by default or not.
- </para>
- <para>
- <emphasis>statistic-clean</emphasis>: If true cache statistic
will be cleaned after was gathered, false by default or not.
- </para>
- <para>
- <emphasis>cleaner-period</emphasis>: Period of the eldest
items remover execution, 20 minutes by default.
- </para>
- <para>
- <emphasis>blocking-users-count</emphasis>: Number of
concurrent users allowed to read cache storage, 0 - unlimited by default.
- </para>
-
</section>
<section
id="sect-Reference_Guide-Portal_configuration-Query_Handler_configuration">
<title>Query Handler configuration:</title>
- <para>
- <emphasis>class</emphasis>: A Query Handler class name.
- </para>
- <para>
- <emphasis>properties</emphasis>: The list of properties
(name-value pairs) for a Query Handler (indexDir).
- </para>
- <para>
- Properties and advanced features described in Search Configuration.
- </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>class</term>
+ <listitem>
+ <para>
+ A Query Handler class name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>properties</term>
+ <listitem>
+ <para>
+ The list of properties (name-value pairs) for a Query
Handler (indexDir).
+ </para>
+ <para>
+ Properties and advanced features described in Search
Configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</section>
<section
id="sect-Reference_Guide-Portal_configuration-Lock_Manager_configuration">
<title>Lock Manager configuration:</title>
- <para>
- <emphasis>time-out</emphasis>: Time after which the unused
global lock will be removed.
- </para>
- <para>
- <emphasis>persister</emphasis>: A class for storing lock
information for future use. For example, remove lock after jcr restart.
- </para>
- <para>
- <emphasis>path</emphasis>: A lock folder. Each workspace has
its own one.
- </para>
-
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>time-out</term>
+ <listitem>
+ <para>
+ Time after which the unused global lock will be
removed.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>persister</term>
+ <listitem>
+ <para>
+ A class for storing lock information for future use.
For example, remove lock after jcr restart.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>path</term>
+ <listitem>
+ <para>
+ A lock folder. Each workspace has its own one.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
<programlisting language="XML" role="XML"><!ELEMENT
repository-service (repositories)>
<!ATTLIST repository-service default-repository NMTOKEN #REQUIRED>
<!ELEMENT repositories (repository)>
@@ -591,7 +781,7 @@
</section>
- <section
id="sect-Reference_Guide-Portal_configuration-Help_application_to_prohibit_the_use_of_closed_sessions">
+<!-- <section
id="sect-Reference_Guide-Portal_configuration-Help_application_to_prohibit_the_use_of_closed_sessions">
<title>Help application to prohibit the use of closed
sessions</title>
<para>
Products that use eXo JCR, sometimes misuse it since they continue to use
a session that has been closed through a method call on a node, a property or even the
session itself. To prevent bad practices we propose three modes which are the following:
@@ -618,7 +808,7 @@
</orderedlist>
- </section>
+ </section> -->
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/multilanguage-support.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/multilanguage-support.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/configuration/multilanguage-support.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -4,70 +4,70 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-Multi_language_Support_the_JCR_RDB">
- <title>Multi-language Support the JCR RDB</title>
- <para>
- Whenever a relational database is used to store multilingual text data in the eXo Java
Content Repository the configuration must be adapted to support UTF-8 encoding. Dialect is
automatically detected for certified database. You can still enforce it in case of
failure, see below.
- </para>
- <para>
- The following sections describe enabling UTF-8 support with various databases.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-Oracle" />
- </para>
+ <title>Multi-language Support</title>
+ <para>
+ Whenever a relational database is used to store multilingual text data in the eXo
Java Content Repository the configuration must be adapted to support UTF-8 encoding.
Dialect is automatically detected for certified database. You can still enforce it in case
of failure, see below.
+ </para>
+ <para>
+ The following sections describe enabling UTF-8 support with various databases.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-Oracle" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-DB2" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-DB2" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-MySQL" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-MySQL" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-PostgreSQL"
/>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref
linkend="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-PostgreSQL"
/>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <note>
- <itemizedlist>
- <listitem>
- <para>
- The configuration file to be modified for these changes is
<filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename>.
- </para>
+ </itemizedlist>
+ <note>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The configuration file to be modified for these changes is
<filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename>.
+ </para>
- </listitem>
- <listitem>
- <para>
- The datasource <parameter>jdbcjcr</parameter> used in the following
examples can be configured via the
<literal>InitialContextInitializer</literal> component.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The datasource <parameter>jdbcjcr</parameter> used in the
following examples can be configured via the
<literal>InitialContextInitializer</literal> component.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </note>
- <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-Oracle">
- <title>Oracle</title>
- <para>
- In order to run multilanguage JCR on an Oracle backend Unicode encoding for characters
set should be applied to the database. Other Oracle globalization parameters do not have
any effect. The property to modify is <literal>NLS_CHARACTERSET</literal>.
- </para>
- <para>
- The <literal>NLS_CHARACTERSET = AL32UTF8</literal> entry has been
successfully tested with many European and Asian languages.
- </para>
- <para>
- Example of database configuration:
- </para>
-
+ </note>
+ <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-Oracle">
+ <title>Oracle</title>
+ <para>
+ In order to run multilanguage JCR on an Oracle backend Unicode encoding for
characters set should be applied to the database. Other Oracle globalization parameters do
not have any effect. The property to modify is
<literal>NLS_CHARACTERSET</literal>.
+ </para>
+ <para>
+ The <literal>NLS_CHARACTERSET = AL32UTF8</literal> entry has been
successfully tested with many European and Asian languages.
+ </para>
+ <para>
+ Example of database configuration:
+ </para>
+
<programlisting>NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
@@ -87,100 +87,100 @@
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16</programlisting>
- <!-- <warning>
+ <!-- <warning>
<para>
JCR 1.12.x doesn't use NVARCHAR columns, so that the value of the
parameter NLS_NCHAR_CHARACTERSET does not matter for JCR.
</para>
</warning> --> <para>
- Create database with Unicode encoding and use Oracle dialect for the Workspace
Container:
- </para>
-
+ Create database with Unicode encoding and use Oracle dialect for the
Workspace Container:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../../extras/Advanced_Development_JCR_multilanguage-support/default54.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-DB2">
- <title>DB2</title>
- <para>
- DB2 Universal Database (DB2 UDB) supports <ulink
url="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?to...
and UTF-16/UCS-2</ulink>. When a Unicode database is created,
<parameter>CHAR</parameter>, <parameter>VARCHAR</parameter> and
<parameter>LONG VARCHAR</parameter> data are stored in UTF-8 form.
- </para>
- <para>
- This enables JCR multi-lingual support.
- </para>
- <para>
- Below is an example of creating a UTF-8 database using the
<parameter>db2</parameter> dialect for a workspace container with DB2 version
9 and higher:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-DB2">
+ <title>DB2</title>
+ <para>
+ DB2 Universal Database (DB2 UDB) supports <ulink
url="http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?to...
and UTF-16/UCS-2</ulink>. When a Unicode database is created,
<parameter>CHAR</parameter>, <parameter>VARCHAR</parameter> and
<parameter>LONG VARCHAR</parameter> data are stored in UTF-8 form.
+ </para>
+ <para>
+ This enables JCR multi-lingual support.
+ </para>
+ <para>
+ Below is an example of creating a UTF-8 database using the
<parameter>db2</parameter> dialect for a workspace container with DB2 version
9 and higher:
+ </para>
+
<programlisting>DB2 CREATE DATABASE dbname USING CODESET UTF-8 TERRITORY US
</programlisting>
-
+
<programlisting language="XML" role="XML"><xi:include
href="../../../../extras/Advanced_Development_JCR_multilanguage-support/default56.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- <note>
- <para>
- For DB2 version 8.<replaceable>x</replaceable> support change the
property "dialect" to db2v8.
- </para>
+ <note>
+ <para>
+ For DB2 version 8.<replaceable>x</replaceable> support change
the property "dialect" to db2v8.
+ </para>
- </note>
+ </note>
- </section>
-
- <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-MySQL">
- <title>MySQL</title>
- <para>
- Using JCR with a MySQL-back end requires a special dialect <ulink
url="http://jira.exoplatform.org/browse/JCR-375">MySQL-UTF8&... to
be used for internationalization support.
- </para>
- <para>
- The database default charset should be <parameter>latin1</parameter> so as
to use limited index space effectively (1000 bytes for an
<literal>MyISAM</literal> engine and 767 for
<literal>InnoDB</literal>).
- </para>
- <para>
- If the database default charset is multibyte, a JCR database initialization error is
encountered concerning index creation failure.
- </para>
- <para>
- JCR can work on any single byte default charset of database, with UTF8 supported by
MySQL server. However it has only been tested using the
<parameter>latin1</parameter> charset.
- </para>
- <para>
- An example entry:
- </para>
-
+ </section>
+
+ <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-MySQL">
+ <title>MySQL</title>
+ <para>
+ Using JCR with a MySQL-back end requires a special dialect <ulink
url="http://jira.exoplatform.org/browse/JCR-375">MySQL-UTF8&... to
be used for internationalization support.
+ </para>
+ <para>
+ The database default charset should be
<parameter>latin1</parameter> so as to use limited index space effectively
(1000 bytes for an <literal>MyISAM</literal> engine and 767 for
<literal>InnoDB</literal>).
+ </para>
+ <para>
+ If the database default charset is multibyte, a JCR database initialization
error is encountered concerning index creation failure.
+ </para>
+ <para>
+ JCR can work on any single byte default charset of database, with UTF8
supported by MySQL server. However it has only been tested using the
<parameter>latin1</parameter> charset.
+ </para>
+ <para>
+ An example entry:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../../extras/Advanced_Development_JCR_multilanguage-support/default57.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-PostgreSQL">
- <title>PostgreSQL</title>
- <para>
- Multilingual support can be enabled with a PostgreSQL-back end in <ulink
url="http://www.postgresql.org/docs/8.3/interactive/charset.html&quo...
ways</ulink>:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Using the locale features of the operating system to provide locale-specific
collation order, number formatting, translated messages, and other aspects.
- </para>
- <para>
- UTF-8 is widely used on Linux distributions by default, so it can be useful in such
cases.
- </para>
+ </section>
+
+ <section
id="sect-Reference_Guide-Multi_language_Support_the_JCR_RDB-PostgreSQL">
+ <title>PostgreSQL</title>
+ <para>
+ Multilingual support can be enabled with a PostgreSQL-back end in <ulink
url="http://www.postgresql.org/docs/8.3/interactive/charset.html&quo...
ways</ulink>:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Using the locale features of the operating system to provide
locale-specific collation order, number formatting, translated messages, and other
aspects.
+ </para>
+ <para>
+ UTF-8 is widely used on Linux distributions by default, so it can be
useful in such cases.
+ </para>
- </listitem>
- <listitem>
- <para>
- Providing a number of different character sets defined in the PostgreSQL server,
including multiple-byte character sets, to support storing text any language, and
providing character set translation between client and server.
- </para>
- <para>
- Using UTF-8 database charset is recommended as it will allow any-to-any
conversations and make this issue transparent for the JCR.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Providing a number of different character sets defined in the
PostgreSQL server, including multiple-byte character sets, to support storing text any
language, and providing character set translation between client and server.
+ </para>
+ <para>
+ Using UTF-8 database charset is recommended as it will allow
any-to-any conversations and make this issue transparent for the JCR.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <para>
- Example of a database with UTF-8 encoding using PgSQL dialect for the Workspace
Container:
- </para>
-
+ </orderedlist>
+ <para>
+ Example of a database with UTF-8 encoding using PgSQL dialect for the
Workspace Container:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include
href="../../../../extras/Advanced_Development_JCR_multilanguage-support/default58.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
- </section>
-
+ </section>
+
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/lock-manager-config.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/lock-manager-config.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/lock-manager-config.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -364,7 +364,7 @@
</section>
<section
id="sect-Reference_Guide-CacheableLockManagerImpl-Lock_migration_from_1.12.x">
- <title>Lock migration from 1.12.x</title>
+ <title>Lock Migration</title>
<para>
There are three options available:
</para>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/webdav.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/webdav.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/protocols/webdav.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -4,50 +4,50 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-WebDAV">
- <!-- This document was created with Syntext Serna Free. -->
<title>WebDAV</title>
- <section id="sect-Reference_Guide-WebDAV-Introduction">
- <title>Introduction</title>
- <para>
- The <application>WebDAV</application> protocol enables you to use third
party tools to communicate with hierarchical content servers via the HTTP protocol. It is
possible to add and remove documents or a set of documents from a path on the server.
- </para>
- <para>
- <application>DeltaV</application> is an extension of the WebDav protocol
that allows managing document versioning. The <emphasis>Locking</emphasis>
feature guarantees protection against multiple access when writing resources. The ordering
support allows changing the position of the resource in the list and sort the directory to
make the directory tree viewed conveniently. The full-text search makes it easy to find
the necessary documents. You can search by using two languages: SQL and XPATH.
- </para>
- <para>
- In the eXo JCR, the WebDAV layer (based on the code taken from the extension modules
of the reference implementation) is plugged in on top of our JCR implementation. This
makes it possible to browse a workspace using the third party tools regardless of
operating system environments. You can use a Java WebDAV client, such as
<application>DAVExplorer</application> or <application>Internet
Explorer</application> using
<menuchoice><guimenu>File</guimenu><guimenuitem>Open as a Web
Folder</guimenuitem></menuchoice>.
- </para>
- <para>
- WebDav is an extension of the REST service. To get the WebDav server ready, you must
deploy the REST application. Then, you can access any workspaces of your repository by
using the following URL:
- </para>
- <para>
- <ulink type="http"
url="http://host:port/portal/rest/private/jcr/{RepositoryName}/{WorkspaceName}/{Path}"
/>
- </para>
- <para>
- When accessing the WebDAV server via <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/production" />, you can
substitute <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/production">production</ulink>
with <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/collaboration">collaboration</ulink>.
- </para>
- <para>
- You will be asked to enter your login credentials. These will then be checked by using
the organization service that can be implemented thanks to an InMemory (dummy) module or a
DB module or an LDAP one and the JCR user session will be created with the correct JCR
Credentials.
- </para>
- <note>
- <title>Note:</title>
- <!-- <remark>DOCS NOTE: I have no idea what this means!</remark>
--> <para>
- If you try the "in ECM" option, add "@ecm" to the user's
password. Alternatively, you may modify jaas.conf by adding the <emphasis
role="bold">domain=ecm</emphasis> option as follows:
- </para>
-
+ <!-- This document was created with Syntext Serna Free. -->
<title>WebDAV</title>
+ <section id="sect-Reference_Guide-WebDAV-Introduction">
+ <title>Introduction</title>
+ <para>
+ The <application>WebDAV</application> protocol enables you to use
third party tools to communicate with hierarchical content servers via the HTTP protocol.
It is possible to add and remove documents or a set of documents from a path on the
server.
+ </para>
+ <para>
+ <application>DeltaV</application> is an extension of the WebDav
protocol that allows managing document versioning. The
<emphasis>Locking</emphasis> feature guarantees protection against multiple
access when writing resources. The ordering support allows changing the position of the
resource in the list and sort the directory to make the directory tree viewed
conveniently. The full-text search makes it easy to find the necessary documents. You can
search by using two languages: SQL and XPATH.
+ </para>
+ <para>
+ In the eXo JCR, the WebDAV layer (based on the code taken from the extension
modules of the reference implementation) is plugged in on top of our JCR implementation.
This makes it possible to browse a workspace using the third party tools regardless of
operating system environments. You can use a Java WebDAV client, such as
<application>DAVExplorer</application> or <application>Internet
Explorer</application> using
<menuchoice><guimenu>File</guimenu><guimenuitem>Open as a Web
Folder</guimenuitem></menuchoice>.
+ </para>
+ <para>
+ WebDav is an extension of the REST service. To get the WebDav server ready,
you must deploy the REST application. Then, you can access any workspaces of your
repository by using the following URL:
+ </para>
+ <para>
+ <ulink type="http"
url="http://host:port/portal/rest/private/jcr/{RepositoryName}/{WorkspaceName}/{Path}"
/>
+ </para>
+ <para>
+ When accessing the WebDAV server via <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/production" />, you can
substitute <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/production">production</ulink>
with <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/collaboration">collaboration</ulink>.
+ </para>
+ <para>
+ You will be asked to enter your login credentials. These will then be checked
by using the organization service that can be implemented thanks to an InMemory (dummy)
module or a DB module or an LDAP one and the JCR user session will be created with the
correct JCR Credentials.
+ </para>
+ <note>
+ <title>Note:</title>
+ <!-- <remark>DOCS NOTE: I have no idea what this
means!</remark> --> <para>
+ If you try the "in ECM" option, add "@ecm" to the
user's password. Alternatively, you may modify jaas.conf by adding the <emphasis
role="bold">domain=ecm</emphasis> option as follows:
+ </para>
+
<programlisting>exo-domain {
org.exoplatform.services.security.jaas.BasicLoginModule required domain=ecm;
};</programlisting>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-WebDAV_Configuration">
- <title>WebDAV Configuration</title>
- <para>
- The WebDAV configuration file: <!-- is defined in the
<remark><filename>DOC NOTE:
where/is/this/file.xml</filename></remark> -->
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-WebDAV-WebDAV_Configuration">
+ <title>WebDAV Configuration</title>
+ <para>
+ The WebDAV configuration file: <!-- is defined in the
<remark><filename>DOC NOTE:
where/is/this/file.xml</filename></remark> -->
+ </para>
+
<programlisting language="XML"
role="XML"><component>
<key>org.exoplatform.services.webdav.WebDavServiceImpl</key>
<type>org.exoplatform.services.webdav.WebDavServiceImpl</type>
@@ -128,359 +128,359 @@
<value>/absolute/path/to/file</value>
</value-param>
- </init-params
+ </init-params>
</component></programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-WebDAV-Corresponding_WebDav_and_JCR_actions">
- <title>Corresponding WebDav and JCR actions</title>
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- WebDav
- </entry>
- <entry>
- JCR
- </entry>
+ </section>
+
+ <section
id="sect-Reference_Guide-WebDAV-Corresponding_WebDav_and_JCR_actions">
+ <title>Corresponding WebDav and JCR actions</title>
+ <table>
+ <title></title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ WebDav
+ </entry>
+ <entry>
+ JCR
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- COPY
- </entry>
- <entry>
- Workspace.copy(...)
- </entry>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ COPY
+ </entry>
+ <entry>
+ Workspace.copy(...)
+ </entry>
- </row>
- <row>
- <entry>
- DELETE
- </entry>
- <entry>
- Node.remove()
- </entry>
+ </row>
+ <row>
+ <entry>
+ DELETE
+ </entry>
+ <entry>
+ Node.remove()
+ </entry>
- </row>
- <row>
- <entry>
- GET
- </entry>
- <entry>
- Node.getProperty(...); Property.getValue()
- </entry>
+ </row>
+ <row>
+ <entry>
+ GET
+ </entry>
+ <entry>
+ Node.getProperty(...); Property.getValue()
+ </entry>
- </row>
- <row>
- <entry>
- HEAD
- </entry>
- <entry>
- Node.getProperty(...); Property.getLength()
- </entry>
+ </row>
+ <row>
+ <entry>
+ HEAD
+ </entry>
+ <entry>
+ Node.getProperty(...); Property.getLength()
+ </entry>
- </row>
- <row>
- <entry>
- MKCOL
- </entry>
- <entry>
- Node.addNode(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ MKCOL
+ </entry>
+ <entry>
+ Node.addNode(...)
+ </entry>
- </row>
- <row>
- <entry>
- MOVE
- </entry>
- <entry>
- Session.move(...) or Workspace.move(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ MOVE
+ </entry>
+ <entry>
+ Session.move(...) or Workspace.move(...)
+ </entry>
- </row>
- <row>
- <entry>
- PROPFIND
- </entry>
- <entry>
- Session.getNode(...); Node.getNode(...); Node.getNodes(...); Node.getProperties()
- </entry>
+ </row>
+ <row>
+ <entry>
+ PROPFIND
+ </entry>
+ <entry>
+ Session.getNode(...); Node.getNode(...); Node.getNodes(...);
Node.getProperties()
+ </entry>
- </row>
- <row>
- <entry>
- PROPPATCH
- </entry>
- <entry>
- Node.setProperty(...); Node.getProperty(...).remove()
- </entry>
+ </row>
+ <row>
+ <entry>
+ PROPPATCH
+ </entry>
+ <entry>
+ Node.setProperty(...); Node.getProperty(...).remove()
+ </entry>
- </row>
- <row>
- <entry>
- PUT
- </entry>
- <entry>
- Node.addNode("node","nt:file");
Node.setProperty("jcr:data", "data")
- </entry>
+ </row>
+ <row>
+ <entry>
+ PUT
+ </entry>
+ <entry>
+ Node.addNode("node","nt:file");
Node.setProperty("jcr:data", "data")
+ </entry>
- </row>
- <row>
- <entry>
- CHECKIN
- </entry>
- <entry>
- Node.checkin()
- </entry>
+ </row>
+ <row>
+ <entry>
+ CHECKIN
+ </entry>
+ <entry>
+ Node.checkin()
+ </entry>
- </row>
- <row>
- <entry>
- CHECKOUT
- </entry>
- <entry>
- Node.checkout()
- </entry>
+ </row>
+ <row>
+ <entry>
+ CHECKOUT
+ </entry>
+ <entry>
+ Node.checkout()
+ </entry>
- </row>
- <row>
- <entry>
- REPORT
- </entry>
- <entry>
- Node.getVersionHistory(); VersionHistory.getAllVersions();
Version.getProperties()
- </entry>
+ </row>
+ <row>
+ <entry>
+ REPORT
+ </entry>
+ <entry>
+ Node.getVersionHistory(); VersionHistory.getAllVersions();
Version.getProperties()
+ </entry>
- </row>
- <row>
- <entry>
- RESTORE
- </entry>
- <entry>
- Node.restore(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ RESTORE
+ </entry>
+ <entry>
+ Node.restore(...)
+ </entry>
- </row>
- <row>
- <entry>
- UNCHECKOUT
- </entry>
- <entry>
- Node.restore(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ UNCHECKOUT
+ </entry>
+ <entry>
+ Node.restore(...)
+ </entry>
- </row>
- <row>
- <entry>
- VERSION-CONTROL
- </entry>
- <entry>
- Node.addMixin("mix:versionable")
- </entry>
+ </row>
+ <row>
+ <entry>
+ VERSION-CONTROL
+ </entry>
+ <entry>
+ Node.addMixin("mix:versionable")
+ </entry>
- </row>
- <row>
- <entry>
- LOCK
- </entry>
- <entry>
- Node.lock(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ LOCK
+ </entry>
+ <entry>
+ Node.lock(...)
+ </entry>
- </row>
- <row>
- <entry>
- UNLOCK
- </entry>
- <entry>
- Node.unlock()
- </entry>
+ </row>
+ <row>
+ <entry>
+ UNLOCK
+ </entry>
+ <entry>
+ Node.unlock()
+ </entry>
- </row>
- <row>
- <entry>
- ORDERPATCH
- </entry>
- <entry>
- Node.orderBefore(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ ORDERPATCH
+ </entry>
+ <entry>
+ Node.orderBefore(...)
+ </entry>
- </row>
- <row>
- <entry>
- SEARCH
- </entry>
- <entry>
- Workspace.getQueryManager(); QueryManager.createQuery(); Query.execute()
- </entry>
+ </row>
+ <row>
+ <entry>
+ SEARCH
+ </entry>
+ <entry>
+ Workspace.getQueryManager(); QueryManager.createQuery();
Query.execute()
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-WebDAV_Considerations">
- <title>WebDAV Considerations</title>
+ </section>
+
+ <section id="sect-Reference_Guide-WebDAV-WebDAV_Considerations">
+ <title>WebDAV Considerations</title>
<!-- DOCS NOTE: This content is duplicated in the Site Publisher User Guide
to avoid cross-document linking.
Any changes here should also be made there-->
- <para>
- There are some restrictions for WebDAV in different operating systems.
- </para>
- <formalpara
id="form-Reference_Guide-WebDAV_Considerations-Windows_7">
- <title>Windows 7</title>
- <para>
- When attemping to set up a web folder through <guilabel>Add a Network
Location</guilabel> or <guilabel>Map a Network Drive</guilabel> through
<guilabel>My Computer</guilabel>, an error message stating <guilabel>The
folder you entered does not appear to be valid. Please choose another</guilabel> or
<guilabel>Windows cannot access … Check the spelling of the name. Otherwise, there
might be …</guilabel> may be encountered. These errors may appear when you are using
SSL or non-SSL.
- </para>
+ <para>
+ There are some restrictions for WebDAV in different operating systems.
+ </para>
+ <formalpara
id="form-Reference_Guide-WebDAV_Considerations-Windows_7">
+ <title>Windows 7</title>
+ <para>
+ When attemping to set up a web folder through <guilabel>Add a
Network Location</guilabel> or <guilabel>Map a Network Drive</guilabel>
through <guilabel>My Computer</guilabel>, an error message stating
<guilabel>The folder you entered does not appear to be valid. Please choose
another</guilabel> or <guilabel>Windows cannot access … Check the spelling of
the name. Otherwise, there might be …</guilabel> may be encountered. These errors
may appear when you are using SSL or non-SSL.
+ </para>
- </formalpara>
- <para>
- To fix this, do as follows:
- </para>
- <procedure>
- <step>
- <para>
- Go to Windows Registry Editor.
- </para>
+ </formalpara>
+ <para>
+ To fix this, do as follows:
+ </para>
+ <procedure>
+ <step>
+ <para>
+ Go to Windows Registry Editor.
+ </para>
- </step>
- <step>
- <para>
- Find a key:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\services\WebClient\Parameters\BasicAuthLevel
.
- </para>
+ </step>
+ <step>
+ <para>
+ Find a key:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\services\WebClient\Parameters\BasicAuthLevel
.
+ </para>
- </step>
- <step>
- <para>
- Change the value to 2.
- </para>
+ </step>
+ <step>
+ <para>
+ Change the value to 2.
+ </para>
- </step>
+ </step>
- </procedure>
- <formalpara
id="form-Reference_Guide-WebDAV_Considerations-Microsoft_Office_2010">
- <title>Microsoft Office 2010</title>
- <para>
- If you have:
- </para>
+ </procedure>
+ <formalpara
id="form-Reference_Guide-WebDAV_Considerations-Microsoft_Office_2010">
+ <title>Microsoft Office 2010</title>
+ <para>
+ If you have:
+ </para>
- </formalpara>
- <itemizedlist>
- <listitem>
- <para>
- Microsoft Office 2007/2010 applications installed on a client computer AND...
- </para>
+ </formalpara>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Microsoft Office 2007/2010 applications installed on a client
computer AND...
+ </para>
- </listitem>
- <listitem>
- <para>
- The client computer is connected to a web server configured for Basic authentication
VIA...
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The client computer is connected to a web server configured for Basic
authentication VIA...
+ </para>
- </listitem>
- <listitem>
- <para>
- A connection that does not use Secure Sockets Layer (SSL) AND...
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ A connection that does not use Secure Sockets Layer (SSL) AND...
+ </para>
- </listitem>
- <listitem>
- <para>
- You try to access an Office file that is stored on the remote server...
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ You try to access an Office file that is stored on the remote
server...
+ </para>
- </listitem>
- <listitem>
- <para>
- You might experience the following symptoms when you try to open or to download the
file:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The Office file does not open or download.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ You might experience the following symptoms when you try to open or
to download the file:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The Office file does not open or download.
+ </para>
- </listitem>
- <listitem>
- <para>
- You do not receive a Basic authentication password prompt when you try to open or
to download the file.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ You do not receive a Basic authentication password prompt
when you try to open or to download the file.
+ </para>
- </listitem>
- <listitem>
- <para>
- You do not receive an error message when you try to open the file. The associated
Office application starts. However, the selected file does not open.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ You do not receive an error message when you try to open the
file. The associated Office application starts. However, the selected file does not open.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- These outcomes can be circumvented by enabling Basic authentication on the client
machine.
- </para>
- <para>
- To enable Basic authentication on the client computer, follow these steps:
- </para>
- <procedure>
- <step>
- <para>
- Click Start, type <literal>regedit</literal> in the Start Search box,
and then press Enter.
- </para>
+ </itemizedlist>
+ <para>
+ These outcomes can be circumvented by enabling Basic authentication on the
client machine.
+ </para>
+ <para>
+ To enable Basic authentication on the client computer, follow these steps:
+ </para>
+ <procedure>
+ <step>
+ <para>
+ Click Start, type <literal>regedit</literal> in the Start
Search box, and then press Enter.
+ </para>
- </step>
- <step>
- <para>
- Locate and then click the following registry subkey:
- </para>
- <para>
- <envar>HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet</envar>
- </para>
+ </step>
+ <step>
+ <para>
+ Locate and then click the following registry subkey:
+ </para>
+ <para>
+
<envar>HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet</envar>
+ </para>
- </step>
- <step>
- <para>
- On the <guilabel>Edit</guilabel> menu, point to
<guilabel>New</guilabel>, and then click <guilabel>DWORD
Value</guilabel>.
- </para>
+ </step>
+ <step>
+ <para>
+ On the <guilabel>Edit</guilabel> menu, point to
<guilabel>New</guilabel>, and then click <guilabel>DWORD
Value</guilabel>.
+ </para>
- </step>
- <step>
- <para>
- Type <literal>BasicAuthLevel</literal>, and then press
<keycap>Enter</keycap>.
- </para>
+ </step>
+ <step>
+ <para>
+ Type <literal>BasicAuthLevel</literal>, and then press
<keycap>Enter</keycap>.
+ </para>
- </step>
- <step>
- <para>
- Right-click <literal>BasicAuthLevel</literal>, and then click
<guilabel>Modify</guilabel>.
- </para>
+ </step>
+ <step>
+ <para>
+ Right-click <literal>BasicAuthLevel</literal>, and then
click <guilabel>Modify</guilabel>.
+ </para>
- </step>
- <step>
- <para>
- In the Value data box, type <literal>2</literal>, and then click
<guilabel>OK</guilabel>.
- </para>
+ </step>
+ <step>
+ <para>
+ In the Value data box, type <literal>2</literal>, and
then click <guilabel>OK</guilabel>.
+ </para>
- </step>
+ </step>
- </procedure>
+ </procedure>
- </section>
-
+ </section>
+
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/repository-creation-service.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/repository-creation-service.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/repository-creation-service.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -129,7 +129,7 @@
</section>
- <section
id="sect-Reference_Guide-RepositoryCreationService-RepositoryCreationService_Interface">
+ <!--<section
id="sect-Reference_Guide-RepositoryCreationService-RepositoryCreationService_Interface">
<title>RepositoryCreationService Interface</title>
<programlisting language="Java" role="Java">public interface
RepositoryCreationService
@@ -214,7 +214,7 @@
}</programlisting>
- </section>
+ </section> -->
<section
id="sect-Reference_Guide-RepositoryCreationService-Conclusions_and_restrictions">
<title>Conclusions and restrictions</title>
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,163 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node">
- <title>Finding a node by content of child node</title>
- <para>
- The node type <literal>nt:file</literal> represents a file. It
requires a single child node, called <literal>jcr:content</literal>. This node
type represents images and other binary content. The node type of
<literal>jcr:content</literal> is <literal>nt:resource</literal>
which represents the actual content of a file.
- </para>
- <formalpara
id="form-Reference_Guide-Finding_a_node_by_content_of_child_node-Task">
- <title>Task:</title>
- <para>
- Find node with the primary type <literal>nt:file</literal> and
whose <literal>jcr:content</literal> child node contains
<emphasis>cats</emphasis>.
- </para>
-
- </formalpara>
- <para>
-
- </para>
- <para>
- Although JCR SQL or XPath queries cannot usually find nodes, indexing can be
configured so that <literal>nt:file</literal> aggregates the
<literal>jcr:content</literal> values of a child node.
- </para>
- <para>
- To do this, change <filename>indexing-configuration.xml</filename> to
be:
- </para>
-
-<programlisting language="XML" role="XML"><?xml
version="1.0"?>
-<!DOCTYPE configuration SYSTEM
"http://www.exoplatform.org/dtd/indexing-configuration-1.2.dtd">
-<configuration
xmlns:jcr="http://www.jcp.org/jcr/1.0"
-
xmlns:nt="http://www.jcp.org/jcr/nt/1.0">
- <aggregate primaryType="nt:file">
- <include>jcr:content</include>
- <include>jcr:content/*</include>
-
<include-property>jcr:content/jcr:lastModified</include-property>
- </aggregate>
-</configuration></programlisting>
- <para>
- Now the content of <literal>nt:file</literal> and
<literal>jcr:content</literal> (<literal>nt:resource</literal>)
nodes are concatenated in a single Lucene document. Then, a fulltext search query can be
based on content of the <literal>nt:file</literal> and this search includes
the content of child <literal>jcr:content</literal> node.
- </para>
- <section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository contains different <literal>nt:file</literal> nodes.
- </para>
-
-<programlisting>root
- ├── document1 (nt:file)
- │ └── jcr:content (nt:resource) jcr:data = "The quick brown fox jumps over the
lazy dog."
- ├── document2 (nt:file)
- │ └── jcr:content (nt:resource) jcr:data = "Dogs do not like cats."
- └── document3 (nt:file)
- └── jcr:content (nt:resource) jcr:data = "Cats jumping high."
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Finding_a_node_by_content_of_child_node-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:file WHERE
CONTAINS(*,'cats')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_a_node_by_content_of_child_node-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement =
"//element(*,nt:file)[jcr:contains(.,'cats')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node-Fetching_the_result">
- <title>Fetching the result</title>
- <para>
- To fetch the matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis> and <literal>document3</literal>.
- </para>
- <para>
- The output can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Finding_a_node_by_content_of_child_node-Fetching_the_result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /document2
- </entry>
- <entry>
- 1030
- </entry>
-
- </row>
- <row>
- <entry>
- /document3
- </entry>
- <entry>
- 1030
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/aggregation-rule.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,163 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node">
+ <title>Finding a node by content of child node</title>
+ <para>
+ The node type <literal>nt:file</literal> represents a file. It
requires a single child node, called <literal>jcr:content</literal>. This node
type represents images and other binary content. The node type of
<literal>jcr:content</literal> is <literal>nt:resource</literal>
which represents the actual content of a file.
+ </para>
+ <formalpara
id="form-Reference_Guide-Finding_a_node_by_content_of_child_node-Task">
+ <title>Task:</title>
+ <para>
+ Find node with the primary type <literal>nt:file</literal> and
whose <literal>jcr:content</literal> child node contains
<emphasis>cats</emphasis>.
+ </para>
+
+ </formalpara>
+ <para>
+
+ </para>
+ <para>
+ Although JCR SQL or XPath queries cannot usually find nodes, indexing can be
configured so that <literal>nt:file</literal> aggregates the
<literal>jcr:content</literal> values of a child node.
+ </para>
+ <para>
+ To do this, change <filename>indexing-configuration.xml</filename> to
be:
+ </para>
+
+<programlisting language="XML" role="XML"><?xml
version="1.0"?>
+<!DOCTYPE configuration SYSTEM
"http://www.exoplatform.org/dtd/indexing-configuration-1.2.dtd">
+<configuration
xmlns:jcr="http://www.jcp.org/jcr/1.0"
+
xmlns:nt="http://www.jcp.org/jcr/nt/1.0">
+ <aggregate primaryType="nt:file">
+ <include>jcr:content</include>
+ <include>jcr:content/*</include>
+
<include-property>jcr:content/jcr:lastModified</include-property>
+ </aggregate>
+</configuration></programlisting>
+ <para>
+ Now the content of <literal>nt:file</literal> and
<literal>jcr:content</literal> (<literal>nt:resource</literal>)
nodes are concatenated in a single Lucene document. Then, a fulltext search query can be
based on content of the <literal>nt:file</literal> and this search includes
the content of child <literal>jcr:content</literal> node.
+ </para>
+ <section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository contains different <literal>nt:file</literal> nodes.
+ </para>
+
+<programlisting>root
+ ├── document1 (nt:file)
+ │ └── jcr:content (nt:resource) jcr:data = "The quick brown fox jumps over the
lazy dog."
+ ├── document2 (nt:file)
+ │ └── jcr:content (nt:resource) jcr:data = "Dogs do not like cats."
+ └── document3 (nt:file)
+ └── jcr:content (nt:resource) jcr:data = "Cats jumping high."
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Finding_a_node_by_content_of_child_node-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:file WHERE
CONTAINS(*,'cats')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_a_node_by_content_of_child_node-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement =
"//element(*,nt:file)[jcr:contains(.,'cats')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_a_node_by_content_of_child_node-Fetching_the_result">
+ <title>Fetching the result</title>
+ <para>
+ To fetch the matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis> and <literal>document3</literal>.
+ </para>
+ <para>
+ The output can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Finding_a_node_by_content_of_child_node-Fetching_the_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 1030
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 1030
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,150 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-AND_Constraint">
- <title>AND Constraint</title>
- <formalpara id="form-Reference_Guide-AND_Constraint-Task">
- <title>Task:</title>
- <para>
- To find all <emphasis>fairytales</emphasis> with a page count
more than <literal>90</literal> pages. Or, in JCR terms; find all nodes with
mixin type <literal>mix:title</literal> where the property
<parameter>jcr:description</parameter> equals
<emphasis>fairytale</emphasis> and whose
<parameter>prop_pagecount</parameter> property value is less than
<literal>90</literal>.
- </para>
-
- </formalpara>
- <note>
- <para>
- See also <xref
linkend="sect-Reference_Guide-Multivalue_Property_Comparison" />.
- </para>
-
- </note>
- <section
id="sect-Reference_Guide-AND_Constraint-Repository_Structure">
- <title>Repository Structure:</title>
- <para>
- The repository contains <literal>mix:title</literal> nodes, where
<parameter>prop_pagecount</parameter> has different values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="War and peace"
jcr:description="novel" prop_pagecount=1000
- ├── document2 (mix:title) jcr:title="Cinderella"
jcr:description="fairytale" prop_pagecount=100
- └── document3 (mix:title) jcr:title="Puss in Boots"
jcr:description="fairytale" prop_pagecount=60
-</programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-AND_Constraint-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-AND_Constraint-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE jcr:description =
'fairytale' AND prop_pagecount > 90";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-AND_Constraint-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[@jcr:description='fairytale'
and @prop_pagecount > 90]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-AND_Constraint-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-AND_Constraint-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="5">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- prop_pagecount
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Cinderella
- </entry>
- <entry>
- fairytale
- </entry>
- <entry>
- 100
- </entry>
- <entry>
- /document2
- </entry>
- <entry>
- 7086
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/and-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,150 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-AND_Constraint">
+ <title>AND Constraint</title>
+ <formalpara id="form-Reference_Guide-AND_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ To find all <emphasis>fairytales</emphasis> with a page count
more than <literal>90</literal> pages. Or, in JCR terms; find all nodes with
mixin type <literal>mix:title</literal> where the property
<parameter>jcr:description</parameter> equals
<emphasis>fairytale</emphasis> and whose
<parameter>prop_pagecount</parameter> property value is less than
<literal>90</literal>.
+ </para>
+
+ </formalpara>
+ <note>
+ <para>
+ See also <xref
linkend="sect-Reference_Guide-Multivalue_Property_Comparison" />.
+ </para>
+
+ </note>
+ <section
id="sect-Reference_Guide-AND_Constraint-Repository_Structure">
+ <title>Repository Structure:</title>
+ <para>
+ The repository contains <literal>mix:title</literal> nodes, where
<parameter>prop_pagecount</parameter> has different values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="War and peace"
jcr:description="novel" prop_pagecount=1000
+ ├── document2 (mix:title) jcr:title="Cinderella"
jcr:description="fairytale" prop_pagecount=100
+ └── document3 (mix:title) jcr:title="Puss in Boots"
jcr:description="fairytale" prop_pagecount=60
+</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-AND_Constraint-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-AND_Constraint-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:description =
'fairytale' AND prop_pagecount > 90";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-AND_Constraint-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[@jcr:description='fairytale'
and @prop_pagecount > 90]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-AND_Constraint-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-AND_Constraint-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ prop_pagecount
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Cinderella
+ </entry>
+ <entry>
+ fairytale
+ </entry>
+ <entry>
+ 100
+ </entry>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 7086
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,140 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Child_Node_Constraint">
- <title>Child Node Constraint</title>
- <formalpara id="form-Reference_Guide-Child_Node_Constraint-Task">
- <title>Task:</title>
- <para>
- To find all nodes with the primary type
'<literal>nt:folder</literal>' that are children of node by path
"<filename>/root1/root2</filename>". Only find children, do not find
further descendants.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Child_Node_Constraint-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository is filled by
"<literal>nt:folder</literal>" nodes. The nodes are placed in a
multilayer tree.
- </para>
-
-<screen>root
- └── folder1 (nt:folder)
- └── folder2 (nt:folder)
- ├── folder3 (nt:folder) // This node we want to find
- │ └── folder4 (nt:folder) // This node is not child but a descendant of
'/folder1/folder2/'
- └── folder5 (nt:folder) // This node we want to find
-</screen>
-
- </section>
-
- <section
id="sect-Reference_Guide-Child_Node_Constraint-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Child_Node_Constraint-Query_Execution-SQL">
- <title>SQL</title>
- <para>
- The use of "%" in the LIKE statement includes any string,
therefore there is a second LIKE statement that excludes that the string contains
"/". This way child nodes are included but descendant nodes are excluded.
- </para>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:folder WHERE jcr:path LIKE
'/folder1/folder2/%' AND NOT jcr:path LIKE '/folder1/folder2/%/%'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Child_Node_Constraint-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement =
"/jcr:root/folder1[1]/folder2[1]/element(*,nt:folder)";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Child_Node_Constraint-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>folder3</emphasis> and <emphasis>folder5</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is:
- <table
id="tabl-Reference_Guide-Child_Node_Constraint-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /folder1/folder2/folder3
- </entry>
- <entry>
- 1707
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/folder2/folder5
- </entry>
- <entry>
- 1707
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/child-node-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,140 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Child_Node_Constraint">
+ <title>Child Node Constraint</title>
+ <formalpara id="form-Reference_Guide-Child_Node_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ To find all nodes with the primary type
'<literal>nt:folder</literal>' that are children of node by path
"<filename>/root1/root2</filename>". Only find children, do not find
further descendants.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Child_Node_Constraint-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository is filled by
"<literal>nt:folder</literal>" nodes. The nodes are placed in a
multilayer tree.
+ </para>
+
+<screen>root
+ └── folder1 (nt:folder)
+ └── folder2 (nt:folder)
+ ├── folder3 (nt:folder) // This node we want to find
+ │ └── folder4 (nt:folder) // This node is not child but a descendant of
'/folder1/folder2/'
+ └── folder5 (nt:folder) // This node we want to find
+</screen>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Child_Node_Constraint-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Child_Node_Constraint-Query_Execution-SQL">
+ <title>SQL</title>
+ <para>
+ The use of "%" in the LIKE statement includes any string,
therefore there is a second LIKE statement that excludes that the string contains
"/". This way child nodes are included but descendant nodes are excluded.
+ </para>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:folder WHERE jcr:path LIKE
'/folder1/folder2/%' AND NOT jcr:path LIKE '/folder1/folder2/%/%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Child_Node_Constraint-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement =
"/jcr:root/folder1[1]/folder2[1]/element(*,nt:folder)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Child_Node_Constraint-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>folder3</emphasis> and <emphasis>folder5</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is:
+ <table
id="tabl-Reference_Guide-Child_Node_Constraint-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /folder1/folder2/folder3
+ </entry>
+ <entry>
+ 1707
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/folder2/folder5
+ </entry>
+ <entry>
+ 1707
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,166 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Date_Property_Comparison">
- <title>Date Property Comparison</title>
- <formalpara
id="form-Reference_Guide-Date_Property_Comparison-Task">
- <title>Task:</title>
- <para>
- Find all nodes of primary type <literal>nt:resource</literal>
whose <parameter>jcr:lastModified</parameter> property value is greater than
<literal>2006-06-04</literal> and less than
<literal>2008-06-04</literal>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Date_Property_Comparison-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- Repository contains <literal>nt:resource</literal> nodes with
different values of <parameter>jcr:lastModified</parameter> property.
- </para>
-
-<programlisting>root
- ├── document1 (nt:file)
- │ └── jcr:content (nt:resource)
jcr:lastModified="2006-01-19T15:34:15.917+02:00"
- ├── document2 (nt:file)
- │ └── jcr:content (nt:resource)
jcr:lastModified="2005-01-19T15:34:15.917+02:00"
- └── document3 (nt:file)
- └── jcr:content (nt:resource)
jcr:lastModified="2007-01-19T15:34:15.917+02:00"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Date_Property_Comparison-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Date_Property_Comparison-Query_Execution-SQL">
- <title>SQL</title>
- <para>
- In SQL you have to use the keyword
<emphasis>TIMESTAMP</emphasis> for date comparisons. Otherwise, the date would
be interpreted as a string.
- </para>
- <para>
- The date has to be surrounded by single quotes (<literal>TIMESTAMP
'datetime'</literal>) and in the ISO standard format:
YYYY-MM-DDThh:mm:ss.sTZD.
- </para>
- <para>
- Refer to <ulink
url="http://en.wikipedia.org/wiki/ISO_8601">http://en.wikipe...
or <ulink
url="http://www.w3.org/TR/NOTE-datetime">http://www.w3.org/T...
to more information.
- </para>
- <para>
- You will see that it can be a date only (YYYY-MM-DD) but also a complete
date and time with a timezone designator (TZD).
- </para>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-StringBuffer sb = new StringBuffer();
-sb.append("select * from nt:resource where ");
-sb.append("( jcr:lastModified >= TIMESTAMP '");
-sb.append("2006-06-04T15:34:15.917+02:00");
-sb.append("' )");
-sb.append(" and ");
-sb.append("( jcr:lastModified <= TIMESTAMP '");
-sb.append("2008-06-04T15:34:15.917+02:00");
-sb.append("' )");
-String sqlStatement = sb.toString();
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Date_Property_Comparison-Query_Execution-XPath">
- <title>XPath</title>
- <para>
- Compared to the SQL format, you have to use the keyword
<emphasis>xs:dateTime</emphasis> and surround the datetime by extra brackets:
<literal>xs:dateTime('datetime')</literal>. The actual format of the
datetime also conforms with the ISO date standard.
- </para>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-StringBuffer sb = new StringBuffer();
-sb.append("//element(*,nt:resource)");
-sb.append("[");
-sb.append("@jcr:lastModified >=
xs:dateTime('2006-08-19T10:11:38.281+02:00')");
-sb.append(" and ");
-sb.append("@jcr:lastModified <=
xs:dateTime('2008-06-04T15:34:15.917+02:00')");
-sb.append("]");
-String xpathStatement = sb.toString();
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Date_Property_Comparison-Fetching_the_result">
- <title>Fetching the result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node foundNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<literal>/document3/jcr:content</literal>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is:
- <table
id="tabl-Reference_Guide-Date_Property_Comparison-Fetching_the_result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:lastModified
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:path
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- 2007-01-19T15:34:15.917+02:00
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document3/jcr:content
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/date-property-comparison.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,166 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Date_Property_Comparison">
+ <title>Date Property Comparison</title>
+ <formalpara
id="form-Reference_Guide-Date_Property_Comparison-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes of primary type <literal>nt:resource</literal>
whose <parameter>jcr:lastModified</parameter> property value is greater than
<literal>2006-06-04</literal> and less than
<literal>2008-06-04</literal>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Date_Property_Comparison-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ Repository contains <literal>nt:resource</literal> nodes with
different values of <parameter>jcr:lastModified</parameter> property.
+ </para>
+
+<programlisting>root
+ ├── document1 (nt:file)
+ │ └── jcr:content (nt:resource)
jcr:lastModified="2006-01-19T15:34:15.917+02:00"
+ ├── document2 (nt:file)
+ │ └── jcr:content (nt:resource)
jcr:lastModified="2005-01-19T15:34:15.917+02:00"
+ └── document3 (nt:file)
+ └── jcr:content (nt:resource)
jcr:lastModified="2007-01-19T15:34:15.917+02:00"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Date_Property_Comparison-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Date_Property_Comparison-Query_Execution-SQL">
+ <title>SQL</title>
+ <para>
+ In SQL you have to use the keyword
<emphasis>TIMESTAMP</emphasis> for date comparisons. Otherwise, the date would
be interpreted as a string.
+ </para>
+ <para>
+ The date has to be surrounded by single quotes (<literal>TIMESTAMP
'datetime'</literal>) and in the ISO standard format:
YYYY-MM-DDThh:mm:ss.sTZD.
+ </para>
+ <para>
+ Refer to <ulink
url="http://en.wikipedia.org/wiki/ISO_8601">http://en.wikipe...
or <ulink
url="http://www.w3.org/TR/NOTE-datetime">http://www.w3.org/T...
to more information.
+ </para>
+ <para>
+ You will see that it can be a date only (YYYY-MM-DD) but also a complete
date and time with a timezone designator (TZD).
+ </para>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+StringBuffer sb = new StringBuffer();
+sb.append("select * from nt:resource where ");
+sb.append("( jcr:lastModified >= TIMESTAMP '");
+sb.append("2006-06-04T15:34:15.917+02:00");
+sb.append("' )");
+sb.append(" and ");
+sb.append("( jcr:lastModified <= TIMESTAMP '");
+sb.append("2008-06-04T15:34:15.917+02:00");
+sb.append("' )");
+String sqlStatement = sb.toString();
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Date_Property_Comparison-Query_Execution-XPath">
+ <title>XPath</title>
+ <para>
+ Compared to the SQL format, you have to use the keyword
<emphasis>xs:dateTime</emphasis> and surround the datetime by extra brackets:
<literal>xs:dateTime('datetime')</literal>. The actual format of the
datetime also conforms with the ISO date standard.
+ </para>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+StringBuffer sb = new StringBuffer();
+sb.append("//element(*,nt:resource)");
+sb.append("[");
+sb.append("@jcr:lastModified >=
xs:dateTime('2006-08-19T10:11:38.281+02:00')");
+sb.append(" and ");
+sb.append("@jcr:lastModified <=
xs:dateTime('2008-06-04T15:34:15.917+02:00')");
+sb.append("]");
+String xpathStatement = sb.toString();
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Date_Property_Comparison-Fetching_the_result">
+ <title>Fetching the result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node foundNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<literal>/document3/jcr:content</literal>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is:
+ <table
id="tabl-Reference_Guide-Date_Property_Comparison-Fetching_the_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:lastModified
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ 2007-01-19T15:34:15.917+02:00
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document3/jcr:content
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,149 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Escaping_in_LIKE_Statements">
- <title>Escaping in LIKE Statements</title>
- <formalpara
id="form-Reference_Guide-Escaping_in_LIKE_Statements-Task">
- <title>Task:</title>
- <para>
- Find all nodes with a mixin type 'mix:title' and whose property
<literal>jcr:title</literal> starts with
<emphasis>P%ri</emphasis>.
- </para>
-
- </formalpara>
- <para>
- As you see <emphasis>P%rison break</emphasis> contains the symbol
'<literal>%</literal>'. This symbol is reserved for LIKE comparisons.
- </para>
- <para>
- Within the LIKE pattern, literal instances of the
<emphasis>percent</emphasis> character
("<literal>%</literal>") or an underscore
("<literal>_</literal>") must be escaped. The <emphasis>SQL
ESCAPE</emphasis> clause allows the definition of an arbitrary escape character
within the context of a single LIKE statement. The following example defines the backslash
'<literal>\</literal>' as an escape character:
- </para>
-
-<programlisting>SELECT * FROM mytype WHERE a LIKE 'foo\%' ESCAPE
'\'</programlisting>
- <para>
- XPath does not have any specification for defining escape symbols. The default
XPath escape character is the backslash ('<literal>\</literal>').
- </para>
- <section
id="sect-Reference_Guide-Escaping_in_LIKE_Statements-Repository_structure">
- <title>Repository structure</title>
- <para>
- The repository contains <literal>mix:title</literal> nodes, where
<parameter>jcr:title</parameter> can have different values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="Star wars" jcr:description="Dart
rules!!"
- ├── document2 (mix:title) jcr:title="P%rison break"
jcr:description="Run, Forest, run ))"
- └── document3 (mix:title) jcr:title="Panopticum"
jcr:description="It's imagine film"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Escaping_in_LIKE_Statements-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Escaping_in_LIKE_Statements-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title LIKE 'P#%ri%'
ESCAPE '#'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Escaping_in_LIKE_Statements-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[jcr:like(@jcr:title,
'P\\%ri%')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Escaping_in_LIKE_Statements-Fetching_result">
- <title>Fetching result</title>
- <para>
- To get the matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<literal>document2</literal>.
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is
- <table
id="tabl-Reference_Guide-Escaping_in_LIKE_Statements-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- P%rison break
- </entry>
- <entry>
- Run, Forest, run ))
- </entry>
- <entry>
- /document2
- </entry>
- <entry>
- 7452
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/escaping-like-statements.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Escaping_in_LIKE_Statements">
+ <title>Escaping in LIKE Statements</title>
+ <formalpara
id="form-Reference_Guide-Escaping_in_LIKE_Statements-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with a mixin type 'mix:title' and whose property
<literal>jcr:title</literal> starts with
<emphasis>P%ri</emphasis>.
+ </para>
+
+ </formalpara>
+ <para>
+ As you see <emphasis>P%rison break</emphasis> contains the symbol
'<literal>%</literal>'. This symbol is reserved for LIKE comparisons.
+ </para>
+ <para>
+ Within the LIKE pattern, literal instances of the
<emphasis>percent</emphasis> character
("<literal>%</literal>") or an underscore
("<literal>_</literal>") must be escaped. The <emphasis>SQL
ESCAPE</emphasis> clause allows the definition of an arbitrary escape character
within the context of a single LIKE statement. The following example defines the backslash
'<literal>\</literal>' as an escape character:
+ </para>
+
+<programlisting>SELECT * FROM mytype WHERE a LIKE 'foo\%' ESCAPE
'\'</programlisting>
+ <para>
+ XPath does not have any specification for defining escape symbols. The default
XPath escape character is the backslash ('<literal>\</literal>').
+ </para>
+ <section
id="sect-Reference_Guide-Escaping_in_LIKE_Statements-Repository_structure">
+ <title>Repository structure</title>
+ <para>
+ The repository contains <literal>mix:title</literal> nodes, where
<parameter>jcr:title</parameter> can have different values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="Star wars" jcr:description="Dart
rules!!"
+ ├── document2 (mix:title) jcr:title="P%rison break"
jcr:description="Run, Forest, run ))"
+ └── document3 (mix:title) jcr:title="Panopticum"
jcr:description="It's imagine film"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Escaping_in_LIKE_Statements-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Escaping_in_LIKE_Statements-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title LIKE 'P#%ri%'
ESCAPE '#'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Escaping_in_LIKE_Statements-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:like(@jcr:title,
'P\\%ri%')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Escaping_in_LIKE_Statements-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To get the matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<literal>document2</literal>.
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is
+ <table
id="tabl-Reference_Guide-Escaping_in_LIKE_Statements-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ P%rison break
+ </entry>
+ <entry>
+ Run, Forest, run ))
+ </entry>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 7452
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,137 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Exact_Path_Constraint">
- <title>Exact Path Constraint</title>
- <formalpara id="form-Reference_Guide-Exact_Path_Constraint-Task">
- <title>Task:</title>
- <para>
- Find a node with the primary type <literal>nt:file</literal> that
is located on the exact path <filename>/folder1/folder2/document1</filename>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Exact_Path_Constraint-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- Repository filled by different nodes. There are several folders which contain
other folders and files.
- </para>
-
-<programlisting>root
- └── folder1 (nt:folder)
- └── folder2 (nt:folder)
- ├── document1 (nt:file) // This document we want to find
- └── folder3 (nt:folder)
- └── document1 (nt:file)
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Exact_Path_Constraint-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Exact_Path_Constraint-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// we want find 'document1'
-String sqlStatement = "SELECT * FROM nt:file WHERE jcr:path =
'/folder1/folder2/document1'";
-// create query
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Exact_Path_Constraint-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// we want to find 'document1'
-String xpathStatement =
"/jcr:root/folder1[1]/folder2[1]/element(document1,nt:file)[1]";
-// create query
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <note>
- <title>Note</title>
- <para>
- The indexes [1] are used in order to get the same result as the SQL
statement. SQL by default only returns the first node, whereas XPath fetches by default
all nodes.
- </para>
-
- </note>
-
- </section>
-
- <section
id="sect-Reference_Guide-Exact_Path_Constraint-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return expected
<emphasis>document1</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-Exact_Path_Constraint-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /folder1/folder2/document1
- </entry>
- <entry>
- 1030
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/exact-path-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,137 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Exact_Path_Constraint">
+ <title>Exact Path Constraint</title>
+ <formalpara id="form-Reference_Guide-Exact_Path_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ Find a node with the primary type <literal>nt:file</literal> that
is located on the exact path <filename>/folder1/folder2/document1</filename>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Exact_Path_Constraint-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ Repository filled by different nodes. There are several folders which contain
other folders and files.
+ </para>
+
+<programlisting>root
+ └── folder1 (nt:folder)
+ └── folder2 (nt:folder)
+ ├── document1 (nt:file) // This document we want to find
+ └── folder3 (nt:folder)
+ └── document1 (nt:file)
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Exact_Path_Constraint-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Exact_Path_Constraint-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find 'document1'
+String sqlStatement = "SELECT * FROM nt:file WHERE jcr:path =
'/folder1/folder2/document1'";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Exact_Path_Constraint-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want to find 'document1'
+String xpathStatement =
"/jcr:root/folder1[1]/folder2[1]/element(document1,nt:file)[1]";
+// create query
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <note>
+ <title>Note</title>
+ <para>
+ The indexes [1] are used in order to get the same result as the SQL
statement. SQL by default only returns the first node, whereas XPath fetches by default
all nodes.
+ </para>
+
+ </note>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Exact_Path_Constraint-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return expected
<emphasis>document1</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-Exact_Path_Constraint-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /folder1/folder2/document1
+ </entry>
+ <entry>
+ 1030
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,146 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Finding_All_Descendant_Nodes">
- <title>Finding All Descendant Nodes</title>
- <formalpara
id="form-Reference_Guide-Finding_All_Descendant_Nodes-Task">
- <title>Task:</title>
- <para>
- Find all nodes with the primary type <literal>nt:folder</literal>
that are descendants of the node <literal>/folder1/folder2</literal>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Finding_All_Descendant_Nodes-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains <literal>nt:folder</literal> nodes. The
nodes are placed in a multilayer tree.
- </para>
-
-<programlisting>root
- └── folder1 (nt:folder)
- └── folder2 (nt:folder)
- ├── folder3 (nt:folder) // This node we want to find
- │ └── folder4 (nt:folder) // This node we want to find
- └── folder5 (nt:folder) // This node we want to find
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_All_Descendant_Nodes-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Finding_All_Descendant_Nodes-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:folder WHERE jcr:path LIKE
'/folder1/folder2/%'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_All_Descendant_Nodes-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement =
"/jcr:root/folder1[1]/folder2[1]//element(*,nt:folder)";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_All_Descendant_Nodes-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
"folder3", "folder4" and "folder5" nodes.
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-Finding_All_Descendant_Nodes-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /folder1/folder2/folder3
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/folder2/folder3/folder4
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/folder2/folder5
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-descendant-nodes.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,146 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Finding_All_Descendant_Nodes">
+ <title>Finding All Descendant Nodes</title>
+ <formalpara
id="form-Reference_Guide-Finding_All_Descendant_Nodes-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with the primary type <literal>nt:folder</literal>
that are descendants of the node <literal>/folder1/folder2</literal>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Finding_All_Descendant_Nodes-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains <literal>nt:folder</literal> nodes. The
nodes are placed in a multilayer tree.
+ </para>
+
+<programlisting>root
+ └── folder1 (nt:folder)
+ └── folder2 (nt:folder)
+ ├── folder3 (nt:folder) // This node we want to find
+ │ └── folder4 (nt:folder) // This node we want to find
+ └── folder5 (nt:folder) // This node we want to find
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_All_Descendant_Nodes-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Finding_All_Descendant_Nodes-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:folder WHERE jcr:path LIKE
'/folder1/folder2/%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_All_Descendant_Nodes-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement =
"/jcr:root/folder1[1]/folder2[1]//element(*,nt:folder)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_All_Descendant_Nodes-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
"folder3", "folder4" and "folder5" nodes.
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-Finding_All_Descendant_Nodes-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /folder1/folder2/folder3
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/folder2/folder3/folder4
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/folder2/folder5
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,179 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Finding_All_Nodes">
- <title>Finding All Nodes</title>
- <formalpara id="form-Reference_Guide-Finding_All_Nodes-Task">
- <title>Task:</title>
- <para>
- Find all nodes in the repository.
- </para>
-
- </formalpara>
- <note>
- <title>Note</title>
- <para>
- This search will only nodes that the current session has READ access to. See
also <xref linkend="chap-Reference_Guide-Access_Control" />.
- </para>
-
- </note>
- <section
id="sect-Reference_Guide-Finding_All_Nodes-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository contains many different nodes.
- </para>
-
-<programlisting>root
- └── folder1 (nt:folder)
- ├── document1 (nt:file)
- └── folder2 (nt:folder)
- ├── document2 (nt:unstructured)
- └── document3 (nt:folder)
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_All_Nodes-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Finding_All_Nodes-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:base";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_All_Nodes-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:base)";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_All_Nodes-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>folder1</emphasis>, <emphasis>folder2</emphasis>,
<emphasis>document1</emphasis>, <emphasis>document2</emphasis>,
<emphasis>document3</emphasis>, and each other node in the workspace.
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is
- </para>
- <table
id="tabl-Reference_Guide-Finding_All_Nodes-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /folder1
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/document1
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/folder2
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/folder2/document2
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- /folder1/folder2/document3
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- ...
- </entry>
- <entry>
- ...
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-all-nodes.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,179 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Finding_All_Nodes">
+ <title>Finding All Nodes</title>
+ <formalpara id="form-Reference_Guide-Finding_All_Nodes-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes in the repository.
+ </para>
+
+ </formalpara>
+ <note>
+ <title>Note</title>
+ <para>
+ This search will only nodes that the current session has READ access to. See
also <xref linkend="chap-Reference_Guide-Access_Control" />.
+ </para>
+
+ </note>
+ <section
id="sect-Reference_Guide-Finding_All_Nodes-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository contains many different nodes.
+ </para>
+
+<programlisting>root
+ └── folder1 (nt:folder)
+ ├── document1 (nt:file)
+ └── folder2 (nt:folder)
+ ├── document2 (nt:unstructured)
+ └── document3 (nt:folder)
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_All_Nodes-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Finding_All_Nodes-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:base";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_All_Nodes-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:base)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_All_Nodes-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>folder1</emphasis>, <emphasis>folder2</emphasis>,
<emphasis>document1</emphasis>, <emphasis>document2</emphasis>,
<emphasis>document3</emphasis>, and each other node in the workspace.
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is
+ </para>
+ <table
id="tabl-Reference_Guide-Finding_All_Nodes-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /folder1
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/document1
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/folder2
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/folder2/document2
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /folder1/folder2/document3
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ ...
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,153 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type">
- <title>Finding Nodes by Mixin Type</title>
- <formalpara
id="form-Reference_Guide-Finding_Nodes_by_Mixin_Type-Task">
- <title>Task:</title>
- <para>
- Find all nodes in repository, that contain a mixin type
<literal>mix:title</literal>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository contains nodes with different primary types and mixin types.
- </para>
-
-<programlisting>root
- ├── document1 primarytype = "nt:unstructured" mixintype =
"mix:title"
- ├── document2 primarytype = "nt:file" mixintype = "mix:lockable"
- └── document3 primarytype = "nt:file" mixintype = "mix:title"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Finding_Nodes_by_Mixin_Type-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_Nodes_by_Mixin_Type-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type-Fetching_result">
- <title>Fetching result</title>
- <para>
- To the fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
"document1" and "document3".
- </para>
- <para>
- the output cab also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is
- <table
id="tabl-Reference_Guide-Finding_Nodes_by_Mixin_Type-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- First document
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document1
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
- <row>
- <entry>
- Second document
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document3
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,153 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type">
+ <title>Finding Nodes by Mixin Type</title>
+ <formalpara
id="form-Reference_Guide-Finding_Nodes_by_Mixin_Type-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes in repository, that contain a mixin type
<literal>mix:title</literal>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository contains nodes with different primary types and mixin types.
+ </para>
+
+<programlisting>root
+ ├── document1 primarytype = "nt:unstructured" mixintype =
"mix:title"
+ ├── document2 primarytype = "nt:file" mixintype = "mix:lockable"
+ └── document3 primarytype = "nt:file" mixintype = "mix:title"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Finding_Nodes_by_Mixin_Type-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_Nodes_by_Mixin_Type-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To the fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
"document1" and "document3".
+ </para>
+ <para>
+ the output cab also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is
+ <table
id="tabl-Reference_Guide-Finding_Nodes_by_Mixin_Type-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ First document
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document1
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ Second document
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,135 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type">
- <title>Finding Nodes by Primary Type</title>
- <formalpara
id="form-Reference_Guide-Finding_Nodes_by_Primary_Type-Task">
- <title>Task:</title>
- <para>
- Find all nodes whose primary type is <literal>nt:file</literal>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository contains nodes with different primary types and mixin types.
- </para>
-
-<programlisting>root
- ├── document1 primarytype = "nt:unstructured" mixintype =
"mix:title"
- ├── document2 primarytype = "nt:file" mixintype = "mix:lockable"
- └── document3 primarytype = "nt:file" mixintype = "mix:title"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Finding_Nodes_by_Primary_Type-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:file";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_Nodes_by_Primary_Type-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:file)";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch the matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis> and <literal>document3</literal>.
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is
- <table
id="tabl-Reference_Guide-Finding_Nodes_by_Primary_Type-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /document2
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
- <row>
- <entry>
- /document3
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,135 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type">
+ <title>Finding Nodes by Primary Type</title>
+ <formalpara
id="form-Reference_Guide-Finding_Nodes_by_Primary_Type-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes whose primary type is <literal>nt:file</literal>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository contains nodes with different primary types and mixin types.
+ </para>
+
+<programlisting>root
+ ├── document1 primarytype = "nt:unstructured" mixintype =
"mix:title"
+ ├── document2 primarytype = "nt:file" mixintype = "mix:lockable"
+ └── document3 primarytype = "nt:file" mixintype = "mix:title"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Finding_Nodes_by_Primary_Type-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:file";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_Nodes_by_Primary_Type-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:file)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch the matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis> and <literal>document3</literal>.
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is
+ <table
id="tabl-Reference_Guide-Finding_Nodes_by_Primary_Type-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,180 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way">
- <title>Finding Nodes in a Case-Insensitive Way</title>
- <formalpara
id="form-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Task">
- <title>Task:</title>
- <para>
- Find all nodes with a mixin type <literal>mix:title</literal> and
where the property <parameter>jcr:title</parameter> equals
<literal>casesensitive</literal> in lower or upper case.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains <literal>mix:title</literal> nodes, whose
<literal>jcr:title</literal> properties have different values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="CaseSensitive"
- ├── document2 (mix:title) jcr:title="casesensitive"
- └── document3 (mix:title) jcr:title="caseSENSITIVE"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-SQL_Uppercase">
- <title>SQL- Uppercase</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE UPPER(jcr:title) =
'CASESENSITIVE'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-XPath_Upper_Case">
- <title>XPath - Upper Case</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement =
"//element(*,mix:title)[fn:upper-case(@jcr:title)='CASESENSITIVE']";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-SQL_Lower_Case">
- <title>SQL - Lower Case</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE LOWER(jcr:title) =
'casesensitive'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-XPath_Lower_Case">
- <title>XPath - Lower Case</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement =
"//element(*,mix:title)[fn:lower-case(@jcr:title)='casesensitive']";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis>, <emphasis>document2</emphasis> and
<emphasis>document3</emphasis> (in all examples).
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:path
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- CaseSensitive
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document1
- </entry>
-
- </row>
- <row>
- <entry>
- casesensitive
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document2
- </entry>
-
- </row>
- <row>
- <entry>
- caseSENSITIVE
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document3
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,180 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way">
+ <title>Finding Nodes in a Case-Insensitive Way</title>
+ <formalpara
id="form-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with a mixin type <literal>mix:title</literal> and
where the property <parameter>jcr:title</parameter> equals
<literal>casesensitive</literal> in lower or upper case.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains <literal>mix:title</literal> nodes, whose
<literal>jcr:title</literal> properties have different values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="CaseSensitive"
+ ├── document2 (mix:title) jcr:title="casesensitive"
+ └── document3 (mix:title) jcr:title="caseSENSITIVE"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-SQL_Uppercase">
+ <title>SQL- Uppercase</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE UPPER(jcr:title) =
'CASESENSITIVE'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-XPath_Upper_Case">
+ <title>XPath - Upper Case</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement =
"//element(*,mix:title)[fn:upper-case(@jcr:title)='CASESENSITIVE']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-SQL_Lower_Case">
+ <title>SQL - Lower Case</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE LOWER(jcr:title) =
'casesensitive'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Query_Execution-XPath_Lower_Case">
+ <title>XPath - Lower Case</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement =
"//element(*,mix:title)[fn:lower-case(@jcr:title)='casesensitive']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis>, <emphasis>document2</emphasis> and
<emphasis>document3</emphasis> (in all examples).
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ CaseSensitive
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document1
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ casesensitive
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document2
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ caseSENSITIVE
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document3
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,218 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Finding_Similar_Nodes">
- <title>Finding Similar Nodes</title>
- <formalpara id="form-Reference_Guide-Finding_Similar_Nodes-Task">
- <title>Task:</title>
- <para>
- To find nodes similar to a nominated node at:
<literal>/baseFile/jcr:content</literal>.
- </para>
-
- </formalpara>
- <para>
- In this example, <literal>baseFile</literal> contains text where a
keyword (<literal>terms</literal>) is repeated often. This word will be used
as a criteria of node similarity (for node baseFile).
- </para>
- <note>
- <title>Reference</title>
- <para>
- Refer to <xref
linkend="chap-Reference_Guide-Searching_Repository_Content" /> for
information about Similarity and configuration.
- </para>
-
- </note>
- <para>
- Higlighting support must be added to the configuration (in
<filename>test-jcr-config.xml</filename>):
- </para>
-
-<programlisting language="Java"
role="Java"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- ...
- <property name="support-highlighting" value="true"
/>
- ...
- </properties>
-</query-handler></programlisting>
- <section
id="sect-Reference_Guide-Finding_Similar_Nodes-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository contains many nt:file nodes"
- </para>
- <programlistingco>
- <areaspec>
- <area coords="2"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-baseFile"
/>
- <area coords="3"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target1"
/>
- <area coords="4"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target2"
/>
- <area coords="5"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target3"
/>
-
- </areaspec>
-
-<programlisting>root
- ├── baseFile (nt:file)
- ├── target1 (nt:file)
- ├── target2 (nt:file)
- └── target3 (nt:file)
-</programlisting>
- <calloutlist>
- <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-baseFile">
- <para>
- jcr:content (nt:resource) jcr:data="Similarity is determined
by looking up <emphasis role="bold">terms</emphasis> that are common
to nodes. There are some conditions that must be met for a <emphasis
role="bold">term</emphasis> to be considered. This is required to limit
the number possibly relevant <emphasis role="bold">terms</emphasis>.
Only <emphasis role="bold">terms</emphasis> with at least 4
characters are considered. Only <emphasis
role="bold">terms</emphasis> that occur at least 2 times in the source
node are considered. Only <emphasis role="bold">terms</emphasis>
that occur in at least 5 nodes are considered."
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target1">
- <para>
- jcr:content (nt:resource) jcr:data="Similarity is determined
by looking up <emphasis role="bold">terms</emphasis> that are common
to nodes."
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target2">
- <para>
- jcr:content (nt:resource) jcr:data="There is no you know
what"
- </para>
-
- </callout>
- <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target3">
- <para>
- jcr:content (nt:resource) jcr:data=" <emphasis
role="bold">Terms</emphasis> occurs here"
- </para>
-
- </callout>
-
- </calloutlist>
-
- </programlistingco>
-
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Similar_Nodes-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Finding_Similar_Nodes-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:resource WHERE
SIMILAR(.,'/baseFile/jcr:content')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Finding_Similar_Nodes-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*, nt:resource)[rep:similar(.,
'/testroot/baseFile/jcr:content')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Finding_Similar_Nodes-Fetching_results">
- <title>Fetching results</title>
- <para>
- To fetch nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- <literal>NodeIterator</literal> will return
<emphasis>/baseFile/jcr:content</emphasis>,<emphasis>/target1/jcr:content</emphasis>
and <emphasis>/target3/jcr:content</emphasis>.
- </para>
- <para>
- As you see the base node are also in the result set.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is:
- </para>
- <table
id="tabl-Reference_Guide-Finding_Similar_Nodes-Fetching_results-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /baseFile/jcr:content
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
- <row>
- <entry>
- /target1/jcr:content
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
- <row>
- <entry>
- /target3/jcr:content
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- 2674
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/find-similar-nodes.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,218 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Finding_Similar_Nodes">
+ <title>Finding Similar Nodes</title>
+ <formalpara id="form-Reference_Guide-Finding_Similar_Nodes-Task">
+ <title>Task:</title>
+ <para>
+ To find nodes similar to a nominated node at:
<literal>/baseFile/jcr:content</literal>.
+ </para>
+
+ </formalpara>
+ <para>
+ In this example, <literal>baseFile</literal> contains text where a
keyword (<literal>terms</literal>) is repeated often. This word will be used
as a criteria of node similarity (for node baseFile).
+ </para>
+ <note>
+ <title>Reference</title>
+ <para>
+ Refer to <xref
linkend="chap-Reference_Guide-Searching_Repository_Content" /> for
information about Similarity and configuration.
+ </para>
+
+ </note>
+ <para>
+ Higlighting support must be added to the configuration (in
<filename>test-jcr-config.xml</filename>):
+ </para>
+
+<programlisting language="Java"
role="Java"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ ...
+ <property name="support-highlighting" value="true"
/>
+ ...
+ </properties>
+</query-handler></programlisting>
+ <section
id="sect-Reference_Guide-Finding_Similar_Nodes-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository contains many nt:file nodes"
+ </para>
+ <programlistingco>
+ <areaspec>
+ <area coords="2"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-baseFile"
/>
+ <area coords="3"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target1"
/>
+ <area coords="4"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target2"
/>
+ <area coords="5"
id="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target3"
/>
+
+ </areaspec>
+
+<programlisting>root
+ ├── baseFile (nt:file)
+ ├── target1 (nt:file)
+ ├── target2 (nt:file)
+ └── target3 (nt:file)
+</programlisting>
+ <calloutlist>
+ <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-baseFile">
+ <para>
+ jcr:content (nt:resource) jcr:data="Similarity is determined
by looking up <emphasis role="bold">terms</emphasis> that are common
to nodes. There are some conditions that must be met for a <emphasis
role="bold">term</emphasis> to be considered. This is required to limit
the number possibly relevant <emphasis role="bold">terms</emphasis>.
Only <emphasis role="bold">terms</emphasis> with at least 4
characters are considered. Only <emphasis
role="bold">terms</emphasis> that occur at least 2 times in the source
node are considered. Only <emphasis role="bold">terms</emphasis>
that occur in at least 5 nodes are considered."
+ </para>
+
+ </callout>
+ <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target1">
+ <para>
+ jcr:content (nt:resource) jcr:data="Similarity is determined
by looking up <emphasis role="bold">terms</emphasis> that are common
to nodes."
+ </para>
+
+ </callout>
+ <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target2">
+ <para>
+ jcr:content (nt:resource) jcr:data="There is no you know
what"
+ </para>
+
+ </callout>
+ <callout
arearefs="area-Reference_Guide-Finding_Similar_Nodes-Repository_structure-target3">
+ <para>
+ jcr:content (nt:resource) jcr:data=" <emphasis
role="bold">Terms</emphasis> occurs here"
+ </para>
+
+ </callout>
+
+ </calloutlist>
+
+ </programlistingco>
+
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Similar_Nodes-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Finding_Similar_Nodes-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:resource WHERE
SIMILAR(.,'/baseFile/jcr:content')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Finding_Similar_Nodes-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*, nt:resource)[rep:similar(.,
'/testroot/baseFile/jcr:content')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Finding_Similar_Nodes-Fetching_results">
+ <title>Fetching results</title>
+ <para>
+ To fetch nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ <literal>NodeIterator</literal> will return
<emphasis>/baseFile/jcr:content</emphasis>,<emphasis>/target1/jcr:content</emphasis>
and <emphasis>/target3/jcr:content</emphasis>.
+ </para>
+ <para>
+ As you see the base node are also in the result set.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Finding_Similar_Nodes-Fetching_results-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /baseFile/jcr:content
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /target1/jcr:content
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ /target3/jcr:content
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ 2674
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,156 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node">
- <title>Fulltext Search by All Properties in Node</title>
- <formalpara
id="form-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Task">
- <title>Task:</title>
- <para>
- Find nodes with mixin type <literal>mix:title</literal> where any
property contains <literal>break</literal> string.
- </para>
-
- </formalpara>
- <para>
-
- </para>
- <section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository filled with different nodes with mixin type
<literal>mix:title</literal> and different values of
<literal>jcr:title</literal> and
<literal>jcr:description</literal> properties.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title ='Star Wars' jcr:description = 'Darth
rules!!'
- ├── document2 (mix:title) jcr:title ='Prison break' jcr:description = 'Run,
Forest, run ))'
- └── document3 (mix:title) jcr:title ='Titanic' jcr:description = 'An
iceberg breaks a ship.'
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-String sqlStatement = "SELECT * FROM mix:title WHERE
CONTAINS(*,'break')";
-// create query
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// we want find 'document1'
-String xpathStatement =
"//element(*,mix:title)[jcr:contains(.,'break')]";
-// create query
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-while(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis> and
<emphasis>document2</emphasis>.
- </para>
- <para>
- The output can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:path
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Prison break.
- </entry>
- <entry>
- Run, Forest, run ))
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document2
- </entry>
-
- </row>
- <row>
- <entry>
- Titanic
- </entry>
- <entry>
- An iceberg breaks a ship.
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document3
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node">
+ <title>Fulltext Search by All Properties in Node</title>
+ <formalpara
id="form-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Task">
+ <title>Task:</title>
+ <para>
+ Find nodes with mixin type <literal>mix:title</literal> where any
property contains <literal>break</literal> string.
+ </para>
+
+ </formalpara>
+ <para>
+
+ </para>
+ <section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository filled with different nodes with mixin type
<literal>mix:title</literal> and different values of
<literal>jcr:title</literal> and
<literal>jcr:description</literal> properties.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title ='Star Wars' jcr:description = 'Darth
rules!!'
+ ├── document2 (mix:title) jcr:title ='Prison break' jcr:description = 'Run,
Forest, run ))'
+ └── document3 (mix:title) jcr:title ='Titanic' jcr:description = 'An
iceberg breaks a ship.'
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+String sqlStatement = "SELECT * FROM mix:title WHERE
CONTAINS(*,'break')";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find 'document1'
+String xpathStatement =
"//element(*,mix:title)[jcr:contains(.,'break')]";
+// create query
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+while(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis> and
<emphasis>document2</emphasis>.
+ </para>
+ <para>
+ The output can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Prison break.
+ </entry>
+ <entry>
+ Run, Forest, run ))
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document2
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ Titanic
+ </entry>
+ <entry>
+ An iceberg breaks a ship.
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document3
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,138 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Fulltext_Search_by_Property">
- <title>Fulltext Search by Property</title>
- <formalpara
id="form-Reference_Guide-Fulltext_Search_by_Property-Task">
- <title>Task:</title>
- <para>
- Find all nodes containing a mixin type
<literal>mix:title</literal> and whose
<literal>jcr:description</literal> contains the string;
<emphasis>forest</emphasis>.
- </para>
-
- </formalpara>
- <para>
-
- </para>
- <section
id="sect-Reference_Guide-Fulltext_Search_by_Property-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository is filled with nodes of the mixin type
<literal>mix:title</literal> and different values of the
<literal>jcr:description</literal> property.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:description = "The quick brown fox jumps over the
lazy dog."
- ├── document2 (mix:title) jcr:description = "The brown fox lives in a
forest."
- ├── document3 (mix:title) jcr:description = "The fox is a nice animal."
- └── document4 (nt:unstructured) jcr:description = "There is the word forest,
too."
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Fulltext_Search_by_Property-Query_Execution">
- <title>Query Execution</title>
-
- <example
id="exam-Reference_Guide-Fulltext_Search_by_Property-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// we want find document which contains "forest" word
-String sqlStatement = "SELECT \* FROM mix:title WHERE CONTAINS(jcr:description,
'forest')";
-// create query
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Fulltext_Search_by_Property-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// we want find document which contains "forest" word
-String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:description,
'forest')]";
-// create query
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Fulltext_Search_by_Property-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the appropriate nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis>.
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Fulltext_Search_by_Property-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:description
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:path
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- The brown fox lives in forest.
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document2
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/fulltext-search-by-property.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,138 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Fulltext_Search_by_Property">
+ <title>Fulltext Search by Property</title>
+ <formalpara
id="form-Reference_Guide-Fulltext_Search_by_Property-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes containing a mixin type
<literal>mix:title</literal> and whose
<literal>jcr:description</literal> contains the string;
<emphasis>forest</emphasis>.
+ </para>
+
+ </formalpara>
+ <para>
+
+ </para>
+ <section
id="sect-Reference_Guide-Fulltext_Search_by_Property-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository is filled with nodes of the mixin type
<literal>mix:title</literal> and different values of the
<literal>jcr:description</literal> property.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:description = "The quick brown fox jumps over the
lazy dog."
+ ├── document2 (mix:title) jcr:description = "The brown fox lives in a
forest."
+ ├── document3 (mix:title) jcr:description = "The fox is a nice animal."
+ └── document4 (nt:unstructured) jcr:description = "There is the word forest,
too."
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Fulltext_Search_by_Property-Query_Execution">
+ <title>Query Execution</title>
+
+ <example
id="exam-Reference_Guide-Fulltext_Search_by_Property-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find document which contains "forest" word
+String sqlStatement = "SELECT \* FROM mix:title WHERE CONTAINS(jcr:description,
'forest')";
+// create query
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Fulltext_Search_by_Property-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// we want find document which contains "forest" word
+String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:description,
'forest')]";
+// create query
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Fulltext_Search_by_Property-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the appropriate nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document2</emphasis>.
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Fulltext_Search_by_Property-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ The brown fox lives in forest.
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document2
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,150 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search">
- <title>Highlighting Results of Fulltext Search</title>
- <para>
- The highlighting functionality is also called excerption (refer to the Excerpt
configuration information in <xref
linkend="chap-Reference_Guide-Search_Configuration" />).
- </para>
- <para>
- This query will find and highlight instances of
<emphasis>eXo</emphasis> and <emphasis>implementation</emphasis>
within fulltext search results.
- </para>
- <para>
- Highlighting is not a default feature so it must be set in
<filename>jcr-config.xml</filename>. The excerpt provider must also be
defined:
- </para>
-
-<programlisting language="XML" role="XML"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- ...
- <property name="support-highlighting" value="true"
/>
- <property name="excerptprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.WeightedHTMLExcerpt"/>
- ...
- <properties>
-</query-handler></programlisting>
- <para>
- This example uses a rule for all nodes with the primary node type
<literal>nt:unstructured</literal>, where the property
<parameter>rule</parameter> equals <literal>excerpt</literal>.
Within those nodes, exclude the property <literal>title</literal> from the
highlighting feature and set the <parameter>text</parameter>" property as
highlightable.
- </para>
- <para>
- The <filename>indexing-configuration.xml</filename> must contain the
following rule:
- </para>
-
-<programlisting language="XML" role="XML"><index-rule
nodeType="nt:unstructured"
condition="@rule='excerpt'">
- <property useInExcerpt="false">title</property>
- <property>text</property>
-</index-rule></programlisting>
- <section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository contains a single node with the primary type
<literal>nt:unstructured</literal>:
- </para>
-
-<programlisting>document (nt:unstructured)
- ├── rule = "excerpt"
- ├── title = "eXoJCR"
- └── text = "eXo is a JCR implementation"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT rep:excerpt() FROM nt:unstructured WHERE CONTAINS(*,
'eXo implementation')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(., 'eXo
implementation')]/rep:excerpt(.)";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Fetching_result">
- <title>Fetching result</title>
- <para>
- Below is the result table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is
- </para>
- <table
id="tabl-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- rep:excerpt()
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
-
\<div\>\<span\>\<strong\>eXo\</strong\>
is a JCR
\<strong\>implementation\</strong\>\</span\>\</div\>
- </entry>
- <entry>
- /testroot/node1
- </entry>
- <entry>
- 335
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
- <para>
- As you see, instances of <emphasis>eXo</emphasis> and
<emphasis>implementation</emphasis> are highlighted.
- </para>
- <para>
- You can also get the exact <literal>rep:excerpt</literal> value:
- </para>
-
-<programlisting language="Java" role="Java">RowIterator rows =
result.getRows();
-Value excerpt = rows.nextRow().getValue("rep:excerpt(.)");
-// excerpt will be equal to
"<div><span\><strong>eXo</strong>
is a JCR
<strong>implementation</strong></span></div>"</programlisting>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/higlight.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,150 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search">
+ <title>Highlighting Results of Fulltext Search</title>
+ <para>
+ The highlighting functionality is also called excerption (refer to the Excerpt
configuration information in <xref
linkend="chap-Reference_Guide-Search_Configuration" />).
+ </para>
+ <para>
+ This query will find and highlight instances of
<emphasis>eXo</emphasis> and <emphasis>implementation</emphasis>
within fulltext search results.
+ </para>
+ <para>
+ Highlighting is not a default feature so it must be set in
<filename>jcr-config.xml</filename>. The excerpt provider must also be
defined:
+ </para>
+
+<programlisting language="XML" role="XML"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ ...
+ <property name="support-highlighting" value="true"
/>
+ <property name="excerptprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.WeightedHTMLExcerpt"/>
+ ...
+ <properties>
+</query-handler></programlisting>
+ <para>
+ This example uses a rule for all nodes with the primary node type
<literal>nt:unstructured</literal>, where the property
<parameter>rule</parameter> equals <literal>excerpt</literal>.
Within those nodes, exclude the property <literal>title</literal> from the
highlighting feature and set the <parameter>text</parameter>" property as
highlightable.
+ </para>
+ <para>
+ The <filename>indexing-configuration.xml</filename> must contain the
following rule:
+ </para>
+
+<programlisting language="XML" role="XML"><index-rule
nodeType="nt:unstructured"
condition="@rule='excerpt'">
+ <property useInExcerpt="false">title</property>
+ <property>text</property>
+</index-rule></programlisting>
+ <section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository contains a single node with the primary type
<literal>nt:unstructured</literal>:
+ </para>
+
+<programlisting>document (nt:unstructured)
+ ├── rule = "excerpt"
+ ├── title = "eXoJCR"
+ └── text = "eXo is a JCR implementation"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT rep:excerpt() FROM nt:unstructured WHERE CONTAINS(*,
'eXo implementation')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(., 'eXo
implementation')]/rep:excerpt(.)";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ Below is the result table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is
+ </para>
+ <table
id="tabl-Reference_Guide-Highlighting_Results_of_Fulltext_Search-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ rep:excerpt()
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+
\<div\>\<span\>\<strong\>eXo\</strong\>
is a JCR
\<strong\>implementation\</strong\>\</span\>\</div\>
+ </entry>
+ <entry>
+ /testroot/node1
+ </entry>
+ <entry>
+ 335
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+ <para>
+ As you see, instances of <emphasis>eXo</emphasis> and
<emphasis>implementation</emphasis> are highlighted.
+ </para>
+ <para>
+ You can also get the exact <literal>rep:excerpt</literal> value:
+ </para>
+
+<programlisting language="Java" role="Java">RowIterator rows =
result.getRows();
+Value excerpt = rows.nextRow().getValue("rep:excerpt(.)");
+// excerpt will be equal to
"<div><span\><strong>eXo</strong>
is a JCR
<strong>implementation</strong></span></div>"</programlisting>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,212 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Ignoring_Accent_Symbols">
- <title>Ignoring Accent Symbols</title>
- <formalpara id="form-Reference_Guide-Ignoring_Accent_Symbols-Task">
- <title>Task:</title>
- <para>
- Create a new Analyzer to normalize accented characters (such as; é,è,à), set
the new Analyzer in QueryHandler configuration, and create a query to check it.
- </para>
-
- </formalpara>
- <para>
- There are two ways of setting up a new Analyzer:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Create a descendant class of SearchIndex with the new Analyzer (refer to
<xref linkend="chap-Reference_Guide-Search_Configuration" /> for more
infomation).
- </para>
-
- </listitem>
- <listitem>
- <para>
- Register new Analyzer in QueryHandler configuration.
- </para>
-
- </listitem>
-
- </orderedlist>
- <procedure
id="proc-Reference_Guide-Ignoring_Accent_Symbols-Creating_and_Registering_a_New_Analyzer">
- <title>Creating and Registering a New Analyzer</title>
- <step>
- <para>
- Create a new Analyzer (<literal>MyAnalyzer</literal>):
- </para>
-
-<programlisting language="Java" role="Java">public class
MyAnalyzer extends Analyzer
-{
- @Override
- public TokenStream tokenStream(String fieldName, Reader reader)
- {
- StandardTokenizer tokenStream = new StandardTokenizer(reader);
- // process all text with standard filter
- // removes 's (as 's in "Peter's") from the end of words and
removes dots from acronyms.
- TokenStream result = new StandardFilter(tokenStream);
- // this filter normalizes token text to lower case
- result = new LowerCaseFilter(result);
- // this one replaces accented characters in the ISO Latin 1 character set
(ISO-8859-1) by their unaccented equivalents
- result = new ISOLatin1AccentFilter(result);
- // and finally return token stream
- return result;
- }
-}</programlisting>
-
- </step>
- <step>
- <para>
- Register the new Analyzer in QueryHandler configuration:
- </para>
-
-<programlisting language="XML" role="XML"><workspace
name="ws">
- ...
- <query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- <property name="analyzer"
value="org.exoplatform.services.jcr.impl.core.MyAnalyzer"/>
- ...
- </properties>
- </query-handler>
- ...
-</workspace></programlisting>
-
- </step>
- <step>
- <para>
- Test the new Analyzer by following the example below (query to find nodes
with mixin type <literal>mix:title</literal> where
<parameter>jcr:title</parameter> contains
<emphasis>tréma</emphasis> and <literal>naïve</literal> strings).
- </para>
-
- </step>
-
- </procedure>
-
- <section
id="sect-Reference_Guide-Ignoring_Accent_Symbols-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository filled by nodes with mixin type
<literal>mix:title</literal> and different values of
<parameter>jcr:title</parameter> property.
- </para>
-
-<programlisting>root
- ├── node1 (mix:title) jcr:title = "tréma blabla naïve"
- └── node2 (mix:title) jcr:description = "trema come text naive"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ignoring_Accent_Symbols-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Ignoring_Accent_Symbols-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(jcr:title,
'tr\u00E8ma na\u00EFve')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Ignoring_Accent_Symbols-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:title,
'tr\u00E8ma na\u00EFve')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ignoring_Accent_Symbols-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch applicable nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> <emphasis
role="bold">and</emphasis> <emphasis>node2</emphasis>.
Since <literal>MyAnalyzer</literal> transforms
<emphasis>tréma</emphasis> word to <emphasis>trema</emphasis>,
<emphasis>node2</emphasis> matches our constraints as well.
- </para>
- <para>
- The output can be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is
- </para>
- <table
id="tabl-Reference_Guide-Ignoring_Accent_Symbols-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- cr:title
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- cr:path
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- trèma blabla naïve
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /node1
- </entry>
-
- </row>
- <row>
- <entry>
- trema come text naive
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /node2
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/ignore-accent-symbols.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,212 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Ignoring_Accent_Symbols">
+ <title>Ignoring Accent Symbols</title>
+ <formalpara id="form-Reference_Guide-Ignoring_Accent_Symbols-Task">
+ <title>Task:</title>
+ <para>
+ Create a new Analyzer to normalize accented characters (such as; é,è,à), set
the new Analyzer in QueryHandler configuration, and create a query to check it.
+ </para>
+
+ </formalpara>
+ <para>
+ There are two ways of setting up a new Analyzer:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Create a descendant class of SearchIndex with the new Analyzer (refer to
<xref linkend="chap-Reference_Guide-Search_Configuration" /> for more
infomation).
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Register new Analyzer in QueryHandler configuration.
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+ <procedure
id="proc-Reference_Guide-Ignoring_Accent_Symbols-Creating_and_Registering_a_New_Analyzer">
+ <title>Creating and Registering a New Analyzer</title>
+ <step>
+ <para>
+ Create a new Analyzer (<literal>MyAnalyzer</literal>):
+ </para>
+
+<programlisting language="Java" role="Java">public class
MyAnalyzer extends Analyzer
+{
+ @Override
+ public TokenStream tokenStream(String fieldName, Reader reader)
+ {
+ StandardTokenizer tokenStream = new StandardTokenizer(reader);
+ // process all text with standard filter
+ // removes 's (as 's in "Peter's") from the end of words and
removes dots from acronyms.
+ TokenStream result = new StandardFilter(tokenStream);
+ // this filter normalizes token text to lower case
+ result = new LowerCaseFilter(result);
+ // this one replaces accented characters in the ISO Latin 1 character set
(ISO-8859-1) by their unaccented equivalents
+ result = new ISOLatin1AccentFilter(result);
+ // and finally return token stream
+ return result;
+ }
+}</programlisting>
+
+ </step>
+ <step>
+ <para>
+ Register the new Analyzer in QueryHandler configuration:
+ </para>
+
+<programlisting language="XML" role="XML"><workspace
name="ws">
+ ...
+ <query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="analyzer"
value="org.exoplatform.services.jcr.impl.core.MyAnalyzer"/>
+ ...
+ </properties>
+ </query-handler>
+ ...
+</workspace></programlisting>
+
+ </step>
+ <step>
+ <para>
+ Test the new Analyzer by following the example below (query to find nodes
with mixin type <literal>mix:title</literal> where
<parameter>jcr:title</parameter> contains
<emphasis>tréma</emphasis> and <literal>naïve</literal> strings).
+ </para>
+
+ </step>
+
+ </procedure>
+
+ <section
id="sect-Reference_Guide-Ignoring_Accent_Symbols-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository filled by nodes with mixin type
<literal>mix:title</literal> and different values of
<parameter>jcr:title</parameter> property.
+ </para>
+
+<programlisting>root
+ ├── node1 (mix:title) jcr:title = "tréma blabla naïve"
+ └── node2 (mix:title) jcr:description = "trema come text naive"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ignoring_Accent_Symbols-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Ignoring_Accent_Symbols-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(jcr:title,
'tr\u00E8ma na\u00EFve')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Ignoring_Accent_Symbols-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:title,
'tr\u00E8ma na\u00EFve')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ignoring_Accent_Symbols-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch applicable nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> <emphasis
role="bold">and</emphasis> <emphasis>node2</emphasis>.
Since <literal>MyAnalyzer</literal> transforms
<emphasis>tréma</emphasis> word to <emphasis>trema</emphasis>,
<emphasis>node2</emphasis> matches our constraints as well.
+ </para>
+ <para>
+ The output can be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is
+ </para>
+ <table
id="tabl-Reference_Guide-Ignoring_Accent_Symbols-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ cr:title
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ cr:path
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ trèma blabla naïve
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /node1
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ trema come text naive
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /node2
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,142 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Changing_Priority_of_Node">
- <title>Changing Priority of Node</title>
- <formalpara
id="form-Reference_Guide-Changing_Priority_of_Node-Task">
- <title>Task:</title>
- <para>
- Set different boost values for predefined nodes, and check the effect of this
change by selecting those nodes and order them by
<literal>jcr:score</literal>.
- </para>
-
- </formalpara>
- <para>
- The default boost value is <literal>1.0</literal>. Higher boost
values (a reasonable range is between <literal>1.0</literal> and
<literal>5.0</literal>) will yield a higher score value and appear as more
relevant.
- </para>
- <para>
- Refer to <xref linkend="chap-Reference_Guide-Search_Configuration"
/> for more information.
- </para>
- <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Indexing_configuration">
- <title>Indexing configuration</title>
- <para>
- In this configuration the boost values for
<literal>nt:unstructured</literal> nodes <emphasis>text</emphasis>
property will be increased.
- </para>
- <example
id="exam-Reference_Guide-Indexing_configuration-indexing_config.xml">
- <title>indexing-config.xml:</title>
-
-<programlisting language="XML" role="XML"><!--
-This rule actualy do nothing. 'text' property has default boost value.
--->
-<index-rule nodeType="nt:unstructured"
condition="@rule='boost1'">
- <!-- default boost: 1.0 -->
- <property>text</property>
-</index-rule>
-
-<!--
-Set boost value as 2.0 for 'text' property in nt:unstructured nodes where
property 'rule' equal to 'boost2'
--->
-<index-rule nodeType="nt:unstructured"
condition="@rule='boost2'">
- <!-- boost: 2.0 -->
- <property boost="2.0">text</property>
-</index-rule>
-
-<!--
-Set boost value as 3.0 for 'text' property in nt:unstructured nodes where
property 'rule' equal to 'boost3'
--->
-<index-rule nodeType="nt:unstructured"
condition="@rule='boost3'">
- <!-- boost: 3.0 -->
- <property boost="3.0">text</property>
-</index-rule></programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository contains many nodes with primary type
<literal>nt:unstructured</literal>. Each node contains
<emphasis>text</emphasis> property and <emphasis>rule</emphasis>
property with different values.
- </para>
-
-<programlisting>root
- ├── node1(nt:unstructured) rule='boost1' text='The quick brown fox
jump...'
- ├── node2(nt:unstructured) rule='boost2' text='The quick brown fox
jump...'
- └── node3(nt:unstructured) rule='boost3' text='The quick brown fox
jump...'
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Changing_Priority_of_Node-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:unstructured WHERE CONTAINS(text,
'quick') ORDER BY jcr:score() DESC";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Changing_Priority_of_Node-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(@text,
'quick')] order by @jcr:score descending";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return the nodes in this
order:
- </para>
- <orderedlist>
- <listitem>
- <para>
- node3
- </para>
-
- </listitem>
- <listitem>
- <para>
- node2
- </para>
-
- </listitem>
- <listitem>
- <para>
- node1
- </para>
-
- </listitem>
-
- </orderedlist>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/index-boost-value.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,142 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Changing_Priority_of_Node">
+ <title>Changing Priority of Node</title>
+ <formalpara
id="form-Reference_Guide-Changing_Priority_of_Node-Task">
+ <title>Task:</title>
+ <para>
+ Set different boost values for predefined nodes, and check the effect of this
change by selecting those nodes and order them by
<literal>jcr:score</literal>.
+ </para>
+
+ </formalpara>
+ <para>
+ The default boost value is <literal>1.0</literal>. Higher boost
values (a reasonable range is between <literal>1.0</literal> and
<literal>5.0</literal>) will yield a higher score value and appear as more
relevant.
+ </para>
+ <para>
+ Refer to <xref linkend="chap-Reference_Guide-Search_Configuration"
/> for more information.
+ </para>
+ <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Indexing_configuration">
+ <title>Indexing configuration</title>
+ <para>
+ In this configuration the boost values for
<literal>nt:unstructured</literal> nodes <emphasis>text</emphasis>
property will be increased.
+ </para>
+ <example
id="exam-Reference_Guide-Indexing_configuration-indexing_config.xml">
+ <title>indexing-config.xml:</title>
+
+<programlisting language="XML" role="XML"><!--
+This rule actualy do nothing. 'text' property has default boost value.
+-->
+<index-rule nodeType="nt:unstructured"
condition="@rule='boost1'">
+ <!-- default boost: 1.0 -->
+ <property>text</property>
+</index-rule>
+
+<!--
+Set boost value as 2.0 for 'text' property in nt:unstructured nodes where
property 'rule' equal to 'boost2'
+-->
+<index-rule nodeType="nt:unstructured"
condition="@rule='boost2'">
+ <!-- boost: 2.0 -->
+ <property boost="2.0">text</property>
+</index-rule>
+
+<!--
+Set boost value as 3.0 for 'text' property in nt:unstructured nodes where
property 'rule' equal to 'boost3'
+-->
+<index-rule nodeType="nt:unstructured"
condition="@rule='boost3'">
+ <!-- boost: 3.0 -->
+ <property boost="3.0">text</property>
+</index-rule></programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository contains many nodes with primary type
<literal>nt:unstructured</literal>. Each node contains
<emphasis>text</emphasis> property and <emphasis>rule</emphasis>
property with different values.
+ </para>
+
+<programlisting>root
+ ├── node1(nt:unstructured) rule='boost1' text='The quick brown fox
jump...'
+ ├── node2(nt:unstructured) rule='boost2' text='The quick brown fox
jump...'
+ └── node3(nt:unstructured) rule='boost3' text='The quick brown fox
jump...'
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Changing_Priority_of_Node-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:unstructured WHERE CONTAINS(text,
'quick') ORDER BY jcr:score() DESC";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Changing_Priority_of_Node-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(@text,
'quick')] order by @jcr:score descending";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Changing_Priority_of_Node-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return the nodes in this
order:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ node3
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ node2
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ node1
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+
+
+</section>
+
+
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/jcr-query-usecases.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/jcr-query-usecases.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/jcr-query-usecases.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -80,283 +80,18 @@
<para>
The <literal>jcr:score</literal> is calculated as;
<literal>(lucene score)*1000f</literal>.
</para>
- <para>
+ <!--<para>
Score may be increased for specified nodes, see <xref
linkend="sect-Reference_Guide-Changing_Priority_of_Node" />
</para>
<para>
- Also, see an example in <xref
linkend="sect-Reference_Guide-Ordering_by_Score" />
- </para>
+ Also, see an example in sect-Reference_Guide-Ordering_by_Score />
+ </para>-->
</section>
</section>
- <!-- DOCS NOTE: The following 'ToC' sections are not required in
Publican builds if the publican.cfg parameter
- "generate_section_toc_level:" is set to "3" --> <!--
<section
id="sect-Reference_Guide-JCR_Query_Usecases-Query_result_settings">
- <title>Query result settings</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-SetOffset_and_SetLimit" />
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Query_Usecases-Type_Constraints">
- <title>Type Constraints</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Finding_All_Nodes"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Finding_Nodes_by_Primary_Type" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type" />
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Query_Usecases-Property_Constraints">
- <title>Property Constraints</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Property_Comparison"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-LIKE_Constraint"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Escaping_in_LIKE_Statements" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-NOT_Constraint"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-AND_Constraint"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-OR_Constraint"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Property_Existence_Constraint" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Date_Property_Comparison" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Node_Name_Constraint" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Multivalue_Property_Comparison" />
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Query_Usecases-Path_Constraint">
- <title>Path Constraint</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Exact_Path_Constraint" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Child_Node_Constraint" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Finding_All_Descendant_Nodes" />
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Query_Usecases-Ordering_specifying">
- <title>Ordering specifying</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Sorting_Nodes_by_Property" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Ordering_by_Score"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Ordering_by_Path_or_Name" />
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Query_Usecases-Indexing_rules_and_additional_features">
- <title>Indexing rules and additional features</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Finding_a_node_by_content_of_child_node" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Highlighting_Results_of_Fulltext_Search" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Changing_Priority_of_Node" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules"
/>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Searching_By_Synonym" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Checking_the_spelling_of_Phrase" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Finding_Similar_Nodes" />
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section> --> <section
id="sect-Reference_Guide-JCR_Query_Usecases-Query_Examples">
- <title>Query Examples</title>
- <xi:include href="offset-and-limit.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="find-all-nodes.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="find-nodes-by-primary-type.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="find-nodes-by-mixin-type.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="property-comparison.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="like-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="escaping-like-statements.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="not-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="and-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="or-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="property-existance-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="find-nodes-case-insensitive.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="date-property-comparison.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="node-name-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="multivalue-property-comparison.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="exact-path-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="child-node-constraint.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="find-all-descendant-nodes.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="order-by-property.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="order-by-descendant.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="order-by-score.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="order-by-path-or-name.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="fulltext-search-by-property.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="fulltext-search-by-all-properties.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="ignore-accent-symbols.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="aggregation-rule.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="index-boost-value.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="node-scope-index.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="regexp-indexing-rule.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="higlight.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="synonim-provider.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="spell-checker.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="find-similar-nodes.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
-
- </section>
-
<section
id="sect-Reference_Guide-JCR_Query_Usecases-Tips_and_tricks">
<title>Tips and tricks</title>
<xi:include href="tip-nodename-with-number.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,159 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-LIKE_Constraint">
- <title>LIKE Constraint</title>
- <formalpara id="form-Reference_Guide-LIKE_Constraint-Task">
- <title>Task:</title>
- <para>
- Find all nodes with mixin type <literal>mix:title</literal> and
where the property <parameter>jcr:title</parameter> starts with
<literal>P</literal>.
- </para>
-
- </formalpara>
- <note>
- <para>
- Further useful information can be found in <xref
linkend="sect-Reference_Guide-NOT_Constraint" />.
- </para>
-
- </note>
- <section
id="sect-Reference_Guide-LIKE_Constraint-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository contains three mix:title nodes, where each jcr:title has a
different value.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="Star wars" jcr:description="Darth
rules!!"
- ├── document2 (mix:title) jcr:title="Prison break" jcr:description="Run,
Forest, run ))"
- └── document3 (mix:title) jcr:title="Panopticum"
jcr:description="It's imagine film"
-</programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-LIKE_Constraint-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-LIKE_Constraint-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title LIKE
'P%'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-LIKE_Constraint-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[jcr:like(@jcr:title,
'P%')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section id="sect-Reference_Guide-LIKE_Constraint-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
"document2" and "document3".
- </para>
- <para>
- The output can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is
- <table
id="tabl-Reference_Guide-LIKE_Constraint-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Prison break
- </entry>
- <entry>
- Run, Forest, run ))
- </entry>
- <entry>
- /document2
- </entry>
- <entry>
- 4713
- </entry>
-
- </row>
- <row>
- <entry>
- Panopticum
- </entry>
- <entry>
- It's imagine film
- </entry>
- <entry>
- /document3
- </entry>
- <entry>
- 5150
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/like-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,159 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-LIKE_Constraint">
+ <title>LIKE Constraint</title>
+ <formalpara id="form-Reference_Guide-LIKE_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with mixin type <literal>mix:title</literal> and
where the property <parameter>jcr:title</parameter> starts with
<literal>P</literal>.
+ </para>
+
+ </formalpara>
+ <note>
+ <para>
+ Further useful information can be found in <xref
linkend="sect-Reference_Guide-NOT_Constraint" />.
+ </para>
+
+ </note>
+ <section
id="sect-Reference_Guide-LIKE_Constraint-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository contains three mix:title nodes, where each jcr:title has a
different value.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="Star wars" jcr:description="Darth
rules!!"
+ ├── document2 (mix:title) jcr:title="Prison break" jcr:description="Run,
Forest, run ))"
+ └── document3 (mix:title) jcr:title="Panopticum"
jcr:description="It's imagine film"
+</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-LIKE_Constraint-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-LIKE_Constraint-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title LIKE
'P%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-LIKE_Constraint-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:like(@jcr:title,
'P%')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section id="sect-Reference_Guide-LIKE_Constraint-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
"document2" and "document3".
+ </para>
+ <para>
+ The output can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is
+ <table
id="tabl-Reference_Guide-LIKE_Constraint-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Prison break
+ </entry>
+ <entry>
+ Run, Forest, run ))
+ </entry>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 4713
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ Panopticum
+ </entry>
+ <entry>
+ It's imagine film
+ </entry>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 5150
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,144 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Multivalue_Property_Comparison">
- <title>Multivalue Property Comparison</title>
- <formalpara
id="form-Reference_Guide-Multivalue_Property_Comparison-Task">
- <title>Task:</title>
- <para>
- To find all nodes with the primary type
<literal>nt:unstructured</literal> whose property
<parameter>multiprop</parameter> contains both values
<emphasis>one</emphasis> and <emphasis>two</emphasis>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Multivalue_Property_Comparison-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains nt:unstructured nodes with different
'multiprop' properties.
- </para>
-
-<programlisting>root
- ├── node1 (nt:unstructured) multiprop = [ "one","two" ]
- ├── node1 (nt:unstructured) multiprop = [
"one","two","three" ]
- └── node1 (nt:unstructured) multiprop = [ "one","five" ]
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Multivalue_Property_Comparison-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Multivalue_Property_Comparison-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:unstructured WHERE multiprop = 'one'
AND multiprop = 'two'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Multivalue_Property_Comparison-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:unstructured)[@multiprop = 'one' and
@multiprop = 'two']";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Multivalue_Property_Comparison-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> and <emphasis>node2</emphasis>.
- </para>
- <para>
- The results can be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is:
- <table
id="tabl-Reference_Guide-Multivalue_Property_Comparison-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:primarytyp
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /node1
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /node2
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/multivalue-property-comparison.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Multivalue_Property_Comparison">
+ <title>Multivalue Property Comparison</title>
+ <formalpara
id="form-Reference_Guide-Multivalue_Property_Comparison-Task">
+ <title>Task:</title>
+ <para>
+ To find all nodes with the primary type
<literal>nt:unstructured</literal> whose property
<parameter>multiprop</parameter> contains both values
<emphasis>one</emphasis> and <emphasis>two</emphasis>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Multivalue_Property_Comparison-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains nt:unstructured nodes with different
'multiprop' properties.
+ </para>
+
+<programlisting>root
+ ├── node1 (nt:unstructured) multiprop = [ "one","two" ]
+ ├── node1 (nt:unstructured) multiprop = [
"one","two","three" ]
+ └── node1 (nt:unstructured) multiprop = [ "one","five" ]
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Multivalue_Property_Comparison-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Multivalue_Property_Comparison-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:unstructured WHERE multiprop = 'one'
AND multiprop = 'two'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Multivalue_Property_Comparison-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:unstructured)[@multiprop = 'one' and
@multiprop = 'two']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Multivalue_Property_Comparison-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> and <emphasis>node2</emphasis>.
+ </para>
+ <para>
+ The results can be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is:
+ <table
id="tabl-Reference_Guide-Multivalue_Property_Comparison-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:primarytyp
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /node1
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /node2
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,133 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Node_Name_Constraint">
- <title>Node Name Constraint</title>
- <formalpara id="form-Reference_Guide-Node_Name_Constraint-Task">
- <title>Task:</title>
- <para>
- Find all nodes with primary type <literal>nt:file</literal> whose
node name is <parameter>document</parameter>. The node name is accessible by a
function called <code>fn:name()</code>.
- </para>
-
- </formalpara>
- <note>
- <title>Note</title>
- <para>
- <code>fn:name()</code> can be used ONLY with an
equal(<literal>=</literal>) comparison.
- </para>
-
- </note>
- <section
id="sect-Reference_Guide-Node_Name_Constraint-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains nt:file nodes with different names.
- </para>
-
-<programlisting>root
- ├── document1 (nt:file)
- ├── file (nt:file)
- └── somename (nt:file)
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Node_Name_Constraint-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Node_Name_Constraint-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:file WHERE fn:name() =
'document'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Node_Name_Constraint-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:file)[fn:name() =
'document']";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Node_Name_Constraint-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch appropriate nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return the node whose
<literal>fn:name</literal> equals <emphasis>document</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-Node_Name_Constraint-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- /document1
- </entry>
- <entry>
- 3575
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-name-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,133 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Node_Name_Constraint">
+ <title>Node Name Constraint</title>
+ <formalpara id="form-Reference_Guide-Node_Name_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with primary type <literal>nt:file</literal> whose
node name is <parameter>document</parameter>. The node name is accessible by a
function called <code>fn:name()</code>.
+ </para>
+
+ </formalpara>
+ <note>
+ <title>Note</title>
+ <para>
+ <code>fn:name()</code> can be used ONLY with an
equal(<literal>=</literal>) comparison.
+ </para>
+
+ </note>
+ <section
id="sect-Reference_Guide-Node_Name_Constraint-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains nt:file nodes with different names.
+ </para>
+
+<programlisting>root
+ ├── document1 (nt:file)
+ ├── file (nt:file)
+ └── somename (nt:file)
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Node_Name_Constraint-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Node_Name_Constraint-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:file WHERE fn:name() =
'document'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Node_Name_Constraint-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:file)[fn:name() =
'document']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Node_Name_Constraint-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch appropriate nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return the node whose
<literal>fn:name</literal> equals <emphasis>document</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-Node_Name_Constraint-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ /document1
+ </entry>
+ <entry>
+ 3575
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,155 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope">
- <title>Removing Nodes Property From Indexing Scope</title>
- <para>
- This example will cover excluding a <emphasis>text</emphasis>
property of <literal>nt:unstructured</literal> nodes from being indexed. This
means the node will not be found by a search for the content of this property, even if it
accepts all constraints.
- </para>
- <para>
- Add appropriate rules to the
<filename>indexing-configuration.xml</filename> file:
- </para>
-
-<programlisting language="XML" role="XML"><index-rule
nodeType="nt:unstructured"
condition="@rule='nsiTrue'">
- <!-- default value for nodeScopeIndex is true -->
- <property>text</property>
-</index-rule>
-
-<index-rule nodeType="nt:unstructured"
condition="@rule='nsiFalse'">
- <!-- do not include text in node scope index -->
- <property
nodeScopeIndex="false">text</property>
-</index-rule></programlisting>
- <para>
- Refer to <xref linkend="chap-Reference_Guide-Search_Configuration"
/> for more details.
- </para>
- <section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Repository_structure">
- <title>Repository structure</title>
- <para>
- The repository contains <literal>nt:unstructured</literal> nodes,
with same <emphasis>text</emphasis> property and different
<emphasis>rule</emphasis> properties.
- </para>
-
-<programlisting>root
- ├── node1 (nt:unstructured) rule="nsiTrue" text="The quick brown fox
..."
- ├── node2 (nt:unstructured) rule="nsiFalse" text="The quick brown fox
..."
- └── node3 (nt:unstructured) text="The quick brown fox ..." // as you see this
node not mentioned in indexing-configuration
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:unstructured WHERE
CONTAINS(*,'quick')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(.,
'quick')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> and <emphasis>node3</emphasis>.
<emphasis>Node2</emphasis> is not in the result set.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:primarytype
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /node1
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /node3
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/node-scope-index.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,155 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope">
+ <title>Removing Nodes Property From Indexing Scope</title>
+ <para>
+ This example will cover excluding a <emphasis>text</emphasis>
property of <literal>nt:unstructured</literal> nodes from being indexed. This
means the node will not be found by a search for the content of this property, even if it
accepts all constraints.
+ </para>
+ <para>
+ Add appropriate rules to the
<filename>indexing-configuration.xml</filename> file:
+ </para>
+
+<programlisting language="XML" role="XML"><index-rule
nodeType="nt:unstructured"
condition="@rule='nsiTrue'">
+ <!-- default value for nodeScopeIndex is true -->
+ <property>text</property>
+</index-rule>
+
+<index-rule nodeType="nt:unstructured"
condition="@rule='nsiFalse'">
+ <!-- do not include text in node scope index -->
+ <property
nodeScopeIndex="false">text</property>
+</index-rule></programlisting>
+ <para>
+ Refer to <xref linkend="chap-Reference_Guide-Search_Configuration"
/> for more details.
+ </para>
+ <section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Repository_structure">
+ <title>Repository structure</title>
+ <para>
+ The repository contains <literal>nt:unstructured</literal> nodes,
with same <emphasis>text</emphasis> property and different
<emphasis>rule</emphasis> properties.
+ </para>
+
+<programlisting>root
+ ├── node1 (nt:unstructured) rule="nsiTrue" text="The quick brown fox
..."
+ ├── node2 (nt:unstructured) rule="nsiFalse" text="The quick brown fox
..."
+ └── node3 (nt:unstructured) text="The quick brown fox ..." // as you see this
node not mentioned in indexing-configuration
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:unstructured WHERE
CONTAINS(*,'quick')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(.,
'quick')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> and <emphasis>node3</emphasis>.
<emphasis>Node2</emphasis> is not in the result set.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:primarytype
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /node1
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /node3
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,138 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-NOT_Constraint">
- <title>NOT Constraint</title>
- <formalpara id="form-Reference_Guide-NOT_Constraint-Task">
- <title>Task:</title>
- <para>
- Find all nodes with a mixin type <literal>mix:title</literal> and
where the property <parameter>jcr:title</parameter> does <emphasis
role="bold">not</emphasis> start with a
<literal>P</literal> symbol.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-NOT_Constraint-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains a mix:title nodes, where the jcr:title has different
values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="Star wars" jcr:description="Darth
rules!!"
- ├── document2 (mix:title) jcr:title="Prison break" jcr:description="Run,
Forest, run ))"
- └── document3 (mix:title) jcr:title="Panopticum"
jcr:description="It's imagine film"
-</programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-NOT_Constraint-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-NOT_Constraint-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE NOT jcr:title LIKE
'P%'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-NOT_Constraint-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[not(jcr:like(@jcr:title,
'P%'))]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-NOT_Constraint-Fetching_the_result">
- <title>Fetching the result</title>
- <para>
- To fetch the matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is
- <table
id="tabl-Reference_Guide-NOT_Constraint-Fetching_the_result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Star wars
- </entry>
- <entry>
- Dart rules!!
- </entry>
- <entry>
- /document1
- </entry>
- <entry>
- 4713
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/not-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,138 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-NOT_Constraint">
+ <title>NOT Constraint</title>
+ <formalpara id="form-Reference_Guide-NOT_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with a mixin type <literal>mix:title</literal> and
where the property <parameter>jcr:title</parameter> does <emphasis
role="bold">not</emphasis> start with a
<literal>P</literal> symbol.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-NOT_Constraint-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains a mix:title nodes, where the jcr:title has different
values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="Star wars" jcr:description="Darth
rules!!"
+ ├── document2 (mix:title) jcr:title="Prison break" jcr:description="Run,
Forest, run ))"
+ └── document3 (mix:title) jcr:title="Panopticum"
jcr:description="It's imagine film"
+</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-NOT_Constraint-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-NOT_Constraint-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE NOT jcr:title LIKE
'P%'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-NOT_Constraint-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[not(jcr:like(@jcr:title,
'P%'))]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-NOT_Constraint-Fetching_the_result">
+ <title>Fetching the result</title>
+ <para>
+ To fetch the matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is
+ <table
id="tabl-Reference_Guide-NOT_Constraint-Fetching_the_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Star wars
+ </entry>
+ <entry>
+ Dart rules!!
+ </entry>
+ <entry>
+ /document1
+ </entry>
+ <entry>
+ 4713
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,109 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-SetOffset_and_SetLimit">
- <title><literal>SetOffset</literal> and
<literal>SetLimit</literal></title>
- <formalpara id="form-Reference_Guide-SetOffset_and_SetLimit-Task">
- <title>Task:</title>
- <para>
- Select all nodes with primary type
<literal>nt:unstructured</literal> and return only three nodes starting with
the second node in the list.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Common_information">
- <title>Common information</title>
- <para>
- <literal>QueryImpl</literal> class has two methods; one to
indicate how many results shall be returned at most, and another to fix the starting
position.
- </para>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>setOffset(long offset)</term>
- <listitem>
- <para>
- Sets the start offset of the result set.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>setLimit(long position)</term>
- <listitem>
- <para>
- Sets the maximum size of the result set.
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
-
- </section>
-
- <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Repository_structure">
- <title>Repository structure</title>
- <para>
- The repository contains <literal>mix:title</literal> nodes, where
<literal>jcr:title</literal> has different values.
- </para>
-
-<programlisting>root
- ├── node1 (nt:unstructured)
- ├── node2 (nt:unstructured)
- ├── node3 (nt:unstructured)
- ├── node4 (nt:unstructured)
- ├── node5 (nt:unstructured)
- └── node6 (nt:unstructured)
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-SetOffset_and_SetLimit-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:unstructured";
-QueryImpl query = (QueryImpl)queryManager.createQuery(sqlStatement, Query.SQL);
-//return starting with second result
-query.setOffset(1);
-// return 3 results
-query.setLimit(3);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch the matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- In usual cases (without using <literal>setOffset</literal> and
<literal>setLimit</literal> methods), the
<literal>NodeIterator</literal> returns all nodes
(<emphasis>node1</emphasis> to <emphasis>node6</emphasis>).
However in this case <literal>NodeIterator</literal> will return;
<emphasis>node2</emphasis>, <emphasis>node3</emphasis> and
<emphasis>node4</emphasis>.
- </para>
- <para>
- \[node1 <emphasis role="bold">node2</emphasis>
<emphasis role="bold">node3</emphasis> <emphasis
role="bold">node4</emphasis> node5 node6\]
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/offset-and-limit.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-SetOffset_and_SetLimit">
+ <title><literal>SetOffset</literal> and
<literal>SetLimit</literal></title>
+ <formalpara id="form-Reference_Guide-SetOffset_and_SetLimit-Task">
+ <title>Task:</title>
+ <para>
+ Select all nodes with primary type
<literal>nt:unstructured</literal> and return only three nodes starting with
the second node in the list.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Common_information">
+ <title>Common information</title>
+ <para>
+ <literal>QueryImpl</literal> class has two methods; one to
indicate how many results shall be returned at most, and another to fix the starting
position.
+ </para>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>setOffset(long offset)</term>
+ <listitem>
+ <para>
+ Sets the start offset of the result set.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>setLimit(long position)</term>
+ <listitem>
+ <para>
+ Sets the maximum size of the result set.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Repository_structure">
+ <title>Repository structure</title>
+ <para>
+ The repository contains <literal>mix:title</literal> nodes, where
<literal>jcr:title</literal> has different values.
+ </para>
+
+<programlisting>root
+ ├── node1 (nt:unstructured)
+ ├── node2 (nt:unstructured)
+ ├── node3 (nt:unstructured)
+ ├── node4 (nt:unstructured)
+ ├── node5 (nt:unstructured)
+ └── node6 (nt:unstructured)
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-SetOffset_and_SetLimit-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:unstructured";
+QueryImpl query = (QueryImpl)queryManager.createQuery(sqlStatement, Query.SQL);
+//return starting with second result
+query.setOffset(1);
+// return 3 results
+query.setLimit(3);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-SetOffset_and_SetLimit-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch the matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ In usual cases (without using <literal>setOffset</literal> and
<literal>setLimit</literal> methods), the
<literal>NodeIterator</literal> returns all nodes
(<emphasis>node1</emphasis> to <emphasis>node6</emphasis>).
However in this case <literal>NodeIterator</literal> will return;
<emphasis>node2</emphasis>, <emphasis>node3</emphasis> and
<emphasis>node4</emphasis>.
+ </para>
+ <para>
+ \[node1 <emphasis role="bold">node2</emphasis>
<emphasis role="bold">node3</emphasis> <emphasis
role="bold">node4</emphasis> node5 node6\]
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,153 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-OR_Constraint">
- <title>OR Constraint</title>
- <formalpara id="form-Reference_Guide-OR_Constraint-Task">
- <title>Task:</title>
- <para>
- Find all documents whose title is <emphasis>Cinderella</emphasis>
OR whose description is <emphasis>novel</emphasis>. In JCR terms this would
be; find all nodes with a mixin type <literal>mix:title</literal> whose
property <parameter>jcr:title</parameter> equals
<emphasis>Cinderella</emphasis> or whose
<parameter>jcr:description</parameter> property value is
<emphasis>novel</emphasis>.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-OR_Constraint-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains mix:title nodes, where jcr:title and jcr:description
have different values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="War and peace"
jcr:description="novel"
- ├── document2 (mix:title) jcr:title="Cinderella"
jcr:description="fairytale"
- └── document3 (mix:title) jcr:title="Puss in Boots"
jcr:description="fairytale"
-</programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-OR_Constraint-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-OR_Constraint-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title =
'Cinderella' OR jcr:description = 'novel'";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-OR_Constraint-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[@jcr:title='Cinderella' or
@jcr:description = 'novel']";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-OR_Constraint-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch matching nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis> and
<emphasis>document2</emphasis>.
- </para>
- <para>
- The output can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-OR_Constraint-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- War and peace
- </entry>
- <entry>
- novel
- </entry>
- <entry>
- /document1
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
- <row>
- <entry>
- Cinderella
- </entry>
- <entry>
- fairytale
- </entry>
- <entry>
- /document2
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/or-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,153 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-OR_Constraint">
+ <title>OR Constraint</title>
+ <formalpara id="form-Reference_Guide-OR_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ Find all documents whose title is <emphasis>Cinderella</emphasis>
OR whose description is <emphasis>novel</emphasis>. In JCR terms this would
be; find all nodes with a mixin type <literal>mix:title</literal> whose
property <parameter>jcr:title</parameter> equals
<emphasis>Cinderella</emphasis> or whose
<parameter>jcr:description</parameter> property value is
<emphasis>novel</emphasis>.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-OR_Constraint-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains mix:title nodes, where jcr:title and jcr:description
have different values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="War and peace"
jcr:description="novel"
+ ├── document2 (mix:title) jcr:title="Cinderella"
jcr:description="fairytale"
+ └── document3 (mix:title) jcr:title="Puss in Boots"
jcr:description="fairytale"
+</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-OR_Constraint-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-OR_Constraint-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:title =
'Cinderella' OR jcr:description = 'novel'";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-OR_Constraint-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[@jcr:title='Cinderella' or
@jcr:description = 'novel']";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-OR_Constraint-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch matching nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis> and
<emphasis>document2</emphasis>.
+ </para>
+ <para>
+ The output can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-OR_Constraint-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ War and peace
+ </entry>
+ <entry>
+ novel
+ </entry>
+ <entry>
+ /document1
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ Cinderella
+ </entry>
+ <entry>
+ fairytale
+ </entry>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,155 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only">
- <title>Ordering by Descendant Nodes Property (XPath only)</title>
- <formalpara
id="form-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Task">
- <title>Task:</title>
- <para>
- Find all nodes with the primary type
<literal>nt:unstructured</literal> and sort them by the property value of
descendant nodes with the relative path <literal>/a/b</literal>.
- </para>
-
- </formalpara>
- <note>
- <title>Note</title>
- <para>
- This ORDER BY construction only works in XPath.
- </para>
-
- </note>
- <section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Repository_structure">
- <title>Repository structure</title>
-
-<programlisting>root
- ├── node1 (nt:unstructured)
- │ └── a (nt:unstructured)
- │ └── b (nt:unstructured)
- ├── node2 (nt:unstructured)
- │ └── a (nt:unstructured)
- │ └── b (nt:unstructured)
- │ └── c (nt:unstructured) prop = "a"
- └── node3 (nt:unstructured)
- └── a (nt:unstructured)
- └── b (nt:unstructured)
- └── c (nt:unstructured) prop = "b"
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "/jcr:root/* order by a/b/c/@prop descending;
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return nodes in the
following order - "node3","node2" and "node1".
- </para>
- <para>
- The output can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:primaryType
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /testroot/node3
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /testroot/node2
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /testroot/node1
- </entry>
- <entry>
- 1000
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-descendant.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,155 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only">
+ <title>Ordering by Descendant Nodes Property (XPath only)</title>
+ <formalpara
id="form-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with the primary type
<literal>nt:unstructured</literal> and sort them by the property value of
descendant nodes with the relative path <literal>/a/b</literal>.
+ </para>
+
+ </formalpara>
+ <note>
+ <title>Note</title>
+ <para>
+ This ORDER BY construction only works in XPath.
+ </para>
+
+ </note>
+ <section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Repository_structure">
+ <title>Repository structure</title>
+
+<programlisting>root
+ ├── node1 (nt:unstructured)
+ │ └── a (nt:unstructured)
+ │ └── b (nt:unstructured)
+ ├── node2 (nt:unstructured)
+ │ └── a (nt:unstructured)
+ │ └── b (nt:unstructured)
+ │ └── c (nt:unstructured) prop = "a"
+ └── node3 (nt:unstructured)
+ └── a (nt:unstructured)
+ └── b (nt:unstructured)
+ └── c (nt:unstructured) prop = "b"
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "/jcr:root/* order by a/b/c/@prop descending;
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return nodes in the
following order - "node3","node2" and "node1".
+ </para>
+ <para>
+ The output can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:primaryType
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /testroot/node3
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /testroot/node2
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /testroot/node1
+ </entry>
+ <entry>
+ 1000
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,42 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Ordering_by_Path_or_Name">
- <title>Ordering by Path or Name</title>
- <warning>
- <para>
- Ordering by <literal>jcr:path</literal> or
<literal>jcr:name</literal> is not supported.
- </para>
-
- </warning>
- <para>
- There are two ways to order results, when path may be used as criteria:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Order by property with value type <parameter>NAME</parameter> or
<parameter>PATH</parameter> (as the JCR supports it).
- </para>
-
- </listitem>
- <listitem>
- <para>
- Order by <literal>jcr:path</literal> or
<literal>jcr:name</literal> which will sort results by exact path or name of
node (the JCR does not supports this).
- </para>
-
- </listitem>
-
- </orderedlist>
- <para>
- If no order specification is supplied in the query statement, implementations may
support document order on the result nodes (as per the
<literal>JSR-170</literal> specification). This will sort by order number.
- </para>
- <para>
- By default, (if the query does not contains any ordering statements) result nodes is
sorted by document order.
- </para>
-
-<programlisting>SELECT * FROM nt:unstructured WHERE jcr:path LIKE
'testRoot/%'</programlisting>
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-path-or-name.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Ordering_by_Path_or_Name">
+ <title>Ordering by Path or Name</title>
+ <warning>
+ <para>
+ Ordering by <literal>jcr:path</literal> or
<literal>jcr:name</literal> is not supported.
+ </para>
+
+ </warning>
+ <para>
+ There are two ways to order results, when path may be used as criteria:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Order by property with value type <parameter>NAME</parameter> or
<parameter>PATH</parameter> (as the JCR supports it).
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Order by <literal>jcr:path</literal> or
<literal>jcr:name</literal> which will sort results by exact path or name of
node (the JCR does not supports this).
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+ <para>
+ If no order specification is supplied in the query statement, implementations may
support document order on the result nodes (as per the
<literal>JSR-170</literal> specification). This will sort by order number.
+ </para>
+ <para>
+ By default, (if the query does not contains any ordering statements) result nodes is
sorted by document order.
+ </para>
+
+<programlisting>SELECT * FROM nt:unstructured WHERE jcr:path LIKE
'testRoot/%'</programlisting>
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,179 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Sorting_Nodes_by_Property">
- <title>Sorting Nodes by Property</title>
- <formalpara
id="form-Reference_Guide-Sorting_Nodes_by_Property-Task">
- <title>Task:</title>
- <para>
- Select all nodes with the mixin type <literal>mix:title</literal>
and order them by the <parameter>prop_pagecount</parameter> property.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Sorting_Nodes_by_Property-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains several <literal>mix:title</literal>
nodes, where <parameter>prop_pagecount</parameter> has different values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="War and peace"
jcr:description="roman" prop_pagecount=4
- ├── document2 (mix:title) jcr:title="Cinderella"
jcr:description="fairytale" prop_pagecount=7
- └── document3 (mix:title) jcr:title="Puss in Boots"
jcr:description="fairytale" prop_pagecount=1
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Sorting_Nodes_by_Property-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Sorting_Nodes_by_Property-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title ORDER BY prop_pagecount ASC";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Sorting_Nodes_by_Property-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title) order by @prop_pagecount
ascending";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Sorting_Nodes_by_Property-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return nodes in the
following order: <emphasis>document3</emphasis>,
<emphasis>document1</emphasis>,
<emphasis>document2</emphasis>".
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Sorting_Nodes_by_Property-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="5">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:description
- </entry>
- <entry>
- prop_pagecount
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Puss in Boots
- </entry>
- <entry>
- fairytale
- </entry>
- <entry>
- 1
- </entry>
- <entry>
- /document3
- </entry>
- <entry>
- 1405
- </entry>
-
- </row>
- <row>
- <entry>
- War and peace
- </entry>
- <entry>
- roman
- </entry>
- <entry>
- 4
- </entry>
- <entry>
- /document1
- </entry>
- <entry>
- 1405
- </entry>
-
- </row>
- <row>
- <entry>
- Cinderella
- </entry>
- <entry>
- fairytale
- </entry>
- <entry>
- 7
- </entry>
- <entry>
- /document2
- </entry>
- <entry>
- 1405
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-property.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,179 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Sorting_Nodes_by_Property">
+ <title>Sorting Nodes by Property</title>
+ <formalpara
id="form-Reference_Guide-Sorting_Nodes_by_Property-Task">
+ <title>Task:</title>
+ <para>
+ Select all nodes with the mixin type <literal>mix:title</literal>
and order them by the <parameter>prop_pagecount</parameter> property.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Sorting_Nodes_by_Property-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains several <literal>mix:title</literal>
nodes, where <parameter>prop_pagecount</parameter> has different values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="War and peace"
jcr:description="roman" prop_pagecount=4
+ ├── document2 (mix:title) jcr:title="Cinderella"
jcr:description="fairytale" prop_pagecount=7
+ └── document3 (mix:title) jcr:title="Puss in Boots"
jcr:description="fairytale" prop_pagecount=1
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Sorting_Nodes_by_Property-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Sorting_Nodes_by_Property-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title ORDER BY prop_pagecount ASC";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Sorting_Nodes_by_Property-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title) order by @prop_pagecount
ascending";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Sorting_Nodes_by_Property-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return nodes in the
following order: <emphasis>document3</emphasis>,
<emphasis>document1</emphasis>,
<emphasis>document2</emphasis>".
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Sorting_Nodes_by_Property-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ prop_pagecount
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Puss in Boots
+ </entry>
+ <entry>
+ fairytale
+ </entry>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 1405
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ War and peace
+ </entry>
+ <entry>
+ roman
+ </entry>
+ <entry>
+ 4
+ </entry>
+ <entry>
+ /document1
+ </entry>
+ <entry>
+ 1405
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ Cinderella
+ </entry>
+ <entry>
+ fairytale
+ </entry>
+ <entry>
+ 7
+ </entry>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 1405
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,194 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Ordering_by_Score">
- <title>Ordering by Score</title>
- <formalpara id="form-Reference_Guide-Ordering_by_Score-Task">
- <title>Task:</title>
- <para>
- Select all nodes with the mixin type <literal>mix:title</literal>
containing any word from the set {<emphasis>brown</emphasis>,
<emphasis>fox</emphasis>, <emphasis>jumps</emphasis>}. Then, sort
the results by their score in ascending node. This way nodes that are a closer match to
the query statement are in the last positions in the result list.
- </para>
-
- </formalpara>
- <para>
-
- </para>
- <section id="sect-Reference_Guide-Ordering_by_Score-Info">
- <title>Info</title>
- <para>
- SQL and XPath queries both support score constructions
<literal>jcr:score</literal> and <literal>jcr:score()</literal>.
- </para>
-
-<programlisting>SELECT * FROM nt:base ORDER BY jcr:score [ASC|DESC]
-SELECT * FROM nt:base ORDER BY jcr:score()[ASC|DESC]
-
-//element(*,nt:base) order by jcr:score() [descending]
-//element(*,nt:base) order by @jcr:score [descending]</programlisting>
- <para>
- Do not use <parameter>ascending</parameter> combined with
<literal>jcr:score</literal> in XPath. The following XPath statement may throw
an exception:
- </para>
-
-<programlisting>... order by jcr:score() ascending</programlisting>
- <para>
- If you do not set any ordering specifier the default is ascending:
- </para>
-
-<programlisting>... order by jcr:score()</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ordering_by_Score-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains mix:title nodes, where the jcr:description has
different values.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:description="The quick brown fox jumps over the lazy
dog."
- ├── document2 (mix:title) jcr:description="The brown fox lives in the
forest."
- └── document3 (mix:title) jcr:description="The fox is a nice animal."
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ordering_by_Score-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Ordering_by_Score-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(*, 'brown OR fox
OR jumps') ORDER BY jcr:score() ASC";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Ordering_by_Score-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[jcr:contains(., 'brown OR fox OR
jumps')] order by jcr:score()";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Ordering_by_Score-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return nodes in the
following order: <emphasis>document3</emphasis>,
<emphasis>document2</emphasis>, <emphasis>document1</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Ordering_by_Score-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- jcr:description
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- The fox is a nice animal.
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document3
- </entry>
- <entry>
- 2512
- </entry>
-
- </row>
- <row>
- <entry>
- The brown fox lives in the forest.
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document2
- </entry>
- <entry>
- 3595
- </entry>
-
- </row>
- <row>
- <entry>
- The quick brown fox jumps over the lazy dog.
- </entry>
- <entry>
- ...
- </entry>
- <entry>
- /document1
- </entry>
- <entry>
- 5017
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/order-by-score.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,194 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Ordering_by_Score">
+ <title>Ordering by Score</title>
+ <formalpara id="form-Reference_Guide-Ordering_by_Score-Task">
+ <title>Task:</title>
+ <para>
+ Select all nodes with the mixin type <literal>mix:title</literal>
containing any word from the set {<emphasis>brown</emphasis>,
<emphasis>fox</emphasis>, <emphasis>jumps</emphasis>}. Then, sort
the results by their score in ascending node. This way nodes that are a closer match to
the query statement are in the last positions in the result list.
+ </para>
+
+ </formalpara>
+ <para>
+
+ </para>
+ <section id="sect-Reference_Guide-Ordering_by_Score-Info">
+ <title>Info</title>
+ <para>
+ SQL and XPath queries both support score constructions
<literal>jcr:score</literal> and <literal>jcr:score()</literal>.
+ </para>
+
+<programlisting>SELECT * FROM nt:base ORDER BY jcr:score [ASC|DESC]
+SELECT * FROM nt:base ORDER BY jcr:score()[ASC|DESC]
+
+//element(*,nt:base) order by jcr:score() [descending]
+//element(*,nt:base) order by @jcr:score [descending]</programlisting>
+ <para>
+ Do not use <parameter>ascending</parameter> combined with
<literal>jcr:score</literal> in XPath. The following XPath statement may throw
an exception:
+ </para>
+
+<programlisting>... order by jcr:score() ascending</programlisting>
+ <para>
+ If you do not set any ordering specifier the default is ascending:
+ </para>
+
+<programlisting>... order by jcr:score()</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ordering_by_Score-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains mix:title nodes, where the jcr:description has
different values.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:description="The quick brown fox jumps over the lazy
dog."
+ ├── document2 (mix:title) jcr:description="The brown fox lives in the
forest."
+ └── document3 (mix:title) jcr:description="The fox is a nice animal."
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ordering_by_Score-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Ordering_by_Score-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(*, 'brown OR fox
OR jumps') ORDER BY jcr:score() ASC";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Ordering_by_Score-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:contains(., 'brown OR fox OR
jumps')] order by jcr:score()";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Ordering_by_Score-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return nodes in the
following order: <emphasis>document3</emphasis>,
<emphasis>document2</emphasis>, <emphasis>document1</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Ordering_by_Score-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ jcr:description
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ The fox is a nice animal.
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 2512
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ The brown fox lives in the forest.
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document2
+ </entry>
+ <entry>
+ 3595
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ The quick brown fox jumps over the lazy dog.
+ </entry>
+ <entry>
+ ...
+ </entry>
+ <entry>
+ /document1
+ </entry>
+ <entry>
+ 5017
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,132 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Property_Comparison">
- <title>Property Comparison</title>
- <formalpara id="form-Reference_Guide-Property_Comparison-Task">
- <title>Task:</title>
- <para>
- To find all nodes with mixin type <literal>mix:title</literal>
where the <parameter>prop_pagecount</parameter> property contains a value less
than <literal>90</literal>. Only select the title of each node.
- </para>
-
- </formalpara>
- <section
id="sect-Reference_Guide-Property_Comparison-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository contains several <literal>mix:title</literal> nodes,
where each <parameter>prop_pagecount</parameter> contains a different value.
- </para>
-
-<programlisting>root
- ├── document1 (mix:title) jcr:title="War and peace" prop_pagecount=1000
- ├── document2 (mix:title) jcr:title="Cinderella" prop_pagecount=100
- └── document3 (mix:title) jcr:title="Puss in Boots" prop_pagecount=60
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Property_Comparison-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Property_Comparison-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT jcr:title FROM mix:title WHERE prop_pagecount <
90";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Property_Comparison-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[@prop_pagecount <
90]/@jcr:title";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Property_Comparison-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document3</emphasis>.
- </para>
- <para>
- The results can also be formatted as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- The table content is:
- <table
id="tabl-Reference_Guide-Property_Comparison-Fetching_result-Table_Content">
- <title>Table Content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:title
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Puss in Boots
- </entry>
- <entry>
- /document3
- </entry>
- <entry>
- 1725
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-comparison.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,132 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Property_Comparison">
+ <title>Property Comparison</title>
+ <formalpara id="form-Reference_Guide-Property_Comparison-Task">
+ <title>Task:</title>
+ <para>
+ To find all nodes with mixin type <literal>mix:title</literal>
where the <parameter>prop_pagecount</parameter> property contains a value less
than <literal>90</literal>. Only select the title of each node.
+ </para>
+
+ </formalpara>
+ <section
id="sect-Reference_Guide-Property_Comparison-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository contains several <literal>mix:title</literal> nodes,
where each <parameter>prop_pagecount</parameter> contains a different value.
+ </para>
+
+<programlisting>root
+ ├── document1 (mix:title) jcr:title="War and peace" prop_pagecount=1000
+ ├── document2 (mix:title) jcr:title="Cinderella" prop_pagecount=100
+ └── document3 (mix:title) jcr:title="Puss in Boots" prop_pagecount=60
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Property_Comparison-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Property_Comparison-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT jcr:title FROM mix:title WHERE prop_pagecount <
90";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Property_Comparison-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[@prop_pagecount <
90]/@jcr:title";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Property_Comparison-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document3</emphasis>.
+ </para>
+ <para>
+ The results can also be formatted as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ The table content is:
+ <table
id="tabl-Reference_Guide-Property_Comparison-Fetching_result-Table_Content">
+ <title>Table Content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:title
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Puss in Boots
+ </entry>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 1725
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,139 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Property_Existence_Constraint">
- <title>Property Existence Constraint</title>
- <formalpara
id="form-Reference_Guide-Property_Existence_Constraint-Task">
- <title>Task:</title>
- <para>
- Find all nodes with a mixin type
'<literal>mix:title</literal>' where the property
<parameter>jcr:description</parameter> does not exist (is null).
- </para>
-
- </formalpara>
- <para>
-
- </para>
- <section
id="sect-Reference_Guide-Property_Existence_Constraint-Repository_Structure">
- <title>Repository Structure</title>
- <para>
- The repository contains <literal>mix:title</literal> nodes, in
one of these nodes the <literal>jcr:description</literal> property is null.
- </para>
-
-<programlisting>root
- ├── document1 mix:title jcr:title ="Star Wars" jcr:description ="Darth
rules!!"
- ├── document2 (mix:title) jcr:title="Prison Break" jcr:description="Run,
Forest, run ))"
- └── document3 (mix:title) jcr:title="Titanic" // The description property
does not exist. This is the node we wish to find.
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Property_Existence_Constraint-Query_Execution">
- <title>Query Execution</title>
- <example
id="exam-Reference_Guide-Property_Existence_Constraint-Query_Execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE jcr:description IS NULL";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
- </example>
- <example
id="exam-Reference_Guide-Property_Existence_Constraint-Query_Execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement =
""//element(*,mix:title)[not(@jcr:description)]"";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Property_Existence_Constraint-Fetching_the_Result">
- <title>Fetching the Result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document3</emphasis>.
- </para>
- <para>
- We can also get a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- <table
id="tabl-Reference_Guide-Property_Existence_Constraint-Fetching_the_Result-Table_content">
- <title>Table content</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- <literal>jcr:title</literal>
- </entry>
- <entry>
- <literal>jcr:description</literal>
- </entry>
- <entry>
- <literal>jcr:path</literal>
- </entry>
- <entry>
- <literal>jcr:score</literal>
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- Titanic
- </entry>
- <entry>
- null
- </entry>
- <entry>
- /document3
- </entry>
- <entry>
- 1947
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/property-existance-constraint.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,139 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Property_Existence_Constraint">
+ <title>Property Existence Constraint</title>
+ <formalpara
id="form-Reference_Guide-Property_Existence_Constraint-Task">
+ <title>Task:</title>
+ <para>
+ Find all nodes with a mixin type
'<literal>mix:title</literal>' where the property
<parameter>jcr:description</parameter> does not exist (is null).
+ </para>
+
+ </formalpara>
+ <para>
+
+ </para>
+ <section
id="sect-Reference_Guide-Property_Existence_Constraint-Repository_Structure">
+ <title>Repository Structure</title>
+ <para>
+ The repository contains <literal>mix:title</literal> nodes, in
one of these nodes the <literal>jcr:description</literal> property is null.
+ </para>
+
+<programlisting>root
+ ├── document1 mix:title jcr:title ="Star Wars" jcr:description ="Darth
rules!!"
+ ├── document2 (mix:title) jcr:title="Prison Break" jcr:description="Run,
Forest, run ))"
+ └── document3 (mix:title) jcr:title="Titanic" // The description property
does not exist. This is the node we wish to find.
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Property_Existence_Constraint-Query_Execution">
+ <title>Query Execution</title>
+ <example
id="exam-Reference_Guide-Property_Existence_Constraint-Query_Execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE jcr:description IS NULL";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </example>
+ <example
id="exam-Reference_Guide-Property_Existence_Constraint-Query_Execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement =
""//element(*,mix:title)[not(@jcr:description)]"";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Property_Existence_Constraint-Fetching_the_Result">
+ <title>Fetching the Result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document3</emphasis>.
+ </para>
+ <para>
+ We can also get a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ <table
id="tabl-Reference_Guide-Property_Existence_Constraint-Fetching_the_Result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ <literal>jcr:title</literal>
+ </entry>
+ <entry>
+ <literal>jcr:description</literal>
+ </entry>
+ <entry>
+ <literal>jcr:path</literal>
+ </entry>
+ <entry>
+ <literal>jcr:score</literal>
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ Titanic
+ </entry>
+ <entry>
+ null
+ </entry>
+ <entry>
+ /document3
+ </entry>
+ <entry>
+ 1947
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,153 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules">
- <title>Regular Expression as Property Name in Indexing Rules</title>
- <formalpara
id="form-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Task">
- <title>Task:</title>
- <para>
- To configure indexing so that all properties of
<literal>nt:unstructured</literal> nodes must be excluded from searches,
except properties with names ending with a particular
<emphasis>Text</emphasis> string.
- </para>
-
- </formalpara>
- <para>
- To begin, add the appropriate rules to the
<filename>indexing-configuration.xml</filename> file:
- </para>
-
-<programlisting language="XML" role="XML"><index-rule
nodeType="nt:unstructured"">
- <property isRegexp="true">.*Text</property>
-</index-rule></programlisting>
- <para>
- See <xref linkend="chap-Reference_Guide-Search_Configuration" />
for more information.
- </para>
- <section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Repository_structure">
- <title>Repository structure:</title>
- <para>
- The repository contains <literal>nt:unstructured</literal> nodes,
with different <parameter>text</parameter>-based properties:
- </para>
-
-<programlisting>root
- ├── node1 (nt:unstructured) Text="The quick brown fox ..."
- ├── node2 (nt:unstructured) OtherText="The quick brown fox ..."
- └── node3 (nt:unstructured) Textle="The quick brown fox ..."
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM nt:unstructured WHERE
CONTAINS(*,'quick')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
- <example
id="exam-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(.,
'quick')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
-
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch the nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> and <emphasis>node2</emphasis>.
<emphasis>Node3</emphasis> is not in result set.
- </para>
- <para>
- The results can also be output as a table:
- </para>
-
-<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
-RowIterator rit = result.getRows();
-while (rit.hasNext())
-{
- Row row = rit.nextRow();
- // get values of the row
- Value[] values = row.getValues();
-}</programlisting>
- <para>
- Table content is:
- </para>
- <table
id="tabl-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Fetching_result-Table_content">
- <title>Table content</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- jcr:primarytype
- </entry>
- <entry>
- jcr:path
- </entry>
- <entry>
- jcr:score
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /node1
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
- <row>
- <entry>
- nt:unstructured
- </entry>
- <entry>
- /node2
- </entry>
- <entry>
- 3806
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
- </table>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/regexp-indexing-rule.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,153 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules">
+ <title>Regular Expression as Property Name in Indexing Rules</title>
+ <formalpara
id="form-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Task">
+ <title>Task:</title>
+ <para>
+ To configure indexing so that all properties of
<literal>nt:unstructured</literal> nodes must be excluded from searches,
except properties with names ending with a particular
<emphasis>Text</emphasis> string.
+ </para>
+
+ </formalpara>
+ <para>
+ To begin, add the appropriate rules to the
<filename>indexing-configuration.xml</filename> file:
+ </para>
+
+<programlisting language="XML" role="XML"><index-rule
nodeType="nt:unstructured"">
+ <property isRegexp="true">.*Text</property>
+</index-rule></programlisting>
+ <para>
+ See <xref linkend="chap-Reference_Guide-Search_Configuration" />
for more information.
+ </para>
+ <section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ The repository contains <literal>nt:unstructured</literal> nodes,
with different <parameter>text</parameter>-based properties:
+ </para>
+
+<programlisting>root
+ ├── node1 (nt:unstructured) Text="The quick brown fox ..."
+ ├── node2 (nt:unstructured) OtherText="The quick brown fox ..."
+ └── node3 (nt:unstructured) Textle="The quick brown fox ..."
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM nt:unstructured WHERE
CONTAINS(*,'quick')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+ <example
id="exam-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,nt:unstructured)[jcr:contains(.,
'quick')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch the nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>node1</emphasis> and <emphasis>node2</emphasis>.
<emphasis>Node3</emphasis> is not in result set.
+ </para>
+ <para>
+ The results can also be output as a table:
+ </para>
+
+<programlisting language="Java" role="Java">String[]
columnNames = result.getColumnNames();
+RowIterator rit = result.getRows();
+while (rit.hasNext())
+{
+ Row row = rit.nextRow();
+ // get values of the row
+ Value[] values = row.getValues();
+}</programlisting>
+ <para>
+ Table content is:
+ </para>
+ <table
id="tabl-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules-Fetching_result-Table_content">
+ <title>Table content</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ jcr:primarytype
+ </entry>
+ <entry>
+ jcr:path
+ </entry>
+ <entry>
+ jcr:score
+ </entry>
+
+ </row>
+
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /node1
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+ <row>
+ <entry>
+ nt:unstructured
+ </entry>
+ <entry>
+ /node2
+ </entry>
+ <entry>
+ 3806
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,96 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Checking_the_spelling_of_Phrase">
- <title>Checking the spelling of Phrase</title>
- <formalpara
id="form-Reference_Guide-Checking_the_spelling_of_Phrase-Task">
- <title>Task:</title>
- <para>
- Check the correct spelling of phrase '<emphasis>quik OR (-foo
bar)</emphasis>' according to data already stored in index.
- </para>
-
- </formalpara>
- <note>
- <para>
- Refer to <xref
linkend="chap-Reference_Guide-Searching_Repository_Content" /> for
information about SpellChecker configuration.
- </para>
-
- </note>
- <para>
- The SpellChecker must be set in query-handler configuration.
- </para>
- <example
id="exam-Reference_Guide-Checking_the_spelling_of_Phrase-test_jcr_config.xml">
- <title>test-jcr-config.xml:</title>
-
-<programlisting language="XML" role="XML"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- ...
- <property name="spellchecker-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker$FiveSecondsRefreshInterval"
/>
- ...
- </properties>
-</query-handler></programlisting>
- </example>
- <section
id="sect-Reference_Guide-Checking_the_spelling_of_Phrase-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository contains node, with string property "The quick brown fox
jumps over the lazy dog."
- </para>
-
-<programlisting>root
- └── node1 property="The quick brown fox jumps over the lazy dog."
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Checking_the_spelling_of_Phrase-Query_execution">
- <title>Query execution</title>
- <para>
- The query looks only for the <literal>root</literal> node,
because the spell checker looks for suggestions by full index. Therefore a complicated
query is unecessary.
- </para>
- <example
id="exam-Reference_Guide-Checking_the_spelling_of_Phrase-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT rep:spellcheck() FROM nt:base WHERE jcr:path =
'/' AND SPELLCHECK('quik OR (-foo bar)')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
- </example>
- <example
id="exam-Reference_Guide-Checking_the_spelling_of_Phrase-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "/jcr:root[rep:spellcheck('quik OR (-foo
bar)')]/(rep:spellcheck())";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Checking_the_spelling_of_Phrase-Fetching_result">
- <title>Fetching result</title>
- <para>
- To get suggestions of the correct spelling of the nominated phrase:
- </para>
-
-<programlisting language="Java" role="Java">RowIterator it =
result.getRows();
-Row r = rows.nextRow();
-Value v = r.getValue("rep:spellcheck()");
-String correctPhrase = v.getString();</programlisting>
- <para>
- The result would offer "<literal>quick OR (-fox
bar)</literal>" as the correct spelling for the phrase
"<literal>quik OR (-foo bar)</literal>" .
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/spell-checker.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,96 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Checking_the_spelling_of_Phrase">
+ <title>Checking the spelling of Phrase</title>
+ <formalpara
id="form-Reference_Guide-Checking_the_spelling_of_Phrase-Task">
+ <title>Task:</title>
+ <para>
+ Check the correct spelling of phrase '<emphasis>quik OR (-foo
bar)</emphasis>' according to data already stored in index.
+ </para>
+
+ </formalpara>
+ <note>
+ <para>
+ Refer to <xref
linkend="chap-Reference_Guide-Searching_Repository_Content" /> for
information about SpellChecker configuration.
+ </para>
+
+ </note>
+ <para>
+ The SpellChecker must be set in query-handler configuration.
+ </para>
+ <example
id="exam-Reference_Guide-Checking_the_spelling_of_Phrase-test_jcr_config.xml">
+ <title>test-jcr-config.xml:</title>
+
+<programlisting language="XML" role="XML"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ ...
+ <property name="spellchecker-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker$FiveSecondsRefreshInterval"
/>
+ ...
+ </properties>
+</query-handler></programlisting>
+ </example>
+ <section
id="sect-Reference_Guide-Checking_the_spelling_of_Phrase-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository contains node, with string property "The quick brown fox
jumps over the lazy dog."
+ </para>
+
+<programlisting>root
+ └── node1 property="The quick brown fox jumps over the lazy dog."
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Checking_the_spelling_of_Phrase-Query_execution">
+ <title>Query execution</title>
+ <para>
+ The query looks only for the <literal>root</literal> node,
because the spell checker looks for suggestions by full index. Therefore a complicated
query is unecessary.
+ </para>
+ <example
id="exam-Reference_Guide-Checking_the_spelling_of_Phrase-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT rep:spellcheck() FROM nt:base WHERE jcr:path =
'/' AND SPELLCHECK('quik OR (-foo bar)')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </example>
+ <example
id="exam-Reference_Guide-Checking_the_spelling_of_Phrase-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "/jcr:root[rep:spellcheck('quik OR (-foo
bar)')]/(rep:spellcheck())";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Checking_the_spelling_of_Phrase-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To get suggestions of the correct spelling of the nominated phrase:
+ </para>
+
+<programlisting language="Java" role="Java">RowIterator it =
result.getRows();
+Row r = rows.nextRow();
+Value v = r.getValue("rep:spellcheck()");
+String correctPhrase = v.getString();</programlisting>
+ <para>
+ The result would offer "<literal>quick OR (-fox
bar)</literal>" as the correct spelling for the phrase
"<literal>quik OR (-foo bar)</literal>" .
+ </para>
+
+ </section>
+
+
+</section>
+
+
Deleted:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml 2011-12-07
04:28:19 UTC (rev 8201)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml 2011-12-07
04:31:34 UTC (rev 8202)
@@ -1,103 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
-%BOOK_ENTITIES;
-]>
-<section id="sect-Reference_Guide-Searching_By_Synonym">
- <title>Searching By Synonym</title>
- <formalpara id="form-Reference_Guide-Searching_By_Synonym-Task">
- <title>Task:</title>
- <para>
- Find all <literal>mix:title</literal> nodes whose title contains
a synonym for the term <emphasis>fast</emphasis>.
- </para>
-
- </formalpara>
- <note>
- <para>
- Refer to <xref
linkend="chap-Reference_Guide-Searching_Repository_Content" /> for
information about synonym provider configuration
- </para>
-
- </note>
- <para>
- The synonym provider must be configured in the
<filename>indexing-configuration.xml</filename> configuration file:
- </para>
-
-<programlisting language="XML" role="XML"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
- <properties>
- ...
- <property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider"
/>
- <property name="synonymprovider-config-path"
value="../../synonyms.properties" />
- ...
- </properties>
-</query-handler></programlisting>
- <para>
- The <filename>synonym.properties</filename> file contains the
synonyms list:
- </para>
- <example
id="exam-Reference_Guide-Searching_By_Synonym-Example_Synonym_List">
- <title>Example Synonym List</title>
-
-<programlisting>ASF=Apache Software Foundation
-quick=fast
-sluggish=lazy</programlisting>
- </example>
- <section
id="sect-Reference_Guide-Searching_By_Synonym-Repository_structure">
- <title>Repository structure:</title>
- <para>
- the repository contains <literal>mix:title</literal> nodes, where
<literal>jcr:title</literal> has different values.
- </para>
-
-<programlisting>root
- └── document1 (mix:title) jcr:title="The quick brown fox jumps over the lazy
dog."
-</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Searching_By_Synonym-Query_execution">
- <title>Query execution</title>
- <example
id="exam-Reference_Guide-Searching_By_Synonym-Query_execution-SQL">
- <title>SQL</title>
-
-<programlisting language="Java" role="Java">// make SQL query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(jcr:title,
'~fast')";
-Query query = queryManager.createQuery(sqlStatement, Query.SQL);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
- </example>
- <example
id="exam-Reference_Guide-Searching_By_Synonym-Query_execution-XPath">
- <title>XPath</title>
-
-<programlisting language="Java" role="Java">// make XPath
query
-QueryManager queryManager = workspace.getQueryManager();
-// create query
-String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:title,
'~fast')]";
-Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
-// execute query and fetch result
-QueryResult result = query.execute();</programlisting>
- </example>
-
- </section>
-
- <section
id="sect-Reference_Guide-Searching_By_Synonym-Fetching_result">
- <title>Fetching result</title>
- <para>
- To fetch nodes:
- </para>
-
-<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
-
-if(it.hasNext())
-{
- Node findedNode = it.nextNode();
-}</programlisting>
- <para>
- The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis> as expected. This is a purpose of synonym
providers; to search using specified keyword(s), but return results that contain synonyms
to it.
- </para>
-
- </section>
-
-
-</section>
-
-
Copied:
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml.cut
(from rev 8158,
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml)
===================================================================
---
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml.cut
(rev 0)
+++
epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR/jcr/searching/synonim-provider.xml.cut 2011-12-07
04:31:34 UTC (rev 8202)
@@ -0,0 +1,103 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<section id="sect-Reference_Guide-Searching_By_Synonym">
+ <title>Searching By Synonym</title>
+ <formalpara id="form-Reference_Guide-Searching_By_Synonym-Task">
+ <title>Task:</title>
+ <para>
+ Find all <literal>mix:title</literal> nodes whose title contains
a synonym for the term <emphasis>fast</emphasis>.
+ </para>
+
+ </formalpara>
+ <note>
+ <para>
+ Refer to <xref
linkend="chap-Reference_Guide-Searching_Repository_Content" /> for
information about synonym provider configuration
+ </para>
+
+ </note>
+ <para>
+ The synonym provider must be configured in the
<filename>indexing-configuration.xml</filename> configuration file:
+ </para>
+
+<programlisting language="XML" role="XML"><query-handler
class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ ...
+ <property name="synonymprovider-class"
value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider"
/>
+ <property name="synonymprovider-config-path"
value="../../synonyms.properties" />
+ ...
+ </properties>
+</query-handler></programlisting>
+ <para>
+ The <filename>synonym.properties</filename> file contains the
synonyms list:
+ </para>
+ <example
id="exam-Reference_Guide-Searching_By_Synonym-Example_Synonym_List">
+ <title>Example Synonym List</title>
+
+<programlisting>ASF=Apache Software Foundation
+quick=fast
+sluggish=lazy</programlisting>
+ </example>
+ <section
id="sect-Reference_Guide-Searching_By_Synonym-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ the repository contains <literal>mix:title</literal> nodes, where
<literal>jcr:title</literal> has different values.
+ </para>
+
+<programlisting>root
+ └── document1 (mix:title) jcr:title="The quick brown fox jumps over the lazy
dog."
+</programlisting>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Searching_By_Synonym-Query_execution">
+ <title>Query execution</title>
+ <example
id="exam-Reference_Guide-Searching_By_Synonym-Query_execution-SQL">
+ <title>SQL</title>
+
+<programlisting language="Java" role="Java">// make SQL query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String sqlStatement = "SELECT * FROM mix:title WHERE CONTAINS(jcr:title,
'~fast')";
+Query query = queryManager.createQuery(sqlStatement, Query.SQL);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </example>
+ <example
id="exam-Reference_Guide-Searching_By_Synonym-Query_execution-XPath">
+ <title>XPath</title>
+
+<programlisting language="Java" role="Java">// make XPath
query
+QueryManager queryManager = workspace.getQueryManager();
+// create query
+String xpathStatement = "//element(*,mix:title)[jcr:contains(@jcr:title,
'~fast')]";
+Query query = queryManager.createQuery(xpathStatement, Query.XPATH);
+// execute query and fetch result
+QueryResult result = query.execute();</programlisting>
+ </example>
+
+ </section>
+
+ <section
id="sect-Reference_Guide-Searching_By_Synonym-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ To fetch nodes:
+ </para>
+
+<programlisting language="Java" role="Java">NodeIterator it =
result.getNodes();
+
+if(it.hasNext())
+{
+ Node findedNode = it.nextNode();
+}</programlisting>
+ <para>
+ The <literal>NodeIterator</literal> will return
<emphasis>document1</emphasis> as expected. This is a purpose of synonym
providers; to search using specified keyword(s), but return results that contain synonyms
to it.
+ </para>
+
+ </section>
+
+
+</section>
+
+
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR.xml 2011-12-07 04:28:19 UTC
(rev 8201)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/eXoJCR.xml 2011-12-07 04:31:34 UTC
(rev 8202)
@@ -3,61 +3,130 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
%BOOK_ENTITIES;
]>
-<part id="part-Reference_Guide-The_Java_Content_Repository_">
- <title><remark>The Java Content Repository</remark>
- </title>
- <!-- <xi:include href="eXoJCR/eXoJCR/jcr.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <xi:include
href="eXoJCR/jcr/intro.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"
/>
- <!-- concepts --> <!-- <xi:include
href="eXoJCR/jcr/concepts/why-jcr.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <xi:include
href="eXoJCR/jcr/concepts/jcr-exo-implementation.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/jcr-advantages.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/jcr-compatibility-levels.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/jcr-usage.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- <xi:include href="eXoJCR/jcr/concepts/jcr-extensions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <xi:include
href="eXoJCR/jcr/concepts/jcr-applications.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/nodetype-registration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/jcr-registry-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/concepts/jcr-namespace-altering.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- common configs --> <xi:include
href="eXoJCR/jcr/configuration/exo-jcr-configuration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/configuration/multilanguage-support.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/configuration/search-configuration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/configuration/configuration-persister.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/configuration/jdbc-data-container-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/configuration/external-value-storages.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include
href="eXoJCR/jcr/configuration/workspace-persistence-storage.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/configuration/rest-services-on-groovy.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- cluster configs --> <xi:include
href="eXoJCR/jcr/cluster-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/jbosscache-configuration-templates.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/lock-manager-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/query-handler-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/jbossts-transaction-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/transaction-manager-lookup.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/repository-creation-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- search --> <xi:include
href="eXoJCR/jcr/searching/jcr-query-usecases.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/searching/searching-repository-content.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/searching/fulltext-search-and-settings.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- api extensions --> <xi:include
href="eXoJCR/jcr/api-extensions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- protocols --> <xi:include
href="eXoJCR/jcr/protocols/webdav.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/protocols/ftp.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- backup --> <xi:include
href="eXoJCR/jcr/backup/exojcr-backup-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/backup/backup-client.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/backup/use-external-backup-tool.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- other --> <xi:include
href="eXoJCR/jcr/statistics.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/repository-check-controller.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/jta.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/jca.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/other/acl.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/other/acl-ext.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/other/link-producer.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/other/binary-values-processing.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/jcr/other/jcr-resources.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- data container configs --> <xi:include
href="eXoJCR/jcr/data-container.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- <xi:include href="eXoJCR/jcr/data-container-howto.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <xi:include
href="eXoJCR/jcr/db-cleaner-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- tuning guide
- DOC NOTE: Could possibly be moved to a specific Tuning Guide later -->
<xi:include href="eXoJCR/jcr/performance-tuning-guide.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- JCR Core
+ <part id="part-Reference_Guide-The_Java_Content_Repository_">
+ <title><remark>The Java Content
Repository</remark></title>
+ <!-- <xi:include href="eXoJCR/eXoJCR/jcr.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <xi:include href="eXoJCR/jcr/intro.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!--concepts -->
+ <!--<xi:include href="eXoJCR/jcr/concepts/why-jcr.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <xi:include href="eXoJCR/jcr/concepts/jcr-exo-implementation.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!--<xi:include href="eXoJCR/jcr/concepts/jcr-advantages.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include
href="eXoJCR/jcr/concepts/jcr-compatibility-levels.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="eXoJCR/jcr/concepts/jcr-usage.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!-- <xi:include href="eXoJCR/jcr/concepts/jcr-extensions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <!--<xi:include href="eXoJCR/jcr/concepts/jcr-applications.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include
href="eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include
href="eXoJCR/jcr/concepts/nodetype-registration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!-- <xi:include
href="eXoJCR/jcr/concepts/jcr-registry-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include
href="eXoJCR/jcr/concepts/jcr-namespace-altering.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <!-- common configs -->
+ <xi:include href="eXoJCR/jcr/configuration/exo-jcr-configuration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/configuration/multilanguage-support.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/configuration/search-configuration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <!-- <xi:include
href="eXoJCR/jcr/configuration/configuration-persister.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <xi:include
href="eXoJCR/jcr/configuration/jdbc-data-container-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include
href="eXoJCR/jcr/configuration/external-value-storages.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include
href="eXoJCR/jcr/configuration/workspace-persistence-storage.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include
href="eXoJCR/jcr/configuration/rest-services-on-groovy.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+ <!-- cluster configs -->
+ <xi:include href="eXoJCR/jcr/cluster-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/jbosscache-configuration-templates.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/lock-manager-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/query-handler-config.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/jbossts-transaction-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/transaction-manager-lookup.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/repository-creation-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+
+ <!-- search -->
+ <xi:include href="eXoJCR/jcr/searching/jcr-query-usecases.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include
href="eXoJCR/jcr/searching/searching-repository-content.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include
href="eXoJCR/jcr/searching/fulltext-search-and-settings.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+
+ <!-- api extensions -->
+ <!--<xi:include href="eXoJCR/jcr/api-extensions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+
+
+ <!-- protocols -->
+ <xi:include href="eXoJCR/jcr/protocols/webdav.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/protocols/ftp.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+
+ <!-- backup -->
+ <xi:include href="eXoJCR/jcr/backup/exojcr-backup-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/backup/backup-client.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/backup/use-external-backup-tool.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+ <!-- other -->
+ <xi:include href="eXoJCR/jcr/statistics.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <xi:include href="eXoJCR/jcr/repository-check-controller.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <!--<xi:include href="eXoJCR/jcr/jta.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <!--<xi:include href="eXoJCR/jcr/jca.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <!--<xi:include href="eXoJCR/jcr/other/acl.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <!--<xi:include href="eXoJCR/jcr/other/acl-ext.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <xi:include href="eXoJCR/jcr/other/link-producer.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <!--<xi:include
href="eXoJCR/jcr/other/binary-values-processing.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+
+ <xi:include href="eXoJCR/jcr/other/jcr-resources.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+ <!-- data container configs -->
+ <xi:include href="eXoJCR/jcr/data-container.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!-- <xi:include href="eXoJCR/jcr/data-container-howto.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <xi:include href="eXoJCR/jcr/db-cleaner-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+ <!-- tuning guide
+ DOC NOTE: Could possibly be moved to a specific Tuning Guide later -->
+ <xi:include href="eXoJCR/jcr/performance-tuning-guide.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+
+ <!-- JCR Core
DOC NOTE: This section seems to include items covered elsewhere in this guide, or
things that are not relevant to EPP
- <xi:include href="eXoJCR/core.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <!-- Web
services
+ <xi:include href="eXoJCR/core.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+
+
+ <!-- Web services
DOC NOTE: Red Hat JBoss has two possible Web Services packages. No need to
document the eXo offering:
- <xi:include href="eXoJCR/ws.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <!-- GateIn
and JCR --> <xi:include href="eXoJCR/jcr-with-gatein.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- DOC NOTE: Commented FAQ section out as per advice from Philippe Aristote;
"Unfit for publication" --> <!-- <xi:include
href="eXoJCR/faq.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
-->
-</part>
+ <xi:include href="eXoJCR/ws.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+
+ <!-- GateIn and JCR -->
+ <xi:include href="eXoJCR/jcr-with-gatein.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!-- DOC NOTE: Commented FAQ section out as per advice from Philippe
Aristote; "Unfit for publication" -->
+ <!-- <xi:include href="eXoJCR/faq.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ </part>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide/publican.cfg
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/publican.cfg 2011-12-07 04:28:19 UTC (rev 8201)
+++ epp/docs/branches/5.2/Reference_Guide/publican.cfg 2011-12-07 04:31:34 UTC (rev 8202)
@@ -10,4 +10,4 @@
debug: 1
type: Book
#toc_section_depth: 10
-generate_section_toc_level: 3
\ No newline at end of file
+#generate_section_toc_level: 3
\ No newline at end of file