Author: smumford
Date: 2011-10-09 21:25:25 -0400 (Sun, 09 Oct 2011)
New Revision: 7693
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default102.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default109.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default115.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default122.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
Log:
Edits to new JCR1.14 content and updated images
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default102.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default102.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default102.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -22,4 +22,4 @@
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"
/>
</list>
- </property>
+ </property>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default109.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default109.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default109.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,30 +1,58 @@
<filter>
- <filter-name>LoginRedirectFilter</filter-name>
- <filter-class>org.gatein.sso.agent.filter.LoginRedirectFilter</filter-class>
- <init-param>
- <!-- This should point to your SSO authentication server -->
- <param-name>LOGIN_URL</param-name>
- <!-- If casRenewTicket param value of InitiateLoginServlet is: not specified or
false -->
-
<param-value>http://localhost:8888/cas/login?service=http://localhost:8080/portal/private/classic</param-value>
- <!-- If casRenewTicket param value of InitiateLoginServlet is : true -->
- <!--
<param-value>http://localhost:8888/cas/login?service=http://localhost:8080/portal/private/classic&renew=true</param-value>
-->
- </init-param>
- </filter>
- <filter>
- <filter-name>CASLogoutFilter</filter-name>
- <filter-class>org.gatein.sso.agent.filter.CASLogoutFilter</filter-class>
- <init-param>
- <!-- This should point to your JOSSO authentication server -->
- <param-name>LOGOUT_URL</param-name>
- <param-value>http://localhost:8888/cas/logout</param-value>
- </init-param>
- </filter>
- <!-- Mapping the filters at the very top of the filter chain -->
- <filter-mapping>
- <filter-name>LoginRedirectFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>CASLogoutFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
\ No newline at end of file
+ <filter-name>LoginRedirectFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.LoginRedirectFilter</filter-class>
+ <init-param>
+ <!-- This should point to your SSO authentication server -->
+ <param-name>LOGIN_URL</param-name>
+ <!-- If casRenewTicket param value of InitiateLoginServlet is: not
specified or false -->
+ <param-value>http://localhost:8888/cas/login?service=
+
http://localhost:8080/portal/initiatessologin</param-value>
+ <!-- If casRenewTicket param value of InitiateLoginServlet is : true -->
+ <!-- <param-value>http://localhost:8888/cas/login?
+
service=http://localhost:8080/portal/initiatessologin&renew=true</param-value>
+ -->
+ </init-param>
+ </filter>
+ <filter>
+ <filter-name>CASLogoutFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.CASLogoutFilter</filter-class>
+ <init-param>
+ <!-- This should point to your JOSSO authentication server -->
+ <param-name>LOGOUT_URL</param-name>
+ <param-value>http://localhost:8888/cas/logout</param-value>
+ </init-param>
+ </filter>
+ <filter>
+ <filter-name>InitiateLoginFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.InitiateLoginFilter</filter-class>
+ <init-param>
+ <param-name>ssoServerUrl</param-name>
+ <param-value>http://localhost:8888/cas</param-value>
+ </init-param>
+ <init-param>
+ <param-name>casRenewTicket</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>casServiceUrl</param-name>
+
<param-value>http://localhost:8080/portal/initiatessologin</param-value>
+ </init-param>
+ <init-param>
+ <param-name>loginUrl</param-name>
+ <param-value>http://localhost:8080/portal/dologin</param-value>
+ </init-param>
+ </filter>
+
+ <!-- Mapping the filters at the very top of the filter chain -->
+ <filter-mapping>
+ <filter-name>LoginRedirectFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+ <filter-mapping>
+ <filter-name>CASLogoutFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+ <filter-mapping>
+ <filter-name>InitiateLoginFilter</filter-name>
+ <url-pattern>/initiatessologin</url-pattern>
+ </filter-mapping>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default115.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default115.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default115.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,27 +1,44 @@
<filter>
- <filter-name>LoginRedirectFilter</filter-name>
-
<filter-class>org.gatein.sso.agent.filter.LoginRedirectFilter</filter-class>
- <init-param>
- <!-- This should point to your SSO authentication server -->
- <param-name>LOGIN_URL</param-name>
- <param-value>http://localhost:8888/josso/signon/login.do?josso_back_to=http://localhost:8080/portal/private/classic</param-value>
- </init-param>
+ <filter-name>LoginRedirectFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.LoginRedirectFilter</filter-class>
+ <init-param>
+ <!-- This should point to your SSO authentication server -->
+ <param-name>LOGIN_URL</param-name>
+ <param-value>http://localhost:8888/josso/signon/login.do?
+
josso_back_to=http://localhost:8080/portal/initiatessologin</param-value>
+ </init-param>
</filter>
<filter>
- <filter-name>JOSSOLogoutFilter</filter-name>
-
<filter-class>org.gatein.sso.agent.filter.JOSSOLogoutFilter</filter-class>
- <init-param>
- <!-- This should point to your JOSSO authentication server -->
- <param-name>LOGOUT_URL</param-name>
-
<param-value>http://localhost:8888/josso/signon/logout.do</param-value>
- </init-param>
+ <filter-name>JOSSOLogoutFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.JOSSOLogoutFilter</filter-class>
+ <init-param>
+ <!-- This should point to your JOSSO authentication server -->
+ <param-name>LOGOUT_URL</param-name>
+
<param-value>http://localhost:8888/josso/signon/logout.do</param-value>
+ </init-param>
</filter>
+ <filter>
+ <filter-name>InitiateLoginFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.InitiateLoginFilter</filter-class>
+ <init-param>
+ <param-name>ssoServerUrl</param-name>
+
<param-value>http://localhost:8888/josso/signon/login.do</param-value>
+ </init-param>
+ <init-param>
+ <param-name>loginUrl</param-name>
+ <param-value>http://localhost:8080/portal/dologin</param-value>
+ </init-param>
+ </filter>
<!-- filters should be placed at the very top of the filter chain -->
<filter-mapping>
- <filter-name>LoginRedirectFilter</filter-name>
- <url-pattern>/*</url-pattern>
+ <filter-name>LoginRedirectFilter</filter-name>
+ <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
- <filter-name>JOSSOLogoutFilter</filter-name>
- <url-pattern>/*</url-pattern>
+ <filter-name>JOSSOLogoutFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+ <filter-mapping>
+ <filter-name>InitiateLoginFilter</filter-name>
+ <url-pattern>/initiatessologin</url-pattern>
</filter-mapping>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default122.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default122.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default122.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,27 +1,49 @@
<filter>
<filter-name>LoginRedirectFilter</filter-name>
<filter-class>org.gatein.sso.agent.filter.LoginRedirectFilter</filter-class>
- <init-param>
- <!-- This should point to your SSO authentication server -->
- <param-name>LOGIN_URL</param-name>
- <param-value>http://localhost:8888/opensso/UI/Login?realm=gatein&amp;goto=http://localhost:8080/portal/private/classic</param-value>
- </init-param>
+ <init-param>
+ <!-- This should point to your SSO authentication server -->
+ <param-name>LOGIN_URL</param-name>
+ <param-value>http://localhost:8888/opensso/UI/Login?
+
realm=gatein&goto=http://localhost:8080/portal/initiatessologin</param-value>
+ </init-param>
</filter>
- <filter>
- <filter-name>OpenSSOLogoutFilter</filter-name>
-
<filter-class>org.gatein.sso.agent.filter.OpenSSOLogoutFilter</filter-class>
- <init-param>
- <!-- This should point to your OpenSSO authentication server -->
- <param-name>LOGOUT_URL</param-name>
- <param-value>http://localhost:8888/opensso/UI/Logout</param-value>
- </init-param>
- </filter>
+ <filter>
+ <filter-name>OpenSSOLogoutFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.OpenSSOLogoutFilter</filter-class>
+ <init-param>
+ <!-- This should point to your OpenSSO authentication server -->
+ <param-name>LOGOUT_URL</param-name>
+ <param-value>http://localhost:8888/opensso/UI/Logout</param-value>
+ </init-param>
+ </filter>
+ <filter>
+ <filter-name>InitiateLoginFilter</filter-name>
+
<filter-class>org.gatein.sso.agent.filter.InitiateLoginFilter</filter-class>
+ <init-param>
+ <param-name>ssoServerUrl</param-name>
+ <param-value>hhttp://localhost:8888/opensso</param-value>
+ </init-param>
+ <init-param>
+ <param-name>loginUrl</param-name>
+ <param-value>http://localhost:8080/portal/dologin</param-value>
+ </init-param>
+ <init-param>
+ <param-name>ssoCookieName</param-name>
+ <param-value>iPlanetDirectoryPro</param-value>
+ </init-param>
+ </filter>
+
<!-- place the filters at the top of the filter chain -->
<filter-mapping>
- <filter-name>LoginRedirectFilter</filter-name>
- <url-pattern>/*</url-pattern>
+ <filter-name>LoginRedirectFilter</filter-name>
+ <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>OpenSSOLogoutFilter</filter-name>
<url-pattern>/*</url-pattern>
+ </filter-mapping>
+ <filter-mapping>
+ <filter-name>InitiateLoginFilter</filter-name>
+ <url-pattern>/initiatessologin</url-pattern>
</filter-mapping>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,9 +1,8 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-
<section
id="sect-Reference_Guide-Understanding_how_configuration_files_are_loaded-Advanced_concepts_for_the_PortalContainers">
<title>Advanced concepts for the
<emphasis>PortalContainers</emphasis></title>
<para>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
@@ -47,6 +47,82 @@
<para>
The configuration you find inside the jar file is considered as the default
configuration. If you want to override this default configuration you can do it in
different places outside the jar. When the container finds several configurations for the
same service, the configuration which is found later replaces completely the one found
previously. Let's call this the <emphasis>configuration override
mechanism</emphasis>.
</para>
+ <para>
+ After deploying you find the configuration.xml file in
webapps/portal/WEB-INF/conf Use component registration tags. Let's look at the key tag
that defines the interface and the type tag that defines the implementation. Note that the
key tag is not mandatory, but it improves performance.
+ </para>
+ <programlisting language="XML" role="XML"><!--
Portlet container hooks -->
+ <component>
+
<key>org.exoplatform.services.portletcontainer.persistence.PortletPreferencesPersister</key>
+
<type>org.exoplatform.services.portal.impl.PortletPreferencesPersisterImpl</type>
+ </component></programlisting>
+ <para>
+ Register plugins that can act as listeners or external plugin to bundle some
plugin classes in other jar modules. The usual example is the hibernate service to which
we can add hbm mapping files even if those are deployed in an other maven artifact.
+ </para>
+
+<programlisting language="XML"
role="XML"><external-component-plugins>
+
<target-component>org.exoplatform.services.database.HibernateService</target-component>
+ <component-plugin>
+ <name>add.hibernate.mapping</name>
+ <set-method>addPlugin</set-method>
+
<type>org.exoplatform.services.database.impl.AddHibernateMappingPlugin</type>
+ <init-params>
+ <values-param>
+ <name>hibernate.mapping</name>
+
<value>org/exoplatform/services/portal/impl/PortalConfigData.hbm.xml</value>
+
<value>org/exoplatform/services/portal/impl/PageData.hbm.xml</value>
+
<value>org/exoplatform/services/portal/impl/NodeNavigationData.hbm.xml</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+ <para>
+ In that sample we target the HibernateService and we will call its
addPlugin() method with an argument of the type AddHibernateMappingPlugin. That object
will first have been filled with the init parameters.
+ </para>
+ <para>
+ Therefore, it is possible to define services that will be able to receive
plugins without implementing any framework interface.
+ </para>
+ <para>
+ Another example of use is the case of listeners as in the following code
where a listener is added to the OrganisationService and will be called each time a new
user is created:
+ </para>
+
+<programlisting language="XML"
role="XML"><external-component-plugins>
+
<target-component>org.exoplatform.services.organization.OrganizationService</target-component>
+ <component-plugin>
+ <name>portal.new.user.event.listener</name>
+ <set-method>addListenerPlugin</set-method>
+
<type>org.exoplatform.services.portal.impl.PortalUserEventListenerImpl</type>
+ <description>this listener create the portal configuration for the new
user</description>
+ <init-params>
+ <object-param>
+ <name>configuration</name>
+ <description>description</description>
+ <object
type="org.exoplatform.services.portal.impl.NewPortalConfig">
+ <field name="predefinedUser">
+ <collection type="java.util.HashSet">
+
<value><string>admin</string></value>
+
<value><string>exo</string></value>
+
<value><string>company</string></value>
+
<value><string>community</string></value>
+
<value><string>portal</string></value>
+
<value><string>exotest</string></value>
+ </collection>
+ </field>
+ <field
name="templateUser"><string>template</string></field>
+ <field
name="templateLocation"><string>war:/conf/users</string></field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+...</programlisting>
+ <para>
+ In the previous XML configuration, we refer the organization service and we
will call its method addListenerPlugin with an object of type PortalUserEventListenerImpl.
Each time a new user will be created (apart the predefined ones in the list above) methods
of the PortalUserEventListenerImpl will be called by the service.
+ </para>
+ <para>
+ As you can see, there are several types of init parameters, from a simple
value param which binds a key with a value to a more complex object mapping that fills a
JavaBean with the info defined in the XML.
+ </para>
+ <para>
+ Many other examples exist such as for the Scheduler Service where you can add
a job with a simple XML configuration or the JCR Service where you can add a NodeType from
your own configuration.xml file.
+ </para>
<section
id="sect-Reference_Guide-Configuration_Retrieval-RootContainer">
<title>RootContainer</title>
<para>
@@ -94,6 +170,8 @@
<para>
The further configuration retrieval depends on the container type.
</para>
+ </section>
+
<section
id="sect-Reference_Guide-Configuration_Retrieval-PortalContainer">
<title>PortalContainer</title>
<para>
@@ -147,7 +225,6 @@
</para>
</note>
- </section>
</section>
<section
id="sect-Reference_Guide-Configuration_syntax-External_Plug_ins">
@@ -622,6 +699,55 @@
</para>
</section>
</section>
+ <section id="sect-Reference_Guide-Component_Plugin_Priority">
+ <title>Component Plugin Priority</title>
+ <para>
+ Since kernel version 2.0.6 it is possible to setup order of loading for
ComponentPlugin. Use the ' <emphasis
role="bold">priority</emphasis>' tag to define plugin's load
priority. By <emphasis role="bold">default</emphasis> all plugins
get <emphasis role="bold">priority '0'</emphasis>; they will
be loaded in the container's natural way. If you want one plugin to be loaded later
than the others then just set priority for it <emphasis role="bold">higher
than zero</emphasis>.
+ </para>
+ <para>
+ Simple example of fragment of a <emphasis
role="bold">configuration.xml</emphasis>.
+ </para>
+
+<programlisting language="XML" role="XML">...
+<component>
+ <type>org.exoplatform.services.Component1</type>
+</component>
+
+<external-component-plugins>
+
<target-component>org.exoplatform.services.Component1</target-component>
+
+ <component-plugin>
+ <name>Plugin1</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.plugins.Plugin1</type>
+ <description>description</description>
+ <priority>1</priority>
+ </component-plugin>
+
+ <component-plugin>
+ <name>Plugin2</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.plugins.Plugin2</type>
+ <description>description</description>
+ <priority>2</priority>
+ </component-plugin>
+
+</external-component-plugins>
+
+<external-component-plugins>
+
<target-component>org.exoplatform.services.Component1</target-component>
+ <component-plugin>
+ <name>Plugin3</name>
+ <set-method>addPlugin</set-method>
+ <type>org.exoplatform.services.plugins.Plugin3</type>
+ <description>description</description>
+ </component-plugin>
+</external-component-plugins>
+...</programlisting>
+ <para>
+ In the above example plugin 'Plugin3' will be loaded first because it has
the default priority '0'. Then, plugin 'Plugin1' will be loaded and last
one is plugin 'Plugin2'.
+ </para>
+</section>
<section
id="sect-Reference_Guide-Miscellaneous-Configuration_Logging">
<title>Configuration Logging</title>
<para>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,9 +1,8 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-
<section
id="sect-Reference_Guide-Foundations-The_Extension_Mechanism_and_Portal_Extensions">
<title>The Extension Mechanism and Portal Extensions</title>
<para>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
@@ -43,7 +43,19 @@
<programlisting language="Java" role="Java">public ServiceA(){
this.serviceB =Container.getSInstance().getService(ServiceB.class);
}</programlisting>
-<para>
+ <para>
+ The container package is responsible of building a hierarchy of containers.
Each service will then be registered in one container or the other according to the XML
configuration file it is defined in. It is important to understand that there can be
several PortalContainer instances that all are children of the RootContainer.
+ </para>
+ <para>
+ The behavior of the hierarchy is similar to a class loader one, hence when
you will lookup a service that depends on another one, the container will look for it in
the current container and if it cannot be found, then it will look in the parent
container. That way you can load all the reusable business logic components in the same
container (here the RootContainer) and differentiate the service implementation from one
portal instance to the other by just loading different service implementations in two
sibling PortalContainers.
+ </para>
+ <para>
+ Therefore, if you look at the Portal Container as a service repository for
all the business logic in a portal instance, then you understand why several
PortalContainers allows you to manage several portals (each one deployed as a single war)
in the same server by just changing XML configuration files.
+ </para>
+ <para>
+ The default configuration XML files are packaged in the service jar. There
are three configuration.xml files, one for each container type. In that XML file, we
define the list of services and their init parameters that will be loaded in the
corresponding container.
+ </para>
+ <para>
Service components exist in two scopes. The first scope is represented by the
<literal>RootContainer</literal>. It contains services that exist
independently of any portal, and can be accessed by all portals.
</para>
<para>
@@ -72,6 +84,9 @@
</mediaobject>
</para>
+ <para>
+ As there can be several portal container instances per JVM. it is important
to be able to configure the loaded services per instance. Therefore all the default
configuration files located in the service impl jar can be overridden from the portal
war.
+ </para>
<para>
Whenever a specific service is looked up through the
<literal>PortalContainer</literal>, and the service is not available, the
lookup is delegated further up to the <literal>RootContainer</literal>.
</para>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,6 +1,6 @@
<?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 "Book_Name.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -5,16 +5,19 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-Foundations">
- <title>Foundations</title>
+ <title><remark>Foundations</remark></title>
<xi:include href="Foundations/Kernel.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/JNDI_Naming.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Config_Retrieval.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Advanced_Concepts.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Profiles.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Requests.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Configuring_Services.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Specific_Services.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Configuring_Containers.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/System_Properties.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Foundations/Extensions_And_Multiple_Portals.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Management.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</chapter>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -1,612 +1,478 @@
<?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_eXo_JCR_1.14.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM
"../../../../Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section
id="sect-Reference_Guide-JCR_Workspace_Data_Container_architecture_contract">
- <title>JCR Workspace Data Container (architecture contract)</title>
- <section
id="sect-Reference_Guide-JCR_Workspace_Data_Container_architecture_contract-Goals">
- <title>Goals</title>
+ <title>JCR Workspace Data Container</title>
+ <para>
+ The JCR Workspace Data Container:
+ </para>
<itemizedlist>
<listitem>
<para>
- Cover the requirements on Workspace Data Container implementation
+ Covers the requirements on Workspace Data Container implementation
</para>
</listitem>
<listitem>
<para>
- Describe container life cycle
+ Describes container life cycle.
</para>
</listitem>
<listitem>
<para>
- Describe relations between container and high-level DataManagers
+ Describes relations between container and high-level DataManagers
</para>
-
</listitem>
-
</itemizedlist>
-
- </section>
- <section
id="sect-Reference_Guide-JCR_Workspace_Data_Container_architecture_contract-Concepts">
- <title>Concepts</title>
- <section
id="sect-Reference_Guide-Concepts-Container_and_connection">
- <title>Container and connection</title>
- <para>
- Workspace Data Container (container) serves Repository Workspace
persistent storage. WorkspacePersistentDataManager (data manager) uses container to
perform CRUD operation on the persistent storage. Accessing to the storage in the data
manager is implemented via storage connection obtained from the container
(WorkspaceDataContainer interface implementation). Each connection represents a
transaction on the storage. Storage Connection (connection) should be an implementation of
WorkspaceStorageConnection.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Container acts as a factory of a new storage connections.
Usually, this method is designed to be synchronized to avoid possible concurrent issues.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ <variablelist>
+ <title>Concepts</title>
+ <varlistentry>
+ <term>Container and connection</term>
+ <listitem>
+ <para>
+ The Workspace Data Container (container) serves Repository
Workspace persistent storage.
+ </para>
+ <para>
+ <literal>WorkspacePersistentDataManager</literal>
(data manager) uses the container to perform <abbrev>CRUD</abbrev> (Create,
Read, Update and Delete) operations on the persistent storage.
+ </para>
+ <para>
+ Access to the storage in the data manager is implemented via
a storage connection obtained from the container
(<literal>WorkspaceDataContainer</literal> interface implementation).
+ </para>
+ <para>
+ Each connection represents a transaction on the storage.
Storage Connection (connection) should be an implementation of
<literal>WorkspaceStorageConnection</literal>.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The Container acts as a factory of a new storage
connections. Usually, this method is designed to be synchronized to avoid possible
concurrent issues.
+ </para>
<programlisting language="Java"
role="Java">WorkspaceStorageConnection openConnection() throws
RepositoryException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Open read-only WorkspaceStorageConnection. Read-only connections
can be potentially a bit faster in some cases.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
-<programlisting language="Java"
role="Java">WorkspaceStorageConnection openConnection(boolean readOnly)
throws RepositoryException;
-</programlisting>
- <note>
- <title>*EXPERIMENTAL*</title>
- <para>
- Read-only WorkspaceStorageConnection is experimental feature and not
currently handled in JCR. Actually, such connections didn't prove their performance,
so JCR Core doesn't use them.
- </para>
-
- </note>
- <itemizedlist>
- <listitem>
- <para>
- Storage connection might also be reused. This means reuse of
physical resource (e.g. JDBC Connection) allocated by one connection in another. This
feature is used in a data manager for saving ordinary and system changes on the system
Workspace. But the reuse is an optional feature and it can work, otherwise a new
connection will open.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ The Storage connection might also be reused. This
means reuse of a physical resource (JDBC Connection, for example) allocated by one
connection in another.
+ </para>
+ <para>
+ This feature is used in a data manager for saving
ordinary and system changes on the system Workspace. But the reuse is an optional feature.
If it is not used, a new connection will open.
+ </para>
<programlisting language="Java"
role="Java">WorkspaceStorageConnection
reuseConnection(WorkspaceStorageConnection original) throws RepositoryException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- When checking Same-Name Siblings (SNS) existence, JCR Core can
use new connection or not. This is defined via Workspace Data Container configuration and
retrieved by using a special method.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ When checking for the existence of
<literal>Same-Name Siblings</literal> (SNS), JCR Core can use either a new
connection or an existing one. This behaviour is defined via the Workspace Data Container
configuration and is retrieved by using the special method:
+ </para>
<programlisting language="Java" role="Java">boolean
isCheckSNSNewConnection();
</programlisting>
- <para>
- Container initialization is only based on a configuration. After the
container has been created, it's not possible to change parameters. Configuration
consists of implementation class and set of properties and Value Storages configuration.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Concepts-Value_storages">
- <title>Value storages</title>
- <para>
- Container provides optional special mechanism for Value storing. It's
possible to configure external Value Storages via container configuration (available only
via configuration). Value Storage works as fully independent pluggable storage. All
required parameters storage obtains from its configuration. Some storages are possible for
one container. Configuration describes such parameters as ValueStoragePluginimplementation
class, set of implementation specific properties and filters. The filters declares
criteria for Value matching to the storage. Only matched Property Values will be stored.
So, in common case, the storage might contains only the part of the Workspace content.
Value Storages are very useful for BLOB storing. E.g. storing on the File System instead
of a database.
- </para>
- <para>
- Container obtains Values Storages from ValueStoragePluginProvider
component. Provider acts as a factory of Value channels (ValueIOChannel). Channel provides
all CRUD operation for Value Storage respecting the transaction manner of work (how it can
be possible due to implementation specifics of the storages).
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Concepts-Lifecycle">
- <title>Lifecycle</title>
- <para>
- Container is used for read and write operations by data manager. Read
operations (getters) uses connection once and close it on the finally. Write operations
performs in commit method as a sequence of creating/ updating calls and final commit (or
rollback on error). Writes uses one connection (or two - another for system workspace) per
commit call. One connection guaranties transaction support for write operations. Commit or
rollback should free/clean all resources consumed by the container (connection).
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Concepts-Value_storage_lifecycle">
- <title>Value storage lifecycle</title>
- <para>
- Value storage is used from the container inside. Reads are related to a
container reads. Writes are commit-related. Container (connection) implementation should
use transaction capabilities of the storages in the same way as for other operations.
- </para>
-
- </section>
-
-
- </section>
-
+ </listitem>
+ <listitem>
+ <para>
+ As container initialization is based soley on a
written configuration, it is not possible to change a container's parameters after it
has been created. This configuration consists of implementation class(s) and a set of
properties and Value Storages configuration.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Value storages</term>
+ <listitem>
+ <para>
+ The container provides an optional special mechanism for
<emphasis role="bold">Value</emphasis> storing. It is possible to
configure external Value Storages via the container configuration.
+ </para>
+ <para>
+ Value Storage works as fully independent pluggable storage
(however some storages are possible for a single container). All required parameters are
obtained from the configuration, including the
<literal>ValueStoragePluginimplementation</literal> class and a set of
implementation specific properties and filters.
+ </para>
+ <para>
+ Filters declare criteria which dictate what Values are
stored. This means that the storage might only contain some of the Workspace content.
+ </para>
+ <para>
+ The container obtains Values from Storages with the
<literal>ValueStoragePluginProvider</literal> component. This component acts
as a factory of Value channels (<literal>ValueIOChannel</literal>). Value
Channels provide all CRUD operations for Value Storage, while respecting the transaction
manner of work (based on implementation specifics of the storages).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Lifecycle</term>
+ <listitem>
+ <para>
+ The Container is used for
<emphasis>read</emphasis> and <emphasis>write</emphasis>
operations by the data manager.
+ </para>
+ <para>
+ Read operations (<emphasis>getters</emphasis>)
use the connection once and then closes it.
+ </para>
+ <para>
+ Write operations use the commit method as a sequence of
creating and/or updating calls and the final commit (or rollback if an error is
encountered). Writes use one connection (plus one for the system workspace) per commit
call. One connection guarantees transaction support for write operations. The commit or
rollback action should free and/or clean all resources consumed by the container
(connection).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Value storage lifecycle</term>
+ <listitem>
+ <para>
+ Value storage is used from within the container.
<emphasis>Read</emphasis> actions are related to container reads while
<emphasis>write</emphasis> actions are commit-related. The container
(connection) implementation should use transaction capabilities of the storages in the
same way as for other operations.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
<section
id="sect-Reference_Guide-JCR_Workspace_Data_Container_architecture_contract-Requirements">
<title>Requirements</title>
<para>
- Connection creation and reuse should be a thread safe operation. Connection
provides CRUD operations support on the storage.
+ Connection creation and reuse should be a thread safe operation. The
connection provides <abbrev>CRUD</abbrev> operations support on the storage.
</para>
- <section
id="sect-Reference_Guide-Requirements-Read_operations">
+ <itemizedlist>
<title>Read operations</title>
- <itemizedlist>
<listitem>
<para>
- Read ItemData from the storage by item identifier.
+ Read <literal>ItemData</literal> from the storage by
item identifier.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">ItemData
getItemData(String identifier) throws RepositoryException, IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Read ItemData from the storage by using the parent and name of
the item, related to the parent location.
+ Read <literal>ItemData</literal> from the storage by
using the parent and name of the item, related to the parent location.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">ItemData
getItemData(NodeData parentData, QPathEntry name) throws
RepositoryException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Read List of NodeData from the storage by using the parent
location of the item.
+ Read List of <literal>NodeData</literal> from the
storage by using the parent location of the item.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java"
role="Java">List<NodeData> getChildNodesData(NodeData parent)
throws RepositoryException, IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Reads List of PropertyData from the storage by using the parent
location of the item.
+ Read List of <literal>PropertyData</literal> from the
storage by using the parent location of the item.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java"
role="Java">List<PropertyData> getChildPropertiesData(NodeData
parent) throws RepositoryException, IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Reads List of PropertyData with empty ValueData from the storage
by using the parent location of the item.
+ Read List of <literal>PropertyData</literal> with
empty <literal>ValueData</literal> from the storage by using the parent
location of the item.
</para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- This method specially dedicated for non-content modification operations
(e.g. Items delete).
- </para>
-
+ <para>
+ This method is specifically dedicated to non-content modification
operations (Items delete, for example).
+ </para>
<programlisting language="Java"
role="Java">List<PropertyData> listChildPropertiesData(NodeData
parent) throws RepositoryException, IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Reads List of PropertyData from the storage by using the parent
location of the item.
+ Read List of <literal>PropertyData</literal> from the
storage by using the parent location of the item.
</para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- It's REFERENCE type: Properties referencing Node with given
nodeIdentifier. See more in javax.jcr.Node.getReferences()
- </para>
-
+ <para>
+ It's REFERENCE type: Properties referencing Node with given
<literal>nodeIdentifier</literal>. See more in
<literal>javax.jcr.Node.getReferences()</literal>
+ </para>
<programlisting language="Java"
role="Java">List<PropertyData> getReferencesData(String
nodeIdentifier) throws
RepositoryException,IllegalStateException,UnsupportedOperationException;
</programlisting>
-
- </section>
+ </listitem>
+ </itemizedlist>
- <section
id="sect-Reference_Guide-Requirements-Write_operations">
+ <itemizedlist>
<title>Write operations</title>
- <itemizedlist>
<listitem>
<para>
- Add single NodeData.
+ Add single <literal>NodeData</literal>.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void add(NodeData
data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Add single PropertyData.
+ Add single <literal>PropertyData</literal>.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void
add(PropertyData data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Update NodeData.
+ Update <literal>NodeData</literal>.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void
update(NodeData data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Update PropertyData.
+ Update <literal>PropertyData</literal>.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void
update(PropertyData data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Rename NodeData by using Node identifier and new name and
indexing from the data.
+ Rename <literal>NodeData</literal> by using Node
identifier and new name and indexing from the data.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void
rename(NodeData data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Delete NodeData.
+ Delete <literal>NodeData</literal>.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void
delete(NodeData data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
- Delete PropertyData.
+ Delete <literal>PropertyData</literal>.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void
delete(PropertyData data) throws
RepositoryException,UnsupportedOperationException,InvalidItemStateException,IllegalStateException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
Persist changes and closes connection. It can be database
transaction commit for instance etc.
</para>
-
- </listitem>
-
- </itemizedlist>
-
<programlisting language="Java" role="Java">void commit()
throws IllegalStateException, RepositoryException;
</programlisting>
- <itemizedlist>
+ </listitem>
<listitem>
<para>
Refuse persistent changes and closes connection. It can be
database transaction rollback for instance etc.
</para>
-
+<programlisting language="Java" role="Java">void rollback()
throws IllegalStateException, RepositoryException;
+</programlisting>
+ <para>
+ All methods throw
<literal>IllegalStateException</literal> if the connection is closed,
<literal>UnsupportedOperationException</literal> if the method is not
supported and <literal>RepositoryException</literal> if some errors occur
during preparation, validation or persistence.
+ </para>
</listitem>
-
</itemizedlist>
-<programlisting language="Java" role="Java">void rollback()
throws IllegalStateException, RepositoryException;
-</programlisting>
- <para>
- All methods throw IllegalStateException if connection is closed.
UnsupportedOperationException if the method is not supported (e.g. JCR Level 1
implementation etc). RepositoryException if some errors occur during preparation,
validation or persistence.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Requirements-State_operations">
+ <itemizedlist>
<title>State operations</title>
- <itemizedlist>
<listitem>
<para>
Return true if connection can be used.
</para>
-
+<programlisting language="Java" role="Java">boolean
isOpened();
+</programlisting>
</listitem>
</itemizedlist>
-
-<programlisting language="Java" role="Java">boolean
isOpened();
-</programlisting>
- </section>
-
- <section
id="sect-Reference_Guide-Requirements-Validation_of_write_operations">
+ <itemizedlist>
<title>Validation of write operations</title>
- <para>
- Container has to care about storage consistency (JCR constraints) on
write operations: (InvalidItemStateException should be thrown according the spec). At
least, the following checks should be performed:
- </para>
- <itemizedlist>
<listitem>
<para>
- On ADD errors
+ As the container has to care about storage consistency (JCR
constraints) on write operations: (InvalidItemStateException should be thrown according
the spec). At least, the following checks should be performed:
</para>
- <itemizedlist>
- <listitem>
- <para>
- Parent not found. Condition: Parent ID (Item with ID is
not exists).
- </para>
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <title>On ADD errors</title>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Parent not found. Condition: Parent ID (Item with
ID is not exists).
+ </para>
- </listitem>
- <listitem>
- <para>
- Item already exists. Condition: ID (Item with ID already
exists).
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Item already exists. Condition: ID (Item with ID
already exists).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Item already exists. Condition: Parent ID, Name,
Index (Item with parent ID, name and index already exists).
+ </para>
+ </listitem>
+ </itemizedlist>
</listitem>
- <listitem>
- <para>
- Item already exists. Condition: Parent ID, Name, Index
(Item with parent ID, name and index already exists).
- </para>
-
- </listitem>
-
</itemizedlist>
-
</listitem>
-
- </itemizedlist>
- <itemizedlist>
<listitem>
- <para>
- On DELETE errors
- </para>
<itemizedlist>
+ <title>On DELETE errors</title>
<listitem>
- <para>
- Item not found. Condition ID.
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Item not found. Condition ID.
+ </para>
- </listitem>
- <listitem>
- <para>
- Can not delete parent till children exists.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Can not delete parent till children exists.
+ </para>
+ </listitem>
+ </itemizedlist>
</listitem>
-
</itemizedlist>
-
</listitem>
-
- </itemizedlist>
- <itemizedlist>
<listitem>
- <para>
- On UPDATE errors
- </para>
<itemizedlist>
+ <title>On UPDATE errors</title>
<listitem>
- <para>
- Item not found. Condition ID.
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Item not found. Condition ID.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Item already exists with higher Version.
Condition: ID, Version (Some Session had updated Item with ID prior this update).
+ </para>
+ </listitem>
+ </itemizedlist>
</listitem>
- <listitem>
- <para>
- Item already exists with higher Version. Condition: ID,
Version (Some Session had updated Item with ID prior this update).
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-Requirements-Consistency_of_save">
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
<title>Consistency of save</title>
- <para>
- The container (connection) should implement consistency of Commit
(Rollback) in <emphasis role="bold">transaction manner</emphasis>.
I.e. If a set of operations was performed <emphasis
role="bold">before</emphasis> the future <emphasis
role="bold">Commit</emphasis> and another next operation <emphasis
role="bold">fails</emphasis>. <emphasis role="bold">It
should be possible to</emphasis> rollback applied changes using <emphasis
role="bold">Rollback</emphasis> command.
- </para>
-
- </section>
+ <listitem>
+ <para>
+ The container (connection) should implement consistency of Commit
(Rollback) in <emphasis role="bold">transaction manner</emphasis>.
I.e. If a set of operations was performed <emphasis
role="bold">before</emphasis> the future <emphasis
role="bold">Commit</emphasis> and another next operation <emphasis
role="bold">fails</emphasis>. <emphasis role="bold">It
should be possible to</emphasis> rollback applied changes using <emphasis
role="bold">Rollback</emphasis> command.
+ </para>
+ </listitem>
+ </itemizedlist>
-
- </section>
-
- <section
id="sect-Reference_Guide-JCR_Workspace_Data_Container_architecture_contract-Value_storages_API">
- <title>Value storages API</title>
- <section
id="sect-Reference_Guide-Value_storages_API-Storages_provider">
- <title>Storages provider:</title>
- <para>
- Container implementation obtains Values Storages option via
ValueStoragePluginProvider component. Provider acts as a factory of Value channels
(ValueIOChannel) and has two methods for this purpose:
- </para>
+ <itemizedlist>
+ <title>Value storages API</title>
+ <listitem>
<itemizedlist>
- <listitem>
- <para>
- Return ValueIOChannel matched this property and valueOrderNumer.
Null will be returned if no channel matches.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ <title>Storages provider:</title>
+ <listitem>
+ <para>
+ Container implementation obtains Values Storages option via
ValueStoragePluginProvider component. Provider acts as a factory of Value channels
(ValueIOChannel) and has two methods for this purpose:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Return ValueIOChannel matched this property and
valueOrderNumer. Null will be returned if no channel matches.
+ </para>
<programlisting language="Java" role="Java">ValueIOChannel
getApplicableChannel(PropertyData property, int valueOrderNumer) throws IOException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Return ValueIOChannel associated with given storageId.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ Return ValueIOChannel associated with given
storageId.
+ </para>
<programlisting language="Java" role="Java">ValueIOChannel
getChannel(String storageId) throws IOException, ValueStorageNotFoundException;
</programlisting>
- <para>
- There is also method for consistency check, but this method doesn't
used anywhere and storage implementations has it empty.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Value_storages_API-Value_storage_plugin">
- <title>Value storage plugin</title>
- <para>
- Provider implementation should use ValueStoragePlugin abstract class as a
base for all storage implementations. Plugin provides support for provider implementation
methods. Plugin's methods should be implemented:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Initialize this plugin. Used at start time in
ValueStoragePluginProvider.
- </para>
-
- </listitem>
-
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ There is also method for consistency check, but this method
doesn't used anywhere and storage implementations has it empty.
+ </para>
+ </listitem>
</itemizedlist>
-
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <title>Value storage plugin</title>
+ <listitem>
+ <para>
+ Provider implementation should use ValueStoragePlugin
abstract class as a base for all storage implementations. Plugin provides support for
provider implementation methods. Plugin's methods should be implemented:
+ </para>
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Initialize this plugin. Used at start time in
ValueStoragePluginProvider.
+ </para>
<programlisting language="Java" role="Java">public abstract
void init(Properties props, ValueDataResourceHolder resources) throws
RepositoryConfigurationException, IOException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Open ValueIOChannel.Used in
ValueStoragePluginProvider.getApplicableChannel(PropertyData, int) and getChannel(String)
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ Open ValueIOChannel.Used in
ValueStoragePluginProvider.getApplicableChannel(PropertyData, int) and getChannel(String)
+ </para>
<programlisting language="Java" role="Java">public abstract
ValueIOChannel openIOChannel() throws IOException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Return true if this storage has the same storageId.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ Return true if this storage has the same storageId.
+ </para>
<programlisting language="Java" role="Java">public abstract
boolean isSame(String valueDataDescriptor);
</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Value_storages_API-Value_IO_channel">
- <title>Value I/O channel</title>
- <para>
- Channel should implement ValueIOChannel interface. CRUD operation for
Value Storage:
- </para>
- <itemizedlist>
- <listitem>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <title>Value I/O channel</title>
+ <listitem>
<para>
- Read Property value.
+ Channel should implement ValueIOChannel interface. CRUD operation
for Value Storage:
</para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Read Property value.
+ </para>
<programlisting language="Java" role="Java">ValueData
read(String propertyId, int orderNumber, int maxBufferSize) throws IOException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Add or update Property value.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ Add or update Property value.
+ </para>
<programlisting language="Java" role="Java">void write(String
propertyId, ValueData data) throws IOException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Delete Property all values.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ Delete Property all values.
+ </para>
<programlisting language="Java" role="Java">void delete(String
propertyId) throws IOException;
</programlisting>
-
- </section>
-
- <section
id="sect-Reference_Guide-Value_storages_API-Transaction_support_via_channel">
- <title>Transaction support via channel</title>
- <para>
- Modification operations should be applied only when committing. Rollback
is required for data created cleanup.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Commit channel changes.
- </para>
-
- </listitem>
-
+ </listitem>
+ </itemizedlist>
+ </listitem>
</itemizedlist>
-
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <title>Transaction support via channel</title>
+ <listitem>
+ <para>
+ Modification operations should be applied only when
committing. Rollback is required for data created cleanup.
+ </para>
+ </listitem>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Commit channel changes.
+ </para>
<programlisting language="Java" role="Java">void commit()
throws IOException;
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Rollback channel changes.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
+ </listitem>
+ <listitem>
+ <para>
+ Rollback channel changes.
+ </para>
<programlisting language="Java" role="Java">void rollback()
throws IOException;
</programlisting>
-
- </section>
-
-
- </section>
-
-</section>
-
-
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+</section>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -6,34 +6,35 @@
<section id="sect-Reference_Guide-FTP">
<title>FTP</title>
<section id="sect-Reference_Guide-FTP-Introduction">
- <title>Introdution</title>
+ <title>Introduction</title>
<para>
- The JCR-FTP Server represents the standard eXo service, operates as an FTP
server with an access to a content stored in JCR repositories in the form of <emphasis
role="bold">nt:file/nt:folder</emphasis> nodes or their successors. The
client of an executed Server can be any FTP client. The FTP server is supported by a
standard configuration which can be changed as required.
+ The JCR-FTP Server operates as an FTP server with access to a content stored
in JCR repositories in the form of <emphasis
role="bold">nt:file/nt:folder</emphasis> nodes or their successors. The
client of an executed Server can be any FTP client. The FTP server is supported by a
standard configuration which can be changed as required.
</para>
</section>
<section id="sect-Reference_Guide-FTP-Configuration_Parameters">
<title>Configuration Parameters</title>
- <section
id="sect-Reference_Guide-Configuration_Parameters-command_port">
- <title>command-port:</title>
-
+ <variablelist>
+ <title>Parameters</title>
+ <varlistentry>
+ <term>command-port:</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>command-port</name>
<value>21</value>
</value-param></programlisting>
- <para>
- The value of the command channel port. The value '21' is
default.
- </para>
- <para>
- When you have already some FTP server installed in your system , this
parameter needs to be changed (2121 for example) to avoid conflicts or if the port is
protected.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-data_min_port_amp_data_max_port">
- <title>data-min-port & data-max-port</title>
-
+ <para>
+ The value of the command channel port. The value
'<literal>21</literal>' is default.
+ </para>
+ <para>
+ If you have already other FTP server installed in your
system, this parameter needs to be changed (to <literal>2121</literal>, for
example) to avoid conflicts or if the port is protected.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>data-min-port & data-max-port</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>data-min-port</name>
<value>52000</value>
@@ -43,15 +44,14 @@
<name>data-max-port</name>
<value>53000</value>
</value-param></programlisting>
- <para>
- These two parameters indicate the minimal and maximal values of the range
of ports, used by the server. The usage of the additional data channel is required by the
FTP - protocol, which is used to transfer the contents of files and the listing of
catalogues. This range of ports should be free from listening by other server-programs.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-system">
- <title>system</title>
-
+ <para>
+ These two parameters indicate the minimum and maximum
values of the range of ports, used by the server. The usage of the additional data channel
is required by the FTP protocol, which is used to transfer the contents of files and the
listing of catalogues. This range of ports should be free from listening by other
server-programs.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>system</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>system</name>
@@ -59,15 +59,14 @@
or
<value>UNIX Type: L8</value>
</value-param></programlisting>
- <para>
- Types of formats of listing of catalogues which are supported.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-client_side_encoding">
- <title>client-side-encoding</title>
-
+ <para>
+ Types of formats of listing of catalogues which are
supported.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>client-side-encoding</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>client-side-encoding</name>
@@ -76,104 +75,97 @@
<value>KOI8-R</value>
</value-param></programlisting>
- <para>
- This parameter specifies the coding which is used for dialogue with the
client.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-def_folder_node_type">
- <title>def-folder-node-type</title>
-
+ <para>
+ This parameter specifies the coding which is used for
dialogue with the client.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>def-folder-node-type</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>def-folder-node-type</name>
<value>nt:folder</value>
</value-param></programlisting>
- <para>
- This parameter specifies the type of a node, when an FTP-folder is
created.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-def_file_node_type">
- <title>def-file-node-type</title>
-
+ <para>
+ This parameter specifies the type of a node, when an
FTP-folder is created.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>def-file-node-type</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>def-file-node-type</name>
<value>nt:file</value>
</value-param></programlisting>
- <para>
- This parameter specifies the type of a node, when an FTP - file is
created.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-def_file_mime_type">
- <title>def-file-mime-type</title>
-
+ <para>
+ This parameter specifies the type of a node, when an
FTP-file is created.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>def-file-mime-type</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>def-file-mime-type</name>
<value>application/zip</value>
</value-param></programlisting>
- <para>
- The mime type of a created file is chosen by using its file extention. In
case, a server cannot find the corresponding mime type, this value is used.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-cache_folder_name">
- <title>cache-folder-name</title>
-
+ <para>
+ The mime type of a created file is chosen by using its
file extention. In case, a server cannot find the corresponding mime type, this value is
used.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cache-folder-name</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>cache-folder-name</name>
<value>../temp/ftp_cache</value>
</value-param></programlisting>
- <para>
- The Path of the cache folder.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-upload_speed_limit">
- <title>upload-speed-limit</title>
-
+ <para>
+ The Path of the cache folder.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>upload-speed-limit</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>upload-speed-limit</name>
<value>20480</value>
</value-param></programlisting>
- <para>
- Restriction of the upload speed. It is measured in bytes.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-download_speed_limit">
- <title>download-speed-limit</title>
-
+ <para>
+ Restriction of the upload speed. It is measured in
bytes.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>download-speed-limit</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>download-speed-limit</name>
<value>20480</value>
</value-param></programlisting>
- <para>
- Restriction of the download speed. It is measured in bytes.
- </para>
-
- </section>
-
- <section
id="sect-Reference_Guide-Configuration_Parameters-timeout">
- <title>timeout</title>
-
+ <para>
+ Restriction of the download speed. It is measured in
bytes.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>timeout</term>
+ <listitem>
<programlisting language="XML"
role="XML"><value-param>
<name>timeout</name>
<value>60</value>
</value-param></programlisting>
- <para>
- Defines the value of a timeout.
- </para>
+ <para>
+ Defines the value of a timeout.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
- </section>
-
-
</section>
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -6,28 +6,17 @@
<section id="sect-Reference_Guide-WebDAV">
<!-- This document was created with Syntext Serna Free. -->
<title>WebDAV</title>
- <section id="sect-Reference_Guide-WebDAV-Related_documents">
- <title>Related documents</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref
linkend="sect-Reference_Guide-Link_Producer_Service" />
- </para>
- </listitem>
- </itemizedlist>
-
- </section>
-
+
<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 HTTP. It is
possible to add and remove documents or a set of documents from a path on the server.
+ 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. Locking 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.
+ <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 DAVExplorer or
Internet Explorer using
<menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>
as a Web Folder.
+ 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:
@@ -39,14 +28,14 @@
When accessing the WebDAV server via <ulink type="http"
url="http://localhost:8080/rest/jcr/repository/production"></ulink>,
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 and password. Those 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.
+ 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>
- <remark>DOCS NOTE: I have no idea what this means!</remark>
<programlisting>exo-domain {
org.exoplatform.services.security.jaas.BasicLoginModule required domain=ecm;
};</programlisting>
@@ -145,76 +134,6 @@
</section>
- <!-- Removed as possibly inappropriate for RH documentation
- <section id="sect-Reference_Guide-WebDAV-Screenshots">
- <title>Screenshots</title>
- <para>
- At present, eXo JCR WebDav server is tested by using MS Internet Explorer,
<ulink
url="http://www.ics.uci.edu/~webdav">Dav Explorer</ulink>,
<ulink
url="http://www.xythos.com/home/xythos/products/xythos_drive.html&qu...
Drive</ulink>, Microsoft Office 2003 (as client), and Ubuntu Linux.
- </para>
- <section
id="sect-Reference_Guide-Screenshots-MS_Internet_Explorer">
- <title>MS Internet Explorer</title>
- <para>
- (File -> Open as Web Folder)
- </para>
- <mediaobject>
- <imageobject>
- <imagedata
fileref="images/eXoJCR/protocols/webdav_explorer.jpg" width="444"
/>
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Dav_Explorer">
- <title>Dav Explorer</title>
- <mediaobject>
- <imageobject>
- <imagedata
fileref="images/eXoJCR/protocols/webdav_davexplorer.jpg" width="444"
/>
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Xythos_Drive">
- <title>Xythos Drive</title>
- <mediaobject>
- <imageobject>
- <imagedata
fileref="images/eXoJCR/protocols/webdav_xythosdrive.jpg" width="444"
/>
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section
id="sect-Reference_Guide-Screenshots-Microsoft_Office_2003">
- <title>Microsoft Office 2003</title>
- <para>
- (as client) (File->Open with typing http://... href in the file
name box)
- </para>
- <mediaobject>
- <imageobject>
- <imagedata
fileref="images/eXoJCR/protocols/webdav_msoffice2003.jpg" width="444"
/>
- </imageobject>
-
- </mediaobject>
-
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Ubuntu_Linux">
- <title>Ubuntu Linux</title>
- <mediaobject>
- <imageobject>
- <imagedata
fileref="images/eXoJCR/protocols/webdav_ubuntulinux.jpg" width="444"
/>
- </imageobject>
-
- </mediaobject>
-
- </section>
-
-
- </section> -->
-
<section
id="sect-Reference_Guide-WebDAV-Comparison_table_of_WebDav_and_JCR_commands">
<title>Corresponding WebDav and JCR actions</title>
<table>
@@ -411,13 +330,14 @@
<section id="sect-Reference_Guide-WebDAV-WebDAV_Considerations">
<title>WebDAV Considerations</title>
<para>
- There are some restrictions for WebDAV in different Operating systems.
+ There are some restrictions for WebDAV in different operating systems.
</para>
- <section id="sect-Reference_Guide-Restrictions-Windows_7">
+ <formalpara>
<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>
+ </formalpara>
<para>
To fix this, do as follows:
</para>
@@ -440,32 +360,32 @@
</para>
</listitem>
</orderedlist>
- </section>
- <section
id="sect-Reference_Guide-Restrictions-Microsoft_Office_2010">
+ <formalpara>
<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...
+ 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...
+ 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...
+ 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.
+ You try to access an Office file that is stored on the remote
server...
</para>
</listitem>
<listitem>
@@ -501,7 +421,7 @@
<orderedlist>
<listitem>
<para>
- Click Start, type regedit in the Start Search box, and then press
Enter.
+ Click Start, type <literal>regedit</literal> in the
Start Search box, and then press Enter.
</para>
</listitem>
@@ -510,31 +430,31 @@
Locate and then click the following registry subkey:
</para>
<para>
- HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet
+
<envar>HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet</envar>
</para>
</listitem>
<listitem>
<para>
- On the Edit menu, point to New, and then click DWORD Value.
+ On the <guilabel>Edit</guilabel> menu, point to
<guilabel>New</guilabel>, and then click <guilabel>DWORD
Value</guilabel>.
</para>
</listitem>
<listitem>
<para>
- Type BasicAuthLevel, and then press Enter.
+ Type <literal>BasicAuthLevel</literal>, and then
press <keycap>Enter</keycap>.
</para>
</listitem>
<listitem>
<para>
- Right-click BasicAuthLevel, and then click Modify.
+ Right-click <literal>BasicAuthLevel</literal>, and
then click <guilabel>Modify</guilabel>.
</para>
</listitem>
<listitem>
<para>
- In the Value data box, type 2, and then click OK.
+ In the Value data box, type <literal>2</literal>, and
then click <guilabel>OK</guilabel>.
</para>
</listitem>
@@ -542,10 +462,5 @@
</orderedlist>
</section>
-
- </section>
-
-</section>
-
-
+</section>
\ No newline at end of file
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -11,19 +11,19 @@
<!--<xi:include href="kernel/service-configuration-in-detail.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
<!--<xi:include href="kernel/container-configuration.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
<!--<xi:include href="kernel/inversion-of-control.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
- <xi:include href="kernel/services-wiring.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/component-plugin-priority.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/understanding-listnerservice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/initialcontext-binder-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/job-scheduler-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/cache.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/transaction-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/data-source-provider.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/jndi-naming.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/logging.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/manageability.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/listener-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="kernel/rpc-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!--<xi:include href="kernel/services-wiring.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/component-plugin-priority.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/understanding-listnerservice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/initialcontext-binder-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/job-scheduler-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--JBoss Cache<xi:include href="kernel/cache.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--JBoss Transaction Service <xi:include
href="kernel/transaction-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/data-source-provider.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/jndi-naming.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--Seems like a Standalone issue <xi:include
href="kernel/logging.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"
/>-->
+ <!--<xi:include href="kernel/manageability.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--<xi:include href="kernel/listener-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
+ <!--Cluster <xi:include href="kernel/rpc-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
</section>
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -4,7 +4,7 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide-eXo_JCR">
- <title>eXo JCR</title>
+ <title><remark>eXo JCR</remark></title>
<xi:include href="eXoJCR/jcr.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<!--<xi:include href="eXoJCR/kernel.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
<!--<xi:include href="eXoJCR/core.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />-->
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
---
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-10-10
01:24:38 UTC (rev 7692)
+++
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-10-10
01:25:25 UTC (rev 7693)
@@ -4,7 +4,7 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-SSO_Single_Sign_On">
- <title>SSO - Single Sign On</title>
+ <title><remark>SSO - Single Sign On</remark></title>
<section id="sect-Reference_Guide-SSO_Single_Sign_On-Overview">
<title>Overview</title>
<para>
@@ -548,12 +548,13 @@
<para>
Tomcat should start without issue and should be accessible at
<ulink type="http"
url="http://localhost:8888/cas">http://localhost:8888/cas</ulink>.
</para>
+ <!--Removed in gatein commit r7620:
<note>
<para>
At this stage the login functionality will not be available.
</para>
- </note>
+ </note>-->
<mediaobject>
<imageobject>
<imagedata
fileref="images/AuthenticationAndIdentity/SSO/cas.png" format="PNG"
scale="100" width="444" />
@@ -562,9 +563,23 @@
</mediaobject>
</step>
-
</procedure>
-
+ <!--Added in gatein commit r7620 -->
+ <note>
+ <remark>Added in gatein commit r7620</remark>
+ <para>
+ By default on logout the CAS server will display the CAS logout page
with a link to return to the portal. To make the CAS server redirect to the portal page
after a logout, modify the
+
<filename>cas.war/WEB-INF/cas-servlet.xml</filename> to include the follow
line :
+ </para>
+<programlisting>
+<bean id="logoutController"
class="org.jasig.cas.web.LogoutController"
+
p:centralAuthenticationService-ref="centralAuthenticationService"
+ p:logoutView="casLogoutView"
+ p:warnCookieGenerator-ref="warnCookieGenerator"
+
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
+ p:followServiceRedirects="true"/>
+</programlisting>
+ </note>
<procedure
id="proc-Reference_Guide-CAS_Central_Authentication_Service-Setup_the_CAS_client">
<title>Setup the CAS client</title>
<step>
@@ -645,15 +660,15 @@
<para>
Add the following Filters at the top of the filter chain in
<filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>:
</para>
-
+<remark>DOC NOTE: Please check code sample as updated according to gatein
r7620</remark>
<programlisting language="XML" role="XML"><xi:include
href="../../extras/Authentication_Identity_SSO/default109.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
</step>
<step>
- <para>
- Replace the <literal>InitiateLoginServlet</literal>
declaration in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>
with:
- </para>
-
+ <remark> This step removed in gatein r7620. Should it be removed
here?</remark>
+ <para>
+ Replace the <literal>InitiateLoginServlet</literal>
declaration in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>
with:
+ </para>
<programlisting language="XML" role="XML"><xi:include
href="../../extras/Authentication_Identity_SSO/default110.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
</step>
@@ -841,11 +856,12 @@
<para>
Add the following Filters to the top of the filter chain in
<filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>:
</para>
-
+<remark>DOC NOTE: Please check code sample as updated according to gatein
r7647</remark>
<programlisting language="XML" role="XML"><xi:include
href="../../extras/Authentication_Identity_SSO/default115.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
</step>
<step>
+ <remark> This step removed in gatein r7647. Should it be removed
here?</remark>
<para>
Replace the <literal>InitiateLoginServlet</literal>
declaration in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>
with:
</para>
@@ -880,17 +896,15 @@
<title>Obtaining OpenSSO</title>
<step>
<para>
- Download OpenSSO from <ulink type="http"
url="https://opensso.dev.java.net/public/use/index.html">htt...;.
+ OpenSSO must be purchased from Oracle.
</para>
</step>
- <step>
+ <!--<step>
<para>
Extract the package into a suitable location. This location will be
referred to as <filename>OPENSSO_HOME</filename> in this example.
</para>
-
- </step>
-
+ </step>-->
</procedure>
<para>
@@ -1194,11 +1208,12 @@
<para>
Add the following Filters to the top of the filter chain in
<filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>:
</para>
-
+<remark>DOC NOTE: Please check code sample as updated according to gatein
r7620</remark>
<programlisting language="XML" role="XML"><xi:include
href="../../extras/Authentication_Identity_SSO/default122.xml"
parse="text"
xmlns:xi="http://www.w3.org/2001/XInclude"
/></programlisting>
</step>
<step>
+ <remark> This step removed in gatein r7647. Should it be removed
here?</remark>
<para>
Replace the <literal>InitiateLoginServlet</literal>
declaration in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>
with:
</para>