gatein SVN: r7977 - in components/sso/trunk: agent and 12 other directories.
by do-not-reply@jboss.org
Author: mposolda
Date: 2011-11-04 06:48:29 -0400 (Fri, 04 Nov 2011)
New Revision: 7977
Modified:
components/sso/trunk/agent/pom.xml
components/sso/trunk/auth-callback/pom.xml
components/sso/trunk/cas/gatein-cas-plugin/pom.xml
components/sso/trunk/cas/gatein-cas-portal/pom.xml
components/sso/trunk/cas/pom.xml
components/sso/trunk/josso/gatein-josso-plugin/pom.xml
components/sso/trunk/josso/gatein-josso-portal/pom.xml
components/sso/trunk/josso/pom.xml
components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml
components/sso/trunk/opensso/gatein-opensso-portal/pom.xml
components/sso/trunk/opensso/pom.xml
components/sso/trunk/packaging/pom.xml
components/sso/trunk/pom.xml
components/sso/trunk/spnego/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: components/sso/trunk/agent/pom.xml
===================================================================
--- components/sso/trunk/agent/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/agent/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/auth-callback/pom.xml
===================================================================
--- components/sso/trunk/auth-callback/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/auth-callback/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/gatein-cas-plugin/pom.xml
===================================================================
--- components/sso/trunk/cas/gatein-cas-plugin/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/cas/gatein-cas-plugin/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/gatein-cas-portal/pom.xml
===================================================================
--- components/sso/trunk/cas/gatein-cas-portal/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/cas/gatein-cas-portal/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/pom.xml
===================================================================
--- components/sso/trunk/cas/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/cas/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<name>GateIn SSO - CAS</name>
Modified: components/sso/trunk/josso/gatein-josso-plugin/pom.xml
===================================================================
--- components/sso/trunk/josso/gatein-josso-plugin/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/josso/gatein-josso-plugin/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/josso/gatein-josso-portal/pom.xml
===================================================================
--- components/sso/trunk/josso/gatein-josso-portal/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/josso/gatein-josso-portal/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/josso/pom.xml
===================================================================
--- components/sso/trunk/josso/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/josso/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
Modified: components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml
===================================================================
--- components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/opensso/gatein-opensso-portal/pom.xml
===================================================================
--- components/sso/trunk/opensso/gatein-opensso-portal/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/opensso/gatein-opensso-portal/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/opensso/pom.xml
===================================================================
--- components/sso/trunk/opensso/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/opensso/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
Modified: components/sso/trunk/packaging/pom.xml
===================================================================
--- components/sso/trunk/packaging/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/packaging/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/pom.xml
===================================================================
--- components/sso/trunk/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
@@ -25,9 +25,9 @@
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/sso/tags/sso-par...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/sso/tags/sso-parent...</developerConnection>
- <url>http://fisheye.jboss.org/browse/gatein/components/sso/tags/sso-parent-1.1...</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/sso/trunk</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/sso/trunk</developerConnection>
+ <url>http://fisheye.jboss.org/browse/gatein/components/sso/trunk</url>
</scm>
Modified: components/sso/trunk/spnego/pom.xml
===================================================================
--- components/sso/trunk/spnego/pom.xml 2011-11-04 10:48:19 UTC (rev 7976)
+++ components/sso/trunk/spnego/pom.xml 2011-11-04 10:48:29 UTC (rev 7977)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA</version>
+ <version>1.1.1-CR01-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
13 years, 2 months
gatein SVN: r7976 - components/sso/tags.
by do-not-reply@jboss.org
Author: mposolda
Date: 2011-11-04 06:48:19 -0400 (Fri, 04 Nov 2011)
New Revision: 7976
Added:
components/sso/tags/sso-parent-1.1.0-GA/
Log:
[maven-release-plugin] copy for tag sso-parent-1.1.0-GA
13 years, 2 months
gatein SVN: r7975 - in components/sso/trunk: agent and 12 other directories.
by do-not-reply@jboss.org
Author: mposolda
Date: 2011-11-04 06:48:07 -0400 (Fri, 04 Nov 2011)
New Revision: 7975
Modified:
components/sso/trunk/agent/pom.xml
components/sso/trunk/auth-callback/pom.xml
components/sso/trunk/cas/gatein-cas-plugin/pom.xml
components/sso/trunk/cas/gatein-cas-portal/pom.xml
components/sso/trunk/cas/pom.xml
components/sso/trunk/josso/gatein-josso-plugin/pom.xml
components/sso/trunk/josso/gatein-josso-portal/pom.xml
components/sso/trunk/josso/pom.xml
components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml
components/sso/trunk/opensso/gatein-opensso-portal/pom.xml
components/sso/trunk/opensso/pom.xml
components/sso/trunk/packaging/pom.xml
components/sso/trunk/pom.xml
components/sso/trunk/spnego/pom.xml
Log:
[maven-release-plugin] prepare release sso-parent-1.1.0-GA
Modified: components/sso/trunk/agent/pom.xml
===================================================================
--- components/sso/trunk/agent/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/agent/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/auth-callback/pom.xml
===================================================================
--- components/sso/trunk/auth-callback/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/auth-callback/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/gatein-cas-plugin/pom.xml
===================================================================
--- components/sso/trunk/cas/gatein-cas-plugin/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/cas/gatein-cas-plugin/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/gatein-cas-portal/pom.xml
===================================================================
--- components/sso/trunk/cas/gatein-cas-portal/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/cas/gatein-cas-portal/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/pom.xml
===================================================================
--- components/sso/trunk/cas/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/cas/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<name>GateIn SSO - CAS</name>
Modified: components/sso/trunk/josso/gatein-josso-plugin/pom.xml
===================================================================
--- components/sso/trunk/josso/gatein-josso-plugin/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/josso/gatein-josso-plugin/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/josso/gatein-josso-portal/pom.xml
===================================================================
--- components/sso/trunk/josso/gatein-josso-portal/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/josso/gatein-josso-portal/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/josso/pom.xml
===================================================================
--- components/sso/trunk/josso/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/josso/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
Modified: components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml
===================================================================
--- components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/opensso/gatein-opensso-portal/pom.xml
===================================================================
--- components/sso/trunk/opensso/gatein-opensso-portal/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/opensso/gatein-opensso-portal/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/opensso/pom.xml
===================================================================
--- components/sso/trunk/opensso/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/opensso/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -8,7 +8,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
Modified: components/sso/trunk/packaging/pom.xml
===================================================================
--- components/sso/trunk/packaging/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/packaging/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/pom.xml
===================================================================
--- components/sso/trunk/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
<packaging>pom</packaging>
<parent>
@@ -25,9 +25,9 @@
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/sso/trunk</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/sso/trunk</developerConnection>
- <url>http://fisheye.jboss.org/browse/gatein/components/sso/trunk</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/sso/tags/sso-par...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/sso/tags/sso-parent...</developerConnection>
+ <url>http://fisheye.jboss.org/browse/gatein/components/sso/tags/sso-parent-1.1...</url>
</scm>
Modified: components/sso/trunk/spnego/pom.xml
===================================================================
--- components/sso/trunk/spnego/pom.xml 2011-11-04 10:27:36 UTC (rev 7974)
+++ components/sso/trunk/spnego/pom.xml 2011-11-04 10:48:07 UTC (rev 7975)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-GA-SNAPSHOT</version>
+ <version>1.1.0-GA</version>
</parent>
<modelVersion>4.0.0</modelVersion>
13 years, 2 months
gatein SVN: r7974 - in portal/trunk: examples/extension/war/src/main/webapp/WEB-INF/conf/sample-ext/portal and 2 other directories.
by do-not-reply@jboss.org
Author: phuong_vu
Date: 2011-11-04 06:27:36 -0400 (Fri, 04 Nov 2011)
New Revision: 7974
Modified:
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/NewPortalConfigListener.java
portal/trunk/examples/extension/war/src/main/webapp/WEB-INF/conf/sample-ext/portal/portal-configuration.xml
portal/trunk/examples/portal/war/src/main/webapp/WEB-INF/conf/sample-portal/portal/portal-configuration.xml
portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml
Log:
GTNPORTAL-1976 Invalid groupsites created in JCR with clean DB
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/NewPortalConfigListener.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/NewPortalConfigListener.java 2011-11-04 10:14:53 UTC (rev 7973)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/config/NewPortalConfigListener.java 2011-11-04 10:27:36 UTC (rev 7974)
@@ -587,13 +587,14 @@
PortalConfig pConfig;
if (obj == null)
{
- if (dataStorage_.getPortalConfig(type, owner) != null)
+ String fixedName = fixOwnerName(type, owner);
+ if (dataStorage_.getPortalConfig(type, fixedName) != null)
{
return true;
}
else
{
- pConfig = new PortalConfig(type, owner);
+ pConfig = new PortalConfig(type, fixedName);
}
}
else
Modified: portal/trunk/examples/extension/war/src/main/webapp/WEB-INF/conf/sample-ext/portal/portal-configuration.xml
===================================================================
--- portal/trunk/examples/extension/war/src/main/webapp/WEB-INF/conf/sample-ext/portal/portal-configuration.xml 2011-11-04 10:14:53 UTC (rev 7973)
+++ portal/trunk/examples/extension/war/src/main/webapp/WEB-INF/conf/sample-ext/portal/portal-configuration.xml 2011-11-04 10:27:36 UTC (rev 7974)
@@ -64,7 +64,7 @@
<field name="predefinedOwner">
<collection type="java.util.HashSet">
<value>
- <string>platform/users</string>
+ <string>/platform/users</string>
</value>
</collection>
</field>
Modified: portal/trunk/examples/portal/war/src/main/webapp/WEB-INF/conf/sample-portal/portal/portal-configuration.xml
===================================================================
--- portal/trunk/examples/portal/war/src/main/webapp/WEB-INF/conf/sample-portal/portal/portal-configuration.xml 2011-11-04 10:14:53 UTC (rev 7973)
+++ portal/trunk/examples/portal/war/src/main/webapp/WEB-INF/conf/sample-portal/portal/portal-configuration.xml 2011-11-04 10:27:36 UTC (rev 7974)
@@ -64,7 +64,7 @@
<field name="predefinedOwner">
<collection type="java.util.HashSet">
<value>
- <string>platform/users</string>
+ <string>/platform/users</string>
</value>
</collection>
</field>
Modified: portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml
===================================================================
--- portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml 2011-11-04 10:14:53 UTC (rev 7973)
+++ portal/trunk/wsrp-integration/extension-war/src/main/webapp/WEB-INF/conf/wsrp/wsrp-configuration.xml 2011-11-04 10:27:36 UTC (rev 7974)
@@ -172,7 +172,7 @@
<field name="predefinedOwner">
<collection type="java.util.HashSet">
<value>
- <string>platform/administrators</string>
+ <string>/platform/administrators</string>
</value>
</collection>
</field>
13 years, 2 months
gatein SVN: r7973 - in components/sso/trunk: agent and 12 other directories.
by do-not-reply@jboss.org
Author: mposolda
Date: 2011-11-04 06:14:53 -0400 (Fri, 04 Nov 2011)
New Revision: 7973
Modified:
components/sso/trunk/agent/pom.xml
components/sso/trunk/auth-callback/pom.xml
components/sso/trunk/cas/gatein-cas-plugin/pom.xml
components/sso/trunk/cas/gatein-cas-portal/pom.xml
components/sso/trunk/cas/pom.xml
components/sso/trunk/josso/gatein-josso-plugin/pom.xml
components/sso/trunk/josso/gatein-josso-portal/pom.xml
components/sso/trunk/josso/pom.xml
components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml
components/sso/trunk/opensso/gatein-opensso-portal/pom.xml
components/sso/trunk/opensso/pom.xml
components/sso/trunk/packaging/pom.xml
components/sso/trunk/pom.xml
components/sso/trunk/spnego/pom.xml
Log:
GTNPORTAL-2259 SSO version and dependencies upgrade
Modified: components/sso/trunk/agent/pom.xml
===================================================================
--- components/sso/trunk/agent/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/agent/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/auth-callback/pom.xml
===================================================================
--- components/sso/trunk/auth-callback/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/auth-callback/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/gatein-cas-plugin/pom.xml
===================================================================
--- components/sso/trunk/cas/gatein-cas-plugin/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/cas/gatein-cas-plugin/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/gatein-cas-portal/pom.xml
===================================================================
--- components/sso/trunk/cas/gatein-cas-portal/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/cas/gatein-cas-portal/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/cas/pom.xml
===================================================================
--- components/sso/trunk/cas/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/cas/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,13 +3,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-cas-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<name>GateIn SSO - CAS</name>
Modified: components/sso/trunk/josso/gatein-josso-plugin/pom.xml
===================================================================
--- components/sso/trunk/josso/gatein-josso-plugin/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/josso/gatein-josso-plugin/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/josso/gatein-josso-portal/pom.xml
===================================================================
--- components/sso/trunk/josso/gatein-josso-portal/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/josso/gatein-josso-portal/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/josso/pom.xml
===================================================================
--- components/sso/trunk/josso/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/josso/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,13 +3,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-josso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
Modified: components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml
===================================================================
--- components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/opensso/gatein-opensso-plugin/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/opensso/gatein-opensso-portal/pom.xml
===================================================================
--- components/sso/trunk/opensso/gatein-opensso-portal/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/opensso/gatein-opensso-portal/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/opensso/pom.xml
===================================================================
--- components/sso/trunk/opensso/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/opensso/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,13 +3,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-opensso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
Modified: components/sso/trunk/packaging/pom.xml
===================================================================
--- components/sso/trunk/packaging/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/packaging/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: components/sso/trunk/pom.xml
===================================================================
--- components/sso/trunk/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -10,13 +10,13 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.gatein</groupId>
<artifactId>gatein-parent</artifactId>
- <version>1.1.0-Beta01</version>
+ <version>1.1.0-GA</version>
</parent>
@@ -45,14 +45,14 @@
</modules>
<properties>
- <version.junit>3.8.1</version.junit>
+ <version.junit>3.8.2</version.junit>
<!-- http client -->
<version.commons-httpclient>3.1</version.commons-httpclient>
<!-- logging -->
<version.log4j>1.2.14</version.log4j>
- <version.jboss.logging>2.0.2.GA</version.jboss.logging>
+ <version.jboss.logging>2.0.5.GA</version.jboss.logging>
<version.apache.logging>1.0.4-jboss</version.apache.logging>
<version.commons-logging>1.0.4</version.commons-logging>
@@ -68,9 +68,9 @@
<!-- exo -->
- <org.exoplatform.core.version>2.4.1-GA</org.exoplatform.core.version>
- <org.exoplatform.ws.version>2.2.1-GA</org.exoplatform.ws.version>
- <org.gatein.wci.version>2.1.0-Beta06</org.gatein.wci.version>
+ <org.exoplatform.core.version>2.4.3-GA</org.exoplatform.core.version>
+ <org.exoplatform.ws.version>2.2.3-GA</org.exoplatform.ws.version>
+ <org.gatein.wci.version>2.1.0-GA</org.gatein.wci.version>
<!-- JAX-RS jsr-311 -->
<version.javax.ws.rs>1.0</version.javax.ws.rs>
Modified: components/sso/trunk/spnego/pom.xml
===================================================================
--- components/sso/trunk/spnego/pom.xml 2011-11-04 06:32:25 UTC (rev 7972)
+++ components/sso/trunk/spnego/pom.xml 2011-11-04 10:14:53 UTC (rev 7973)
@@ -3,7 +3,7 @@
<groupId>org.gatein.sso</groupId>
<artifactId>sso-parent</artifactId>
<relativePath>../pom.xml</relativePath>
- <version>1.1.0-Beta03-SNAPSHOT</version>
+ <version>1.1.0-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
13 years, 2 months
gatein SVN: r7972 - in epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14: en-US and 24 other directories.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-04 02:32:25 -0400 (Fri, 04 Nov 2011)
New Revision: 7972
Added:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/api-extensions.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-check-controller.xml
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Book_Info.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Revision_History.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default1.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default2.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default3.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default7.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_lock-manager-config/default50.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_statistics/default88.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity/configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_BackendConfiguration/default96.xml
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/default103.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default105.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default106.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default107.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default108.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default111.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default112.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default113.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/default118.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default119.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default120.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/extras/Authentication_Identity_SSO/default125.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default126.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default166.java
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default168.java
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/is1.java
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default180.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default181.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default182.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default183.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default184.java
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default188.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default190.java
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default191.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/Configuring_Services.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/Specific_Services.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/core.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/conversationstate-when-membership-changed.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/core.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-configuration-hibernate.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-creator-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-schema-creator-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/digest-auth.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/ldap-configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-initalizer.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-listener.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/security-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/spring-security-integration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/tika-document-reader-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq/jcr-faq.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-client.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/exojcr-backup-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/use-external-backup-tool.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-advantages.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-extensions.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-usage.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/exo-jcr-configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/external-value-storages.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/rest-services-on-groovy.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/search-configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/workspace-persistence-storage.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/lock-manager-config.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/performance-tuning-guide.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/query-handler-config.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-creation-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-similar-nodes.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/jcr-query-usecases.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/searching-repository-content.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/spell-checker.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/synonim-provider.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/statistics.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/Advanced/eXoJCR/kernel/cache.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/container-configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/job-scheduler-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/listener-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-in-detail.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/transaction-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/understanding-listnerservice.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/framework-for-cross-domain-ajax.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/groovy-scripts-as-rest-services.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/introduction-to-rest.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/overwrite-default-providers.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/restservicelist-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/ws.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/LDAP.xml
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/GadgetDevelopment/SetupGadgetServer.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/NavigationController.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/PortalLifecycle.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/Skinning.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/publican.cfg
Log:
Further JCR edit (incl 1.14.3 changes). GateIn revisions 7960, 7821, 7889
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Book_Info.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Book_Info.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Book_Info.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,30 +4,30 @@
%BOOK_ENTITIES;
]>
<bookinfo id="book-Reference_Guide_eXo_JCR_1.14-Reference_Guide_eXo_JCR_1.14">
- <title>Reference Guide eXo JCR 1.14</title>
- <subtitle>An in-depth guide to Enterprise Portal Platform &VZ;</subtitle>
- <productname>JBoss Enterprise Portal Platform</productname>
- <productnumber>5.2</productnumber>
- <edition>5.2.0</edition>
- <pubsnumber>2</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.
- </para>
+ <title>Reference Guide eXo JCR 1.14</title>
+ <subtitle>An in-depth guide to Enterprise Portal Platform &VZ;</subtitle>
+ <productname>JBoss Enterprise Portal Platform</productname>
+ <productnumber>5.2</productnumber>
+ <edition>5.2.0</edition>
+ <pubsnumber>3</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.
+ </para>
- </abstract>
- <corpauthor>
- <inlinemediaobject>
- <imageobject>
- <imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
- </imageobject>
+ </abstract>
+ <corpauthor>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+ </imageobject>
- </inlinemediaobject>
+ </inlinemediaobject>
- </corpauthor>
- <!-- FOR PUBLICAN --> <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> <!-- FOR JDOCBOOK: --> <xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"> <xi:include href="fallback_content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- </xi:fallback>
- </xi:include>
- <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </corpauthor>
+ <!-- FOR PUBLICAN --> <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> <!-- FOR JDOCBOOK: --> <xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"> <xi:include href="fallback_content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </xi:fallback>
+ </xi:include>
+ <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
</bookinfo>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Revision_History.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Revision_History.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Revision_History.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,66 +4,80 @@
%BOOK_ENTITIES;
]>
<appendix id="appe-Reference_Guide_eXo_JCR_1.14-Revision_History">
- <title>Revision History</title>
- <simpara>
- <revhistory>
- <revision>
- <revnumber>5.2.0-2</revnumber>
- <date>Tue Sep 27 2011</date>
- <author>
- <firstname>Scott</firstname>
- <surname>Mumford</surname>
- <email></email>
+ <title>Revision History</title>
+ <simpara>
+ <revhistory>
+ <revision>
+ <revnumber>5.2.0-3</revnumber>
+ <date>Wed Nov 2 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email></email>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Staged for review of updated Foundations and eXo JCR content.</member>
+ </simplelist>
+ </revdescription>
+ </revision>
+ <revision>
+ <revnumber>5.2.0-2</revnumber>
+ <date>Tue Sep 27 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email></email>
- </author>
- <revdescription>
- <simplelist>
- <member>Incorporated eXo JCR 1.14 documentation.</member>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Incorporated eXo JCR 1.14 documentation.</member>
- </simplelist>
+ </simplelist>
- </revdescription>
+ </revdescription>
- </revision>
- <revision>
- <revnumber>5.2.0-5</revnumber>
- <date>Wed Sep 14 2011</date>
- <author>
- <firstname>Scott</firstname>
- <surname>Mumford</surname>
- <email></email>
+ </revision>
+ <revision>
+ <revnumber>5.2.0-5</revnumber>
+ <date>Wed Sep 14 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email></email>
- </author>
- <revdescription>
- <simplelist>
- <member>Added Global Portlet Data section.</member>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Added Global Portlet Data section.</member>
- </simplelist>
+ </simplelist>
- </revdescription>
+ </revdescription>
- </revision>
- <revision>
- <revnumber>5.2.0-1</revnumber>
- <date>Mon Aug 29 2011</date>
- <author>
- <firstname>Scott</firstname>
- <surname>Mumford</surname>
- <email></email>
+ </revision>
+ <revision>
+ <revnumber>5.2.0-1</revnumber>
+ <date>Mon Aug 29 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email></email>
- </author>
- <revdescription>
- <simplelist>
- <member>Updating version and resetting pubs/ed numbers.</member>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Updating version and resetting pubs/ed numbers.</member>
- </simplelist>
+ </simplelist>
- </revdescription>
+ </revdescription>
- </revision>
+ </revision>
- </revhistory>
+ </revhistory>
- </simpara>
+ </simpara>
</appendix>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd
- http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd
+ http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<key>org.exoplatform.services.database.HibernateService</key>
<type>org.exoplatform.services.database.impl.HibernateServiceImpl</type>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default1.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default1.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default1.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd
- http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd
+ http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<external-component-plugins>
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default2.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default2.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default2.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,7 +1,7 @@
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd
- http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd
+ http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<import>war:/conf/sample-ext/jcr/jcr-configuration.xml</import>
<import>war:/conf/sample-ext/portal/portal-configuration.xml</import>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default3.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default3.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default3.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
...
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
...
<component>
<key>org.exoplatform.services.database.HibernateService</key>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default7.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default7.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_Foundations/default7.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd
- http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd
+ http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_lock-manager-config/default50.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_lock-manager-config/default50.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_lock-manager-config/default50.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -8,12 +8,12 @@
<jgroupsConfig>
<TCP bind_addr="127.0.0.1" start_port="9800" loopback="true" recv_buf_size="20000000" send_buf_size="640000" discard_incompatible_packets="true"
- max_bundle_size="64000" max_bundle_timeout="30" use_incoming_packet_handler="true" enable_bundling="false" use_send_queues="false" sock_conn_timeout="300"
- skip_suspected_members="true" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="1" thread_pool.max_threads="25"
- thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="false" thread_pool.queue_max_size="100" thread_pool.rejection_policy="run"
- oob_thread_pool.enabled="true" oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
- oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34540" bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
+ max_bundle_size="64000" max_bundle_timeout="30" use_incoming_packet_handler="true" enable_bundling="false" use_send_queues="false" sock_conn_timeout="300"
+ skip_suspected_members="true" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="1" thread_pool.max_threads="25"
+ thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="false" thread_pool.queue_max_size="100" thread_pool.rejection_policy="run"
+ oob_thread_pool.enabled="true" oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
+ oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="run" />
+ <MPING timeout="2000" num_initial_members="2" mcast_port="34540" bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
<MERGE2 max_interval="30000" min_interval="10000" />
<FD_SOCK />
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_statistics/default88.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_statistics/default88.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Advanced_Development_JCR_statistics/default88.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,5 +1,5 @@
-<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.jcr.statistics.JCRAPIAspectConfig</type>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity/configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity/configuration.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity/configuration.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
-xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<key>org.example.codec.ExampleCodec</key>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_BackendConfiguration/default96.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_BackendConfiguration/default96.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_BackendConfiguration/default96.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,6 +1,6 @@
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default102.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -19,7 +19,6 @@
| local authentication strategy. You might accomplish this by coding a new such handler and declaring
| edu.someschool.its.cas.MySpecialHandler here, or you might use one of the handlers provided in the adaptors modules.
+-->
- <bean
- class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
+ <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
</list>
</property>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default103.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default103.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default103.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -30,4 +30,4 @@
<property name="gateInContext"><value>portal</value></property>
</bean>
</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/default105.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default105.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default105.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,3 +1,4 @@
+<!--
<authentication>
<login-module code="org.gatein.sso.agent.login.SSOLoginModule" flag="required">
</login-module>
@@ -6,3 +7,4 @@
<module-option name="realmName">gatein-domain</module-option>
</login-module>
</authentication>
+-->
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default106.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default106.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default106.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,4 +1,4 @@
<!--
<a class="Login" onclick="$signInAction"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
-->
-<a class="Login" href="/portal/sso"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
+<a class="Login" href="/portal/sso"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default107.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default107.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default107.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,4 +1,4 @@
<!--
<a onclick="$signInAction"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
-->
-<a href="/portal/sso"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
+<a href="/portal/sso"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default108.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default108.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default108.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -6,4 +6,4 @@
</head>
<body>
</body>
-</html>
+</html>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default111.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default111.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default111.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -6,3 +6,4 @@
<module-option name="realmName">gatein-domain</module-option>
</login-module>
</authentication>
+</programlisting>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default112.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default112.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default112.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,2 +1,4 @@
-<!--<a class="Login" onclick="$signInAction"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>-->
+<!--
+<a class="Login" onclick="$signInAction"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
+-->
<a class="Login" href="/portal/sso"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default113.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default113.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default113.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,4 +1,4 @@
<!--
<a onclick="$signInAction"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
-->
-<a href="/portal/sso"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
+<a href="/portal/sso"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
\ 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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default115.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,44 +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/initiatessologin</param-value>
- </init-param>
- </filter>
- <filter>
- <filter-name>JOSSOLogoutFilter</filter-name>
- <filter-class>org.gatein.sso.agent.filter.JOSSOLogoutFilter</filter-class>
- <init-param>
+<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://localhos...</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>
- <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-mapping>
- <filter-mapping>
- <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
+ </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>
+
+<!-- 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>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/default118.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default118.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default118.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -5,4 +5,4 @@
<module-option name="portalContainerName">portal</module-option>
<module-option name="realmName">gatein-domain</module-option>
</login-module>
-</authentication>
+</authentication>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default119.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default119.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default119.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,4 +1,4 @@
<!--
<a class="Login" onclick="$signInAction"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
-->
-<a class="Login" href="/portal/sso"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
+<a class="Login" href="/portal/sso"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default120.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default120.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default120.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,4 +1,4 @@
<!--
<a onclick="$signInAction"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
-->
-<a href="/portal/sso"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
+<a href="/portal/sso"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
\ 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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default122.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,49 +1,48 @@
- <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&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>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>
+<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&goto=http://local...</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 SSO 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>http://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>
+ </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-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
+<!-- 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>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/extras/Authentication_Identity_SSO/default125.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default125.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default125.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,5 +1,6 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
<property name="authenticators">
- <map keyClass="java.lang.String" valueClass="java.lang.String">
+ <map class="java.util.Properties" keyClass="java.lang.String" valueClass="java.lang.String">
<entry>
<key>BASIC</key>
<value>org.apache.catalina.authenticator.BasicAuthenticator</value>
@@ -26,5 +27,5 @@
<key>SPNEGO</key>
<value>org.jboss.security.negotiation.NegotiationAuthenticator</value>
</entry>
- </map>
- </property>
+ </map>
+</property>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default126.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default126.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/Authentication_Identity_SSO/default126.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,20 +1,9 @@
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
- <application-policy xmlns="urn:jboss:security-beans:1.0" name="gatein-domain">
- <!-- Uncomment this for Kerberos based SSO integration -->
- <authentication>
- <login-module
- code="org.gatein.sso.spnego.SPNEGOLoginModule"
- flag="requisite">
- <module-option name="password-stacking">useFirstPass</module-option>
- <module-option name="serverSecurityDomain">host</module-option>
- </login-module>
- <login-module
- code="org.gatein.sso.agent.login.SPNEGORolesModule"
- flag="required">
- <module-option name="password-stacking">useFirstPass</module-option>
- <module-option name="portalContainerName">portal</module-option>
- <module-option name="realmName">gatein-domain</module-option>
- </login-module>
- </authentication>
- </application-policy>
-</deployment>
+<login-module code="org.gatein.sso.spnego.SPNEGOLoginModule" flag="required">
+ <module-option name="password-stacking">useFirstPass</module-option>
+ <module-option name="serverSecurityDomain">host</module-option>
+</login-module>
+<login-module code="org.gatein.sso.agent.login.SPNEGORolesModule" flag="required">
+ <module-option name="password-stacking">useFirstPass</module-option>
+ <module-option name="portalContainerName">portal</module-option>
+ <module-option name="realmName">gatein-domain</module-option>
+</login-module>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<gadgets
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gadgets_1_0"
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gadgets_1_0"
xmlns="http://www.gatein.org/xml/ns/gadgets_1_0">
<gadget name="Todo">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<node-navigation
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gatein_objects_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gatein_objects_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_2">
<priority>1</priority>
<page-nodes>
<node>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<page-set
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gatein_objects_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gatein_objects_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_2">
<page>
<name>homepage</name>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<portal-config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gatein_objects_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gatein_objects_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_2">
<portal-name>classic</portal-name>
<locale>en</locale>
<access-permissions>Everyone</access-permissions>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default166.java
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default166.java 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default166.java 2011-11-04 06:32:25 UTC (rev 7972)
@@ -18,7 +18,7 @@
try {
PortalContainer.setInstance(null) ;
} catch (Exception e) {
- log.warn("An error occured while cleaning the ThreadLocal", e);
+ log.warn("An error occurred while cleaning the ThreadLocal", e);
}
}
...
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default168.java
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default168.java 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/default168.java 2011-11-04 06:32:25 UTC (rev 7972)
@@ -33,7 +33,7 @@
try {
component.endRequest(portalContainer);
} catch (Exception e) {
- log.warn("An error occured while calling the endRequest method", e);
+ log.warn("An error occurred while calling the endRequest method", e);
}
}
}
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/is1.java
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/is1.java 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_PortalLifecycle/is1.java 2011-11-04 06:32:25 UTC (rev 7972)
@@ -44,7 +44,7 @@
try {
PortalContainer.setInstance(null) ;
} catch (Exception e) {
- log.warn("An error occured while cleaning the ThreadLocal", e);
+ log.warn("An error occurred while cleaning the ThreadLocal", e);
}
}
log.info("Init of PortalController Servlet successful");
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default180.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default180.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default180.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,7 +1,7 @@
<portal-config>
- <portal-name>classic</portal-name>
- <locale>en</locale>
- <access-permissions>Everyone</access-permissions>
- <edit-permission>*:/platform/administrators</edit-permission>
- <skin>MySkin</skin>
- ...
+ <portal-name>classic</portal-name>
+ <locale>en</locale>
+ <access-permissions>Everyone</access-permissions>
+ <edit-permission>*:/platform/administrators</edit-permission>
+ <skin>MySkin</skin>
+ ...
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default181.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default181.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default181.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,12 +1,12 @@
<head>
...
<!-- The portal skin -->
-<link id="CoreSkin" rel="stylesheet" type="text/CSS" href="/eXoResources/skin/Stylesheet.CSS" />
+<link id="CoreSkin" rel="stylesheet" type="text/css" href="/eXoResources/skin/Stylesheet.css" />
<!-- The portlet skins -->
-<link id="web_FooterPortlet" rel="stylesheet" type="text/CSS" href= "/web/skin/portal/webui/component/UIFooterPortlet/DefaultStylesheet.CSS" />
-<link id="web_NavigationPortlet" rel="stylesheet" type="text/CSS" href= "/web/skin/portal/webui/component/UINavigationPortlet/DefaultStylesheet.CSS" />
-<link id="web_HomePagePortlet" rel="stylesheet" type="text/CSS" href= "/portal/templates/skin/webui/component/UIHomePagePortlet/DefaultStylesheet.CSS" />
-<link id="web_BannerPortlet" rel="stylesheet" type="text/CSS" href= "/web/skin/portal/webui/component/UIBannerPortlet/DefaultStylesheet.CSS" />
+<link id="web_FooterPortlet" rel="stylesheet" type="text/css" href= "/web/skin/portal/webui/component/UIFooterPortlet/DefaultStylesheet.css" />
+<link id="web_NavigationPortlet" rel="stylesheet" type="text/css" href= "/web/skin/portal/webui/component/UINavigationPortlet/DefaultStylesheet.css" />
+<link id="web_HomePagePortlet" rel="stylesheet" type="text/css" href= "/portal/templates/skin/webui/component/UIHomePagePortlet/DefaultStylesheet.css" />
+<link id="web_BannerPortlet" rel="stylesheet" type="text/css" href= "/web/skin/portal/webui/component/UIBannerPortlet/DefaultStylesheet.css" />
...
-</head>
+</head>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default182.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default182.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default182.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,7 +1,7 @@
<gatein-resources>
<portal-skin>
<skin-name>MySkin</skin-name>
- <CSS-path>/skin/myskin.CSS</CSS-path>
+ <css-path>/skin/myskin.css</css-path>
<overwrite>false</overwrite>
</portal-skin>
</gatein-resources>
@@ -15,4 +15,4 @@
<style-theme>
<theme-name>MyThemeRed</theme-name>
</style-theme>
- ...
+ ...
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default183.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default183.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default183.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,9 +1,9 @@
<filter>
- <filter-name>ResourceRequestFilter</filter-name>
- <filter-class>org.exoplatform.portal.application.ResourceRequestFilter</filter-class>
- </filter>
+ <filter-name>ResourceRequestFilter</filter-name>
+ <filter-class>org.exoplatform.portal.application.ResourceRequestFilter</filter-class>
+ </filter>
- <filter-mapping>
- <filter-name>ResourceRequestFilter</filter-name>
- <url-pattern>*.CSS</url-pattern>
- </filter-mapping>
+ <filter-mapping>
+ <filter-name>ResourceRequestFilter</filter-name>
+ <url-pattern>*.css</url-pattern>
+ </filter-mapping>
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default184.java
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default184.java 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default184.java 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,4 +1,4 @@
-@import url(DefaultSkin/portal/webui/component/UIPortalApplicationSkin.CSS);
-@import url(DefaultSkin/webui/component/Stylesheet.CSS);
-@import url(PortletThemes/Stylesheet.CSS);
-@import url(Portlet/Stylesheet.CSS);
+@import url(DefaultSkin/portal/webui/component/UIPortalApplicationSkin.css);
+@import url(DefaultSkin/webui/component/Stylesheet.css);
+@import url(PortletThemes/Stylesheet.css);
+@import url(Portlet/Stylesheet.css);
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default188.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default188.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default188.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,6 +1,6 @@
-.UIChangeSkinForm .UIItemSelector .TemplateContainer .MySkinImage
+.UIChangeSkinForm .UIItemSelector .TemplateContainer .MySkinImage {
margin: auto;
width: 329px; height:204px;
background: url('background/MySkin.jpg') no-repeat top;
cursor: pointer ;
-}
+}
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default190.java
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default190.java 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default190.java 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,126 +1,136 @@
/*---- MyTheme ----*/
.MyTheme .WindowBarCenter .WindowPortletInfo {
- margin-right: 80px; /* orientation=lt */
- margin-left: 80px; /* orientation=rt */
+ margin-right: 80px; /* orientation=lt */
+ margin-left: 80px; /* orientation=rt */
}
+
.MyTheme .WindowBarCenter .ControlIcon {
- float: right;/* orientation=lt */
- float: left;/* orientation=rt */
- width: 24px;
- height: 17px;
- cursor: pointer;
- background-image: url('background/MyTheme.png');
+ float: right; /* orientation=lt */
+ float: left; /* orientation=rt */
+ width: 24px;
+ height: 17px;
+ cursor: pointer;
+ background-image: url('background/MyTheme.png');
}
+
.MyTheme .ArrowDownIcon {
- background-position: center 20px;
+ background-position: center 20px;
}
+
.MyTheme .OverArrowDownIcon {
- background-position: center 116px;
+ background-position: center 116px;
}
+
.MyTheme .MinimizedIcon {
- background-position: center 44px;
+ background-position: center 44px;
}
+
.MyTheme .OverMinimizedIcon {
- background-position: center 140px;
+ background-position: center 140px;
}
+
.MyTheme .MaximizedIcon {
- background-position: center 68px;
+ background-position: center 68px;
}
+
.MyTheme .OverMaximizedIcon {
- background-position: center 164px;
+ background-position: center 164px;
}
+
.MyTheme .RestoreIcon {
- background-position: center 92px;
+ background-position: center 92px;
}
+
.MyTheme .OverRestoreIcon {
- background-position: center 188px;
+ background-position: center 188px;
}
+
.MyTheme .NormalIcon {
- background-position: center 92px;
+ background-position: center 92px;
}
+
.MyTheme .OverNormalIcon {
- background-position: center 188px;
+ background-position: center 188px;
}
-.UIPageDesktop .MyTheme .ResizeArea {
- float: right;/* orientation=lt */
- float: left;/* orientation=rt */
- width: 18px; height: 18px;
- cursor: nw-resize;
- background: url('background/ResizeArea18x18.gif') no-repeat left top; /* orientation=lt */
- background: url('background/ResizeArea18x18-rt.gif') no-repeat right top; /* orientation=rt */
-}
+
.MyTheme .Information {
- height: 18px; line-height: 18px;
- vertical-align: middle; font-size: 10px;
- padding-left: 5px;/* orientation=lt */
- padding-right: 5px;/* orientation=rt */
- margin-right: 18px;/* orientation=lt */
- margin-left: 18px;/* orientation=rt */
+ height: 18px; line-height: 18px;
+ vertical-align: middle; font-size: 10px;
+ padding-left: 5px; /* orientation=lt */
+ padding-right: 5px; /* orientation=rt */
+ margin-right: 18px; /* orientation=lt */
+ margin-left: 18px; /* orientation=rt */
}
+
.MyTheme .WindowBarCenter .WindowPortletIcon {
- background-position: left top; /* orientation=lt */
- background-position: right top; /* orientation=rt */
- padding-left: 20px; /* orientation=lt */
- padding-right: 20px; /* orientation=rt */
- height: 16px;
- line-height: 16px;
+ background-position: left top; /* orientation=lt */
+ background-position: right top; /* orientation=rt */
+ padding-left: 20px; /* orientation=lt */
+ padding-right: 20px; /* orientation=rt */
+ height: 16px;
+ line-height: 16px;
}
+
.MyTheme .WindowBarCenter .PortletName {
- font-weight: bold;
- color: #333333;
- overflow: hidden;
- white-space: nowrap;
- width: 100%;
+ font-weight: bold;
+ color: #333333;
+ overflow: hidden;
+ white-space: nowrap;
}
+
.MyTheme .WindowBarLeft {
- padding-left: 12px;
- background-image: url('background/MyTheme.png');
- background-repeat: no-repeat;
- background-position: left -148px;
+ padding-left: 12px;
+ background-image: url('background/MyTheme.png');
+ background-repeat: no-repeat;
+ background-position: left -148px;
}
+
.MyTheme .WindowBarRight {
- padding-right: 11px;
- background-image: url('background/MyTheme.png');
- background-repeat: no-repeat;
- background-position: right -119px;
+ padding-right: 11px;
+ background-image: url('background/MyTheme.png');
+ background-repeat: no-repeat;
+ background-position: right -119px;
}
+
.MyTheme .WindowBarCenter {
- background-image: url('background/MyTheme.png');
- background-repeat: repeat-x;
- background-position: left -90px;
+ background-image: url('background/MyTheme.png');
+ background-repeat: repeat-x;
+ background-position: left -90px;
+ height: 21px;
+ padding-top: 8px;
}
-.MyTheme .WindowBarCenter .FixHeight {
- height: 21px;
- padding-top: 8px;
-}
+
.MyTheme .MiddleDecoratorLeft {
- padding-left: 12px;
- background: url('background/MyTheme.png') repeat-y left;
+ padding-left: 12px;
+ background: url('background/MMyTheme.png') repeat-y left;
}
+
.MyTheme .MiddleDecoratorRight {
- padding-right: 11px;
- background: url('background/MyTheme.png') repeat-y right;
+ padding-right: 11px;
+ background: url('background/MMyTheme.png') repeat-y right;
}
+
.MyTheme .MiddleDecoratorCenter {
- background: #ffffff;
+ background: #ffffff;
}
+
.MyTheme .BottomDecoratorLeft {
- MyTheme: 12px;
- background-image: url('background/MyTheme.png');
- background-repeat: no-repeat;
- background-position: left -60px;
+ padding-left: 12px;
+ background-image: url('background/MyTheme.png');
+ background-repeat: no-repeat;
+ background-position: left -60px;
}
+
.MyTheme .BottomDecoratorRight {
- padding-right: 11px;
- background-image: url('background/MyTheme.png');
- background-repeat: no-repeat;
- background-position: right -30px;
+ padding-right: 11px;
+ background-image: url('background/MyTheme.png');
+ background-repeat: no-repeat;
+ background-position: right -30px;
}
+
.MyTheme .BottomDecoratorCenter {
- background-image: url('background/MyTheme.png');
- background-repeat: repeat-x;
- background-position: left top;
-}
-.MyTheme .BottomDecoratorCenter .FixHeight {
- height: 30px;
-}
+ background-image: url('background/MyTheme.png');
+ background-repeat: repeat-x;
+ background-position: left top;
+ height: 30px;
+}
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default191.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default191.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/extras/PortalDevelopment_Skinning/default191.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -2,12 +2,12 @@
<application-name>portletAppName</application-name>
<portlet-name>PortletName</portlet-name>
<skin-name>Default</skin-name>
- <CSS-path>/skin/DefaultStylesheet.CSS</CSS-path>
+ <css-path>/skin/DefaultStylesheet.css</css-path>
</portlet-skin>
<portlet-skin>
<application-name>portletAppName</application-name>
<portlet-name>PortletName</portlet-name>
<skin-name>OtherSkin</skin-name>
- <CSS-path>/skin/OtherSkinStylesheet.CSS</CSS-path>
-</portlet-skin>
+ <css-path>/skin/OtherSkinStylesheet.css</css-path>
+</portlet-skin>
\ 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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,19 +4,19 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers">
- <title>Advanced concepts for the <emphasis>PortalContainers</emphasis></title>
- <para>
- Since eXo JCR 1.12, we added a set of new features that have been designed to extend portal applications such as GateIn.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Add_new_configuration_files_from_a_WAR_file">
- <title>Add new configuration files from a WAR file</title>
- <para>
- A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerConfigOwner</envar> has been added in order to notify the application that a given web application provides some configuration to the portal container, and this configuration file is the file <emphasis>WEB-INF/conf/configuration.xml</emphasis> available in the web application itself.
- </para>
- <para>
- If your war file contains some configuration to add to the <envar>PortalContainer</envar> simply add the following lines in your <emphasis>web.xml</emphasis> file.
- </para>
-
+ <title>Advanced concepts for the <emphasis>PortalContainers</emphasis></title>
+ <para>
+ Since eXo JCR 1.12, we added a set of new features that have been designed to extend portal applications such as GateIn.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Add_new_configuration_files_from_a_WAR_file">
+ <title>Add new configuration files from a WAR file</title>
+ <para>
+ A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerConfigOwner</envar> has been added in order to notify the application that a given web application provides some configuration to the portal container, and this configuration file is the file <emphasis>WEB-INF/conf/configuration.xml</emphasis> available in the web application itself.
+ </para>
+ <para>
+ If your war file contains some configuration to add to the <envar>PortalContainer</envar> simply add the following lines in your <emphasis>web.xml</emphasis> file.
+ </para>
+
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
@@ -31,34 +31,34 @@
...
</web-app></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Creating_your_PortalContainers_from_a_WAR_file">
- <title>Creating your <emphasis>PortalContainers</emphasis> from a WAR file</title>
- <para>
- A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerCreator</envar> has been added in order to create the current portal containers that have been registered. We assume that all the web applications have already been loaded before calling <envar>PortalContainerCreator.contextInitialized.</envar>
- </para>
- <para>
- <note>
- <para>
- In GateIn, the <envar>PortalContainerCreator</envar> is already managed by the file <emphasis>starter.war/ear.</emphasis>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Creating_your_PortalContainers_from_a_WAR_file">
+ <title>Creating your <emphasis>PortalContainers</emphasis> from a WAR file</title>
+ <para>
+ A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerCreator</envar> has been added in order to create the current portal containers that have been registered. We assume that all the web applications have already been loaded before calling <envar>PortalContainerCreator.contextInitialized.</envar>
+ </para>
+ <para>
+ <note>
+ <para>
+ In GateIn, the <envar>PortalContainerCreator</envar> is already managed by the file <emphasis>starter.war/ear.</emphasis>
+ </para>
- </note>
+ </note>
- </para>
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Defining_a_PortalContainer_with_its_dependencies_and_its_settings">
- <title>Defining a <emphasis>PortalContainer</emphasis> with its dependencies and its settings</title>
- <para>
- Now we can define precisely a portal container and its dependencies and settings thanks to the <envar>PortalContainerDefinition</envar> that currently contains the name of the portal container, the name of the rest context, the name of the realm, the web application dependencies ordered by loading priority (i.e. the first dependency must be loaded at first and so on..) and the settings.
- </para>
- <para>
- To be able to define a <envar>PortalContainerDefinition</envar>, we need to ensure first of all that a <envar>PortalContainerConfig</envar> has been defined at the <envar>RootContainer</envar> level, see an example below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Defining_a_PortalContainer_with_its_dependencies_and_its_settings">
+ <title>Defining a <emphasis>PortalContainer</emphasis> with its dependencies and its settings</title>
+ <para>
+ Now we can define precisely a portal container and its dependencies and settings thanks to the <envar>PortalContainerDefinition</envar> that currently contains the name of the portal container, the name of the rest context, the name of the realm, the web application dependencies ordered by loading priority (i.e. the first dependency must be loaded at first and so on..) and the settings.
+ </para>
+ <para>
+ To be able to define a <envar>PortalContainerDefinition</envar>, we need to ensure first of all that a <envar>PortalContainerConfig</envar> has been defined at the <envar>RootContainer</envar> level, see an example below:
+ </para>
+
<programlisting language="XML" role="XML"> <component>
<!-- The full qualified name of the PortalContainerConfig -->
<type>org.exoplatform.container.definition.PortalContainerConfig</type>
@@ -139,87 +139,87 @@
</object-param>
</init-params>
</component></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_PortalContainerConfig">
- <title>Descriptions of the fields of <envar>PortalContainerConfig</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- default.portal.container (*)
- </entry>
- <entry>
- The name of the default portal container. This field is optional.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_PortalContainerConfig">
+ <title>Descriptions of the fields of <envar>PortalContainerConfig</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ default.portal.container (*)
+ </entry>
+ <entry>
+ The name of the default portal container. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- default.rest.context (*)
- </entry>
- <entry>
- The name of the default rest <envar>ServletContext</envar>. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ default.rest.context (*)
+ </entry>
+ <entry>
+ The name of the default rest <envar>ServletContext</envar>. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- default.realm.name (*)
- </entry>
- <entry>
- The name of the default realm. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ default.realm.name (*)
+ </entry>
+ <entry>
+ The name of the default realm. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- ignore.unregistered.webapp (*)
- </entry>
- <entry>
- Indicates whether the unregistered webapps have to be ignored. If a webapp has not been registered as a dependency of any portal container, the application will use the value of this parameter to know what to do:
- <itemizedlist>
- <listitem>
- <para>
- If it is set to <emphasis>false</emphasis>, this webapp will be considered by default as a dependency of all the portal containers.
- </para>
+ </row>
+ <row>
+ <entry>
+ ignore.unregistered.webapp (*)
+ </entry>
+ <entry>
+ Indicates whether the unregistered webapps have to be ignored. If a webapp has not been registered as a dependency of any portal container, the application will use the value of this parameter to know what to do:
+ <itemizedlist>
+ <listitem>
+ <para>
+ If it is set to <emphasis>false</emphasis>, this webapp will be considered by default as a dependency of all the portal containers.
+ </para>
- </listitem>
- <listitem>
- <para>
- If it is set to <emphasis>true</emphasis>, this webapp won't be considered by default as a dependency of any portal container, it will be simply ignored.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If it is set to <emphasis>true</emphasis>, this webapp won't be considered by default as a dependency of any portal container, it will be simply ignored.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- This field is optional and by default this parameter is set to <emphasis>false</emphasis>.
- </entry>
+ </itemizedlist>
+ This field is optional and by default this parameter is set to <emphasis>false</emphasis>.
+ </entry>
- </row>
- <row>
- <entry>
- default.portal.definition
- </entry>
- <entry>
- The definition of the default portal container. This field is optional. The expected type is <envar>org.exoplatform.container.definition.PortalContainerDefinition</envar> that is described below. Allow the parameters defined in this default <envar>PortalContainerDefinition</envar> will be the default values.
- </entry>
+ </row>
+ <row>
+ <entry>
+ default.portal.definition
+ </entry>
+ <entry>
+ The definition of the default portal container. This field is optional. The expected type is <envar>org.exoplatform.container.definition.PortalContainerDefinition</envar> that is described below. Allow the parameters defined in this default <envar>PortalContainerDefinition</envar> will be the default values.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- A new <envar>PortalContainerDefinition</envar> can be defined at the <envar>RootContainer</envar> level thanks to an external plugin, see an example below:
- </para>
-
+ </note>
+ <para>
+ A new <envar>PortalContainerDefinition</envar> can be defined at the <envar>RootContainer</envar> level thanks to an external plugin, see an example below:
+ </para>
+
<programlisting language="XML" role="XML"> <external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -314,403 +314,403 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_a_new_portal_container">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define a new portal container</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- name (*)
- </entry>
- <entry>
- The name of the portal container. This field is mandatory .
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_a_new_portal_container">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define a new portal container</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ name (*)
+ </entry>
+ <entry>
+ The name of the portal container. This field is mandatory .
+ </entry>
- </row>
- <row>
- <entry>
- restContextName (*)
- </entry>
- <entry>
- The name of the context name of the rest web application. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
- </entry>
+ </row>
+ <row>
+ <entry>
+ restContextName (*)
+ </entry>
+ <entry>
+ The name of the context name of the rest web application. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
+ </entry>
- </row>
- <row>
- <entry>
- realmName (*)
- </entry>
- <entry>
- The name of the realm. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
- </entry>
+ </row>
+ <row>
+ <entry>
+ realmName (*)
+ </entry>
+ <entry>
+ The name of the realm. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
+ </entry>
- </row>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- All the dependencies of the portal container ordered by loading priority. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level. The dependencies are in fact the list of the context names of the web applications from which the portal container depends. This field is optional. The dependency order is really crucial since it will be interpreted the same way by several components of the platform. All those components, will consider the 1st element in the list less important than the second element and so on. It is currently used to:
- <itemizedlist>
- <listitem>
- <para>
- Know the loading order of all the dependencies.
- </para>
+ </row>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ All the dependencies of the portal container ordered by loading priority. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level. The dependencies are in fact the list of the context names of the web applications from which the portal container depends. This field is optional. The dependency order is really crucial since it will be interpreted the same way by several components of the platform. All those components, will consider the 1st element in the list less important than the second element and so on. It is currently used to:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Know the loading order of all the dependencies.
+ </para>
- </listitem>
- <listitem>
- <para>
- If we have several <envar>PortalContainerConfigOwner</envar> <itemizedlist>
- <listitem>
- <para>
- The <envar>ServletContext</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ServletContext</envar> (<emphasis>PortalContainer.getPortalContext()</emphasis>) to get a resource, it will try to get the resource in the <envar>ServletContext</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it cans find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If we have several <envar>PortalContainerConfigOwner</envar> <itemizedlist>
+ <listitem>
+ <para>
+ The <envar>ServletContext</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ServletContext</envar> (<emphasis>PortalContainer.getPortalContext()</emphasis>) to get a resource, it will try to get the resource in the <envar>ServletContext</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it cans find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
+ </para>
- </listitem>
- <listitem>
- <para>
- The <envar>ClassLoader</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ClassLoader</envar> (<emphasis>PortalContainer.getPortalClassLoader()</emphasis>) to get a resource, it will try to get the resource in the <envar>ClassLoader</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it can find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <envar>ClassLoader</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ClassLoader</envar> (<emphasis>PortalContainer.getPortalClassLoader()</emphasis>) to get a resource, it will try to get the resource in the <envar>ClassLoader</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it can find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </para>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- settings
- </entry>
- <entry>
- A <envar>java.util.Map</envar> of internal parameters that we would like to tie the portal container. Those parameters could have any type of value. This field is optional. If some internal settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level.
- </entry>
+ </row>
+ <row>
+ <entry>
+ settings
+ </entry>
+ <entry>
+ A <envar>java.util.Map</envar> of internal parameters that we would like to tie the portal container. Those parameters could have any type of value. This field is optional. If some internal settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level.
+ </entry>
- </row>
- <row>
- <entry>
- externalSettingsPath
- </entry>
- <entry>
- The path of the external properties file to load as default settings to the portal container. This field is optional. If some external settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
- <orderedlist>
- <listitem>
- <para>
- The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
- <orderedlist>
- <listitem>
- <para>
- A file exists at <emphasis>${exo-conf-dir}/portal/${portalContainerName}/${externalSettingsPath}</emphasis>, we will load this file.
- </para>
+ </row>
+ <row>
+ <entry>
+ externalSettingsPath
+ </entry>
+ <entry>
+ The path of the external properties file to load as default settings to the portal container. This field is optional. If some external settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
+ <orderedlist>
+ <listitem>
+ <para>
+ The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
+ <orderedlist>
+ <listitem>
+ <para>
+ A file exists at <emphasis>${exo-conf-dir}/portal/${portalContainerName}/${externalSettingsPath}</emphasis>, we will load this file.
+ </para>
- </listitem>
- <listitem>
- <para>
- No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </para>
+ </para>
- </listitem>
- <listitem>
- <para>
- The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_the_default_portal_container">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define the default portal container</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- name (*)
- </entry>
- <entry>
- The name of the portal container. This field is optional. The default portal name will be:
- <orderedlist>
- <listitem>
- <para>
- If this field is not empty, then the default value will be the value of this field.
- </para>
+ </table>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_the_default_portal_container">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define the default portal container</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ name (*)
+ </entry>
+ <entry>
+ The name of the portal container. This field is optional. The default portal name will be:
+ <orderedlist>
+ <listitem>
+ <para>
+ If this field is not empty, then the default value will be the value of this field.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field is empty and the value of the parameter <emphasis>default.portal.container</emphasis> is not empty, then the default value will be the value of the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field is empty and the value of the parameter <emphasis>default.portal.container</emphasis> is not empty, then the default value will be the value of the parameter.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field and the parameter <emphasis>default.portal.container</emphasis> are both empty, the default value will be <emphasis>"portal".</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field and the parameter <emphasis>default.portal.container</emphasis> are both empty, the default value will be <emphasis>"portal".</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- restContextName (*)
- </entry>
- <entry>
- The name of the context name of the rest web application. This field is optional. The default value wil be:
- <orderedlist>
- <listitem>
- <para>
- If this field is not empty, then the default value will be the value of this field.
- </para>
+ </row>
+ <row>
+ <entry>
+ restContextName (*)
+ </entry>
+ <entry>
+ The name of the context name of the rest web application. This field is optional. The default value will be:
+ <orderedlist>
+ <listitem>
+ <para>
+ If this field is not empty, then the default value will be the value of this field.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field is empty and the value of the parameter <emphasis>default.rest.context</emphasis> is not empty, then the default value will be the value of the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field is empty and the value of the parameter <emphasis>default.rest.context</emphasis> is not empty, then the default value will be the value of the parameter.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field and the parameter <emphasis>default.rest.context</emphasis> are both empty, the default value will be <emphasis>"rest".</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field and the parameter <emphasis>default.rest.context</emphasis> are both empty, the default value will be <emphasis>"rest".</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- realmName (*)
- </entry>
- <entry>
- The name of the realm. This field is optional. The default value will be:
- <orderedlist>
- <listitem>
- <para>
- If this field is not empty, then the default value will be the value of this field.
- </para>
+ </row>
+ <row>
+ <entry>
+ realmName (*)
+ </entry>
+ <entry>
+ The name of the realm. This field is optional. The default value will be:
+ <orderedlist>
+ <listitem>
+ <para>
+ If this field is not empty, then the default value will be the value of this field.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field is empty and the value of the parameter <emphasis>default.realm.name</emphasis> is not empty, then the default value will be the value of the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field is empty and the value of the parameter <emphasis>default.realm.name</emphasis> is not empty, then the default value will be the value of the parameter.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field and the parameter <emphasis>default.realm.name</emphasis> are both empty, the default value will be <emphasis>"exo-domain".</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field and the parameter <emphasis>default.realm.name</emphasis> are both empty, the default value will be <emphasis>"exo-domain".</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- All the dependencies of the portal container ordered by loading priority. This field is optional. If this field has a non empty value, it will be the default list of dependencies.
- </entry>
+ </row>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ All the dependencies of the portal container ordered by loading priority. This field is optional. If this field has a non empty value, it will be the default list of dependencies.
+ </entry>
- </row>
- <row>
- <entry>
- settings
- </entry>
- <entry>
- A <envar>java.util.Map</envar> of internal parameters that we would like to tie the default portal container. Those parameters could have any type of value. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ settings
+ </entry>
+ <entry>
+ A <envar>java.util.Map</envar> of internal parameters that we would like to tie the default portal container. Those parameters could have any type of value. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- externalSettingsPath
- </entry>
- <entry>
- The path of the external properties file to load as default settings to the default portal container. This field is optional. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
- <orderedlist>
- <listitem>
- <para>
- The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
- <orderedlist>
- <listitem>
- <para>
- A file exists at <emphasis>${exo-conf-dir}/portal/${externalSettingsPath}</emphasis>, we will load this file.
- </para>
+ </row>
+ <row>
+ <entry>
+ externalSettingsPath
+ </entry>
+ <entry>
+ The path of the external properties file to load as default settings to the default portal container. This field is optional. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
+ <orderedlist>
+ <listitem>
+ <para>
+ The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
+ <orderedlist>
+ <listitem>
+ <para>
+ A file exists at <emphasis>${exo-conf-dir}/portal/${externalSettingsPath}</emphasis>, we will load this file.
+ </para>
- </listitem>
- <listitem>
- <para>
- No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </para>
+ </para>
- </listitem>
- <listitem>
- <para>
- The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- Internal and external settings are both optional, but if we give a non empty value for both the application will merge the settings. If the same setting name exists in both settings, we apply the following rules:
- </para>
- <orderedlist>
- <listitem>
- <para>
- The value of the external setting is <emphasis>null</emphasis>, we ignore the value.
- </para>
+ </note>
+ <para>
+ Internal and external settings are both optional, but if we give a non empty value for both the application will merge the settings. If the same setting name exists in both settings, we apply the following rules:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The value of the external setting is <emphasis>null</emphasis>, we ignore the value.
+ </para>
- </listitem>
- <listitem>
- <para>
- The value of the external setting is not <emphasis>null</emphasis> and the value of the internal setting is <emphasis>null</emphasis>, the final value will be the external setting value that is of type <envar>String</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The value of the external setting is not <emphasis>null</emphasis> and the value of the internal setting is <emphasis>null</emphasis>, the final value will be the external setting value that is of type <envar>String</envar>.
+ </para>
- </listitem>
- <listitem>
- <para>
- Both values are not <envar>null</envar>, we will have to convert the external setting value into the target type which is the type of the internal setting value, thanks to the static method <emphasis>valueOf(String)</emphasis>, the following sub-rules are then applied:
- </para>
- <orderedlist>
- <listitem>
- <para>
- The method cannot be found, the final value will be the external setting value that is of type <envar>String</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Both values are not <envar>null</envar>, we will have to convert the external setting value into the target type which is the type of the internal setting value, thanks to the static method <emphasis>valueOf(String)</emphasis>, the following sub-rules are then applied:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The method cannot be found, the final value will be the external setting value that is of type <envar>String</envar>.
+ </para>
- </listitem>
- <listitem>
- <para>
- The method can be found and the external setting value is an empty <envar>String</envar>, we ignore the external setting value.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The method can be found and the external setting value is an empty <envar>String</envar>, we ignore the external setting value.
+ </para>
- </listitem>
- <listitem>
- <para>
- The method can be found and the external setting value is not an empty <envar>String</envar> but the method call fails, we ignore the external setting value.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The method can be found and the external setting value is not an empty <envar>String</envar> but the method call fails, we ignore the external setting value.
+ </para>
- </listitem>
- <listitem>
- <para>
- The method can be found and the external setting value is not an empty <envar>String</envar> and the method call succeeds, the final value will be the external setting value that is of type of the internal setting value.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The method can be found and the external setting value is not an empty <envar>String</envar> and the method call succeeds, the final value will be the external setting value that is of type of the internal setting value.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-PortalContainer_settings">
- <title><envar>PortalContainer</envar> settings</title>
- <para>
- We can inject the value of the portal container settings into the portal container configuration files thanks to the variables which name start with "<emphasis>portal.container.</emphasis>", so to get the value of a setting called "<emphasis>foo</emphasis>", just use the following syntax <emphasis>${portal.container.foo}</emphasis>. You can also use internal variables, such as:
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-PortalContainer_settings-Definition_of_the_internal_variables">
- <title>Definition of the internal variables</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- portal.container.name
- </entry>
- <entry>
- Gives the name of the current portal container.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-PortalContainer_settings">
+ <title><envar>PortalContainer</envar> settings</title>
+ <para>
+ We can inject the value of the portal container settings into the portal container configuration files thanks to the variables which name start with "<emphasis>portal.container.</emphasis>", so to get the value of a setting called "<emphasis>foo</emphasis>", just use the following syntax <emphasis>${portal.container.foo}</emphasis>. You can also use internal variables, such as:
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-PortalContainer_settings-Definition_of_the_internal_variables">
+ <title>Definition of the internal variables</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ portal.container.name
+ </entry>
+ <entry>
+ Gives the name of the current portal container.
+ </entry>
- </row>
- <row>
- <entry>
- portal.container.rest
- </entry>
- <entry>
- Gives the context name of the rest web application of the current portal container.
- </entry>
+ </row>
+ <row>
+ <entry>
+ portal.container.rest
+ </entry>
+ <entry>
+ Gives the context name of the rest web application of the current portal container.
+ </entry>
- </row>
- <row>
- <entry>
- portal.container.realm
- </entry>
- <entry>
- Gives the realm name of the current portal container.
- </entry>
+ </row>
+ <row>
+ <entry>
+ portal.container.realm
+ </entry>
+ <entry>
+ Gives the realm name of the current portal container.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- You can find below an example of how to use the variables:
- </para>
-
-<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ </table>
+ <para>
+ You can find below an example of how to use the variables:
+ </para>
+
+<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.container.TestPortalContainer$MyComponent</type>
<init-params>
@@ -740,38 +740,38 @@
</init-params>
</component>
</configuration></programlisting>
- <para>
- In the properties file corresponding to the external settings, you can reuse variables previously defined (in the external settings or in the internal settings) to create a new variable. In this case, the prefix "<emphasis>portal.container.</emphasis>" is not needed, see an example below:
+ <para>
+ In the properties file corresponding to the external settings, you can reuse variables previously defined (in the external settings or in the internal settings) to create a new variable. In this case, the prefix "<emphasis>portal.container.</emphasis>" is not needed, see an example below:
<programlisting>my-var1=value 1
my-var2=value 2
complex-value=${my-var1}-${my-var2}</programlisting>
- </para>
- <para>
- In the external and internal settings, you can also use create variables based on value of System paramaters. The System parameters can either be defined at launch time or thanks to the <envar>PropertyConfigurator</envar> (see next section for more details). See an example below:
- </para>
-
+ </para>
+ <para>
+ In the external and internal settings, you can also use create variables based on value of System parameters. The System parameters can either be defined at launch time or thanks to the <envar>PropertyConfigurator</envar> (see next section for more details). See an example below:
+ </para>
+
<programlisting>temp-dir=${java.io.tmpdir}${file.separator}my-temp</programlisting>
- <para>
- However, for the internal settings, you can use System parameters only to define settings of type <envar>java.lang.String</envar>.
- </para>
- <para>
- It cans be also very useful to define a generic variable in the settings of the default portal container, the value of this variable will change according to the current portal container. See below an example:
+ <para>
+ However, for the internal settings, you can use System parameters only to define settings of type <envar>java.lang.String</envar>.
+ </para>
+ <para>
+ It cans be also very useful to define a generic variable in the settings of the default portal container, the value of this variable will change according to the current portal container. See below an example:
<programlisting>my-generic-var=value of the portal container "${name}"</programlisting>
- </para>
- <para>
- If this variable is defined at the default portal container level, the value of this variable for a portal container called <emphasis>"foo"</emphasis> will be <emphasis>value of the portal container "foo"</emphasis>.
- </para>
+ </para>
+ <para>
+ If this variable is defined at the default portal container level, the value of this variable for a portal container called <emphasis>"foo"</emphasis> will be <emphasis>value of the portal container "foo"</emphasis>.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer">
- <title>Adding dynamically settings and/or dependencies to a <envar>PortalContainer</envar></title>
- <para>
- It is possible to use <envar>component-plugin</envar> elements in order to dynamically change a PortalContainerDefinition. In the example below, we add the dependency <envar>foo</envar> to the default portal container and to the portal containers called <envar>foo1</envar> and <envar>foo2</envar>:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer">
+ <title>Adding dynamically settings and/or dependencies to a <envar>PortalContainer</envar></title>
+ <para>
+ It is possible to use <envar>component-plugin</envar> elements in order to dynamically change a PortalContainerDefinition. In the example below, we add the dependency <envar>foo</envar> to the default portal container and to the portal containers called <envar>foo1</envar> and <envar>foo2</envar>:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -808,127 +808,127 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-Descriptions_of_the_fields_of_a_PortalContainerDefinitionChangePlugin">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinitionChangePlugin</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- apply.all (*)
- </entry>
- <entry>
- Indicates whether the changes have to be applied to all the portal containers or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-Descriptions_of_the_fields_of_a_PortalContainerDefinitionChangePlugin">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinitionChangePlugin</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ apply.all (*)
+ </entry>
+ <entry>
+ Indicates whether the changes have to be applied to all the portal containers or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- apply.default (*)
- </entry>
- <entry>
- Indicates whether the changes have to be applied to the default portal container or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
- </entry>
+ </row>
+ <row>
+ <entry>
+ apply.default (*)
+ </entry>
+ <entry>
+ Indicates whether the changes have to be applied to the default portal container or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- apply.specific (*)
- </entry>
- <entry>
- A set of specific portal container names to which we want to apply the changes. This field is a <envar>ValuesParam</envar> and is not mandatory.
- </entry>
+ </row>
+ <row>
+ <entry>
+ apply.specific (*)
+ </entry>
+ <entry>
+ A set of specific portal container names to which we want to apply the changes. This field is a <envar>ValuesParam</envar> and is not mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- <envar>Rest of the expected parameters </envar>
- </entry>
- <entry>
- The rest of the expected parameters are <envar>ObjectParam</envar> of type <envar>PortalContainerDefinitionChange</envar>. Those parameters are in fact the list of changes that we want to apply to one or several portal containers. If the list of changes is empty, the component plugin will be ignored. The supported implementations of PortalContainerDefinitionChange are described later in this section.
- </entry>
+ </row>
+ <row>
+ <entry>
+ <envar>Rest of the expected parameters </envar>
+ </entry>
+ <entry>
+ The rest of the expected parameters are <envar>ObjectParam</envar> of type <envar>PortalContainerDefinitionChange</envar>. Those parameters are in fact the list of changes that we want to apply to one or several portal containers. If the list of changes is empty, the component plugin will be ignored. The supported implementations of PortalContainerDefinitionChange are described later in this section.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- To identify the portal containers to which the changes have to be applied, we use the following algorithm:
- </para>
- <orderedlist>
- <listitem>
- <para>
- The parameter <envar>apply.all</envar> has been set to <envar>true</envar>. The corresponding changes will be applied to all the portal containers. The other parameters will be ignored.
- </para>
+ </note>
+ <para>
+ To identify the portal containers to which the changes have to be applied, we use the following algorithm:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The parameter <envar>apply.all</envar> has been set to <envar>true</envar>. The corresponding changes will be applied to all the portal containers. The other parameters will be ignored.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the default portal container and the given list of specific portal containers.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the default portal container and the given list of specific portal containers.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the given list of specific portal containers.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the given list of specific portal containers.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-The_existing_implementations_of_PortalContainerDefinitionChange">
- <title>The existing implementations of <envar>PortalContainerDefinitionChange</envar></title>
- <para>
- The modifications that can be applied to a <envar>PortalContainerDefinition</envar> must be a class of type <envar>PortalContainerDefinitionChange</envar>. The product proposes out of the box some implementations that we describe in the next sub sections.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependencies">
- <title><envar>AddDependencies</envar></title>
- <para>
- This modification adds a list of dependencies at the end of the list of dependencies defined into the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependencies</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependencies-Descriptions_of_the_fields_of_an_AddDependencies">
- <title>Descriptions of the fields of an <envar>AddDependencies</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </orderedlist>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-The_existing_implementations_of_PortalContainerDefinitionChange">
+ <title>The existing implementations of <envar>PortalContainerDefinitionChange</envar></title>
+ <para>
+ The modifications that can be applied to a <envar>PortalContainerDefinition</envar> must be a class of type <envar>PortalContainerDefinitionChange</envar>. The product proposes out of the box some implementations that we describe in the next sub sections.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependencies">
+ <title><envar>AddDependencies</envar></title>
+ <para>
+ This modification adds a list of dependencies at the end of the list of dependencies defined into the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependencies</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependencies-Descriptions_of_the_fields_of_an_AddDependencies">
+ <title>Descriptions of the fields of an <envar>AddDependencies</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add <envar>foo</envar> at the end of the dependency list of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add <envar>foo</envar> at the end of the dependency list of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -961,45 +961,45 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesBefore">
- <title><envar>AddDependenciesBefore</envar></title>
- <para>
- This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesBefore</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesBefore-Descriptions_of_the_fields_of_an_AddDependenciesBefore">
- <title>Descriptions of the fields of an <envar>AddDependenciesBefore</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesBefore">
+ <title><envar>AddDependenciesBefore</envar></title>
+ <para>
+ This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesBefore</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesBefore-Descriptions_of_the_fields_of_an_AddDependenciesBefore">
+ <title>Descriptions of the fields of an <envar>AddDependenciesBefore</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
- <row>
- <entry>
- target
- </entry>
- <entry>
- The name of the dependency before which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in first position to the list.
- </entry>
+ </row>
+ <row>
+ <entry>
+ target
+ </entry>
+ <entry>
+ The name of the dependency before which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in first position to the list.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add <envar>foo</envar> before <envar>foo2</envar> in the dependency list of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add <envar>foo</envar> before <envar>foo2</envar> in the dependency list of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1036,45 +1036,45 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesAfter">
- <title><envar>AddDependenciesAfter</envar></title>
- <para>
- This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesAfter</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesAfter-Descriptions_of_the_fields_of_an_AddDependenciesAfter">
- <title>Descriptions of the fields of an <envar>AddDependenciesAfter</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesAfter">
+ <title><envar>AddDependenciesAfter</envar></title>
+ <para>
+ This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesAfter</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesAfter-Descriptions_of_the_fields_of_an_AddDependenciesAfter">
+ <title>Descriptions of the fields of an <envar>AddDependenciesAfter</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
- <row>
- <entry>
- target
- </entry>
- <entry>
- The name of the dependency after which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in last position to the list.
- </entry>
+ </row>
+ <row>
+ <entry>
+ target
+ </entry>
+ <entry>
+ The name of the dependency after which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in last position to the list.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add <envar>foo</envar> after <envar>foo2</envar> in the dependency list of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add <envar>foo</envar> after <envar>foo2</envar> in the dependency list of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1111,36 +1111,36 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddSettings">
- <title><envar>AddSettings</envar></title>
- <para>
- This modification adds new settings to a <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddSettings</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddSettings-Descriptions_of_the_fields_of_an_AddSettings">
- <title>Descriptions of the fields of an <envar>AddSettings</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- settings
- </entry>
- <entry>
- A map of <emphasis><String, Object></emphasis> corresponding to the settings to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddSettings">
+ <title><envar>AddSettings</envar></title>
+ <para>
+ This modification adds new settings to a <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddSettings</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddSettings-Descriptions_of_the_fields_of_an_AddSettings">
+ <title>Descriptions of the fields of an <envar>AddSettings</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ settings
+ </entry>
+ <entry>
+ A map of <emphasis><String, Object></emphasis> corresponding to the settings to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add the settings <envar>string</envar> and <envar>stringX</envar> to the settings of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add the settings <envar>string</envar> and <envar>stringX</envar> to the settings of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1186,20 +1186,20 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Disable_dynamically_a_portal_container">
- <title>Disable dynamically a portal container</title>
- <para>
- It is possible to use <envar>component-plugin</envar> elements in order to dynamically disable one or several portal containers. In the example below, we disable the portal container named <envar>foo</envar>:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Disable_dynamically_a_portal_container">
+ <title>Disable dynamically a portal container</title>
+ <para>
+ It is possible to use <envar>component-plugin</envar> elements in order to dynamically disable one or several portal containers. In the example below, we disable the portal container named <envar>foo</envar>:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1219,35 +1219,35 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Disable_dynamically_a_portal_container-Descriptions_of_the_fields_of_a_PortalContainerDefinitionDisablePlugin">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinitionDisablePlugin</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- names (*)
- </entry>
- <entry>
- The list of the name of the portal containers to disable.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Disable_dynamically_a_portal_container-Descriptions_of_the_fields_of_a_PortalContainerDefinitionDisablePlugin">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinitionDisablePlugin</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ names (*)
+ </entry>
+ <entry>
+ The list of the name of the portal containers to disable.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- To prevent any accesses to a web application corresponding to <envar>PortalContainer</envar> that has been disabled, you need to make sure that the following Http Filter (or a sub class of it) has been added to your web.xml in first position as below:
- </para>
-
+ </note>
+ <para>
+ To prevent any accesses to a web application corresponding to <envar>PortalContainer</envar> that has been disabled, you need to make sure that the following Http Filter (or a sub class of it) has been added to your web.xml in first position as below:
+ </para>
+
<programlisting language="XML" role="XML"><filter>
<filter-name>PortalContainerFilter</filter-name>
<filter-class>org.exoplatform.container.web.PortalContainerFilter</filter-class>
@@ -1257,15 +1257,15 @@
<filter-name>PortalContainerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping></programlisting>
- <note>
- <para>
- It is only possible to disable a portal container when at least one PortalContainerDefinition has been registered.
- </para>
+ <note>
+ <para>
+ It is only possible to disable a portal container when at least one PortalContainerDefinition has been registered.
+ </para>
- </note>
+ </note>
- </section>
-
+ </section>
+
</section>
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -659,7 +659,7 @@
private String referralMode = "follow";
...</programlisting>
<para>
- You see that the types (String, int) of the fields in the configuration correspond with the bean. A short glance in the kernel_1_0.xsd file let us discover more simple types:
+ You see that the types (String, int) of the fields in the configuration correspond with the bean. A short glance in the kernel_1_2.xsd file let us discover more simple types:
</para>
<itemizedlist>
<listitem>
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,114 +4,114 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-The_eXo_Kernel">
- <title>The eXo Kernel</title>
- <para>
- JBoss Enterprise Portal Platform is built as a set of services on top of a dependency injection kernel. The kernel provides configuration, life-cycle handling, component scopes and some core services.
- </para>
- <para>
- The portal kernel and the JCR used in JBoss Enterprise Portal Platform use the <emphasis>Inversion of Control</emphasis> (<emphasis role="bold">IoC</emphasis>) system to control service instantiation. This method is also known as 'dependency injection'.
- </para>
- <para>
- In this system, services are not responsible for the instantiation of the components on which they depend. It prevents objects creating the instances of any objects referenced. This task is delegated to the container. The below image illustrates this:
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/Advanced/Foundations/ioc.png" format="PNG" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" fileref="images/Advanced/Foundations/ioc.png" format="PNG" width="444" />
- </imageobject>
+ <title>The eXo Kernel</title>
+ <para>
+ JBoss Enterprise Portal Platform is built as a set of services on top of a dependency injection kernel. The kernel provides configuration, life-cycle handling, component scopes and some core services.
+ </para>
+ <para>
+ The portal kernel and the JCR used in JBoss Enterprise Portal Platform use the <emphasis>Inversion of Control</emphasis> (<emphasis role="bold">IoC</emphasis>) system to control service instantiation. This method is also known as 'dependency injection'.
+ </para>
+ <para>
+ In this system, services are not responsible for the instantiation of the components on which they depend. It prevents objects creating the instances of any objects referenced. This task is delegated to the container. The below image illustrates this:
+ </para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/Advanced/Foundations/ioc.png" format="PNG" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" fileref="images/Advanced/Foundations/ioc.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- There are two ways to inject a dependency :
- </para>
- <para>
- Using a constructor:
- </para>
-
+ </mediaobject>
+ <para>
+ There are two ways to inject a dependency :
+ </para>
+ <para>
+ Using a constructor:
+ </para>
+
<programlisting language="Java" role="Java">public ServiceA(ServiceB serviceB)</programlisting>
- <para>
- Using setter methods:
- </para>
-
+ <para>
+ Using setter methods:
+ </para>
+
<programlisting language="Java" role="Java">public void setServiceB(ServiceB serviceB)</programlisting>
- <para>
- When a client service can not be stored in the container then the service locator pattern is used:
- </para>
-
+ <para>
+ When a client service can not be stored in the container then the service locator pattern is used:
+ </para>
+
<programlisting language="Java" role="Java">public ServiceA(){
this.serviceB =Container.getSInstance().getService(ServiceB.class);
}</programlisting>
- <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>
- The second scope, the <literal>PortalContainer</literal>, is portal-specific. Each portal exists in an instance of the <literal>PortalContainer</literal>. This scope contains services that are common for a set of portals, and services which should not be shared by all portals.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- RootContainer: This is a base container. This container plays an important role during startup, but you should not use it directly.
- </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>
+ The second scope, the <literal>PortalContainer</literal>, is portal-specific. Each portal exists in an instance of the <literal>PortalContainer</literal>. This scope contains services that are common for a set of portals, and services which should not be shared by all portals.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ RootContainer: This is a base container. This container plays an important role during startup, but you should not use it directly.
+ </para>
- </listitem>
- <listitem>
- <para>
- PortalContainer: Created at the startup of the portal web application (in the init() method of the PortalController servlet)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ PortalContainer: Created at the startup of the portal web application (in the init() method of the PortalController servlet)
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/Advanced/Foundations/PortalContainers.png" format="PNG" scale="100" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/Advanced/Foundations/PortalContainers.png" format="PNG" width="444" />
- </imageobject>
+ </itemizedlist>
+ <para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/Advanced/Foundations/PortalContainers.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/Advanced/Foundations/PortalContainers.png" format="PNG" width="444" />
+ </imageobject>
- </mediaobject>
+ </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>
- <para>
- JBoss Enterprise Portal Platform can have default instances of a certain component in the <literal>RootContainer</literal>, and portal specific instances in some or all <literal>PortalContainers</literal>, that override the default instance.
- </para>
- <para>
- Whenever your portal application has to be integrated more closely with eXo services, these services can be looked up through the <literal>PortalContainer</literal>.
- </para>
- <important>
- <para>
- Only officially documented services should be accessed this way, and used according to documentation, as most of the services are an implementation detail of eXo, and subject to change without notice.
- </para>
+ </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>
+ <para>
+ JBoss Enterprise Portal Platform can have default instances of a certain component in the <literal>RootContainer</literal>, and portal specific instances in some or all <literal>PortalContainers</literal>, that override the default instance.
+ </para>
+ <para>
+ Whenever your portal application has to be integrated more closely with eXo services, these services can be looked up through the <literal>PortalContainer</literal>.
+ </para>
+ <important>
+ <para>
+ Only officially documented services should be accessed this way, and used according to documentation, as most of the services are an implementation detail of eXo, and subject to change without notice.
+ </para>
- </important>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_eXo_Kernel-Kernel_configuration_namespace">
- <title>Kernel configuration namespace</title>
- <para>
- To be effective, the namespace URI <uri>http://www.exoplaform.org/xml/ns/kernel_1_2.xsd</uri> must be target namespace of the XML configuration file.
- </para>
-
+ </important>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_eXo_Kernel-Kernel_configuration_namespace">
+ <title>Kernel configuration namespace</title>
+ <para>
+ To be effective, the namespace URI <uri>http://www.exoplaform.org/xml/ns/kernel_1_2.xsd</uri> must be target namespace of the XML configuration file.
+ </para>
+
<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
@@ -119,11 +119,11 @@
...
</configuration></programlisting>
- <note>
- <para>
- Any values in the configuration files can be created thanks to variables since the eXo kernel resolves them, for example the following configuration will be well interpreted:
- </para>
-
+ <note>
+ <para>
+ Any values in the configuration files can be created thanks to variables since the eXo kernel resolves them, for example the following configuration will be well interpreted:
+ </para>
+
<programlisting language="XML" role="XML"><configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
@@ -134,14 +134,14 @@
<import>simple.xml</import>
</configuration></programlisting>
- <para>
- The variables that are supported, are System properties and variables that are specific to your portal container, see next sections for more details.
- </para>
+ <para>
+ The variables that are supported, are System properties and variables that are specific to your portal container, see next sections for more details.
+ </para>
- </note>
+ </note>
- </section>
-
+ </section>
+
</section>
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -30,7 +30,7 @@
<section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_configuration-Profiles_definition">
<title>Profiles definition</title>
<para>
- Profile activation occurs at XML to configuration object unmarshalling time. It is based on an "profile" attribute that is present on some of the XML element of the configuration files. To enable this, the kernel configuration schema has been upgraded to kernel_1_1.xsd. The configuration is based on the following rules:
+ Profile activation occurs at XML to configuration object unmarshalling time. It is based on an "profile" attribute that is present on some of the XML element of the configuration files. To enable this, the kernel configuration schema has been upgraded to kernel_1_2.xsd. The configuration is based on the following rules:
</para>
<orderedlist>
<listitem>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Specific_Services.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Specific_Services.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Specific_Services.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -10,7 +10,7 @@
<section id="sect-Reference_Guide_eXo_JCR_1.14-ListenerService-Asynchronous_Event_Broadcast">
<title>Asynchronous Event Broadcast</title>
<para>
- Basicaly, ListenerService used to store Listeners and broadcast events to them.
+ Basically, ListenerService used to store Listeners and broadcast events to them.
</para>
<para>
ListenerService event broadcasting works in next way - it takes a destination listeners and executes event on those listeners.
@@ -148,7 +148,7 @@
...
}</programlisting>
<para>
- The boadcast() methods retrieve the name of the event and find the registered listeners with the same name and call the method onEvent() on each listener found.
+ The broadcast() methods retrieve the name of the event and find the registered listeners with the same name and call the method onEvent() on each listener found.
</para>
<para>
Each listener is a class that extends org.exoplatform.services.listener.Listener, as you can see below:
@@ -414,8 +414,8 @@
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.scheduler.impl.QuartzSheduler</type>
@@ -643,8 +643,8 @@
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.scheduler.impl.QuartzSheduler</type>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/conversationstate-when-membership-changed.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/conversationstate-when-membership-changed.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/conversationstate-when-membership-changed.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.ConversationStateUserMembershipUpdated">
- <?dbhtml filename="ch-conversationstate-when-membership-changed.html"?>
+<section>
<title>Update ConversationState when user's Membership changed</title>
@@ -10,13 +9,13 @@
ConversationSate for this user. ConversationState keeps user's Identity that
is actual for logged in time. In this case even user's Membership updated in
OrganizationService ConversationState still keeps old (not actual Identity).
- User must logged out and loggin in again to update Identity. To fix this
+ User must logged out and login in again to update Identity. To fix this
issue, need add special listener in configuration of OrganizationServicer.
This listener is extended MembershipEventListener.</para>
<para>Example of configuration.</para>
- <programlisting language="xml"><?xml version="1.0" encoding="ISO-8859-1"?>
+ <programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd"
@@ -33,4 +32,4 @@
<external-component-plugins>
</configuration></programlisting>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/core.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/core.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/core.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id="Core">
- <?dbhtml filename="ch-core.html"?>
+<section>
<title>eXo Core</title>
@@ -15,4 +14,4 @@
<para>It's Authentication and Security, Organization, Database, Logging,
JNDI, LDAP, Document reader and other services.</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-configuration-hibernate.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-configuration-hibernate.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-configuration-hibernate.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.DatabaseConfigurationforHibernate">
- <?dbhtml filename="ch-db-configuration-hibernate.html"?>
+<section>
<title>Database Configuration for Hibernate</title>
@@ -16,7 +15,7 @@
<para>The default DB configuration uses HSQLDB, a Java Database quite
useful for demonstrations.</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.database.HibernateService</key>
<jmx-name>exo-service:type=HibernateService</jmx-name>
<type>org.exoplatform.services.database.impl.HibernateServiceImpl</type>
@@ -57,7 +56,7 @@
<para>For MySQL</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.database.HibernateService</key>
<jmx-name>database:type=HibernateService</jmx-name>
<type>org.exoplatform.services.database.impl.HibernateServiceImpl</type>
@@ -92,7 +91,7 @@
so, you just have to add a plugin and indicate the location of your
files.</para>
- <programlisting language="xml"><?xml version="1.0" encoding="ISO-8859-1"?>
+ <programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1"?>
<configuration>
<external-component-plugins>
<target-component>org.exoplatform.services.database.HibernateService</target-component>
@@ -114,4 +113,4 @@
</external-component-plugins>
</configuration></programlisting>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-creator-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-creator-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-creator-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id="Core.DBCreatorService">
- <?dbhtml filename="ch-db-creator-service.html"?>
+<section>
<title>Database Creator</title>
@@ -37,11 +36,11 @@
<para>Service provide method for execute script for new database creation.
Database name which are passed as parameter will be substituted in DDL
script instead of <envar>${database}</envar> template. Returns
- <envar>DBConnectionInfo</envar> object (with all neccesary information of
+ <envar>DBConnectionInfo</envar> object (with all necessary information of
new database's connection) or throws <envar>DBCreatorException</envar>
exception if any errors occurs in other case.</para>
- <programlisting language="java">public DBConnectionInfo createDatabase(String dbName) throws DBCreatorException;
+ <programlisting language="Java" role="Java">public DBConnectionInfo createDatabase(String dbName) throws DBCreatorException;
</programlisting>
<para>For MSSQL and Sybase servers, use autocommit mode to set true for
@@ -49,7 +48,7 @@
created database not available for "use" command and therefore you can't
create new user inside database per one script.</para>
- <programlisting language="java">public DBConnectionInfo getDBConnectionInfo(String dbName) throws DBCreatorException;
+ <programlisting language="Java" role="Java">public DBConnectionInfo getDBConnectionInfo(String dbName) throws DBCreatorException;
</programlisting>
<para>Return database connection information without database
@@ -61,7 +60,7 @@
<para>Service's configuration.</para>
- <programlisting language="xml"> <component>
+ <programlisting language="XML" role="XML"> <component>
<key>org.exoplatform.services.database.creator.DBCreator</key>
<type>org.exoplatform.services.database.creator.DBCreator</type>
<init-params>
@@ -92,12 +91,12 @@
<para>There is four reserved and mandatory properties
<emphasis>driverClassName</emphasis>, <emphasis>url</emphasis>,
<emphasis>username</emphasis> and <emphasis>password</emphasis>. But
- db-connection may contain additonal properties.</para>
+ db-connection may contain additional properties.</para>
- <para>For example, next additional proprites allows reconnect to MySQL
+ <para>For example, next additional properties allows reconnect to MySQL
database when connection was refused:</para>
- <programlisting language="xml"> <properties-param>
+ <programlisting language="XML" role="XML"> <properties-param>
<name>db-connection</name>
...
<property name="validationQuery" value="select 1"/>
@@ -105,7 +104,7 @@
...
</properties-param></programlisting>
- <para><envar>db-creation</envar> properties section contains paramaters
+ <para><envar>db-creation</envar> properties section contains parameters
for database creation using DDL script:</para>
<itemizedlist>
@@ -130,35 +129,35 @@
<para>MySQL:</para>
- <programlisting language="xml"><property name="driverClassName" value="com.mysql.jdbc.Driver" />
+ <programlisting language="XML" role="XML"><property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/" />
<property name="username" value="root" />
<property name="password" value="admin" /></programlisting>
<para>PostgreSQL:</para>
- <programlisting language="xml"><property name="driverClassName" value="org.postgresql.Driver" />
+ <programlisting language="XML" role="XML"><property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost/" />
<property name="username" value="root" />
<property name="password" value="admin" /></programlisting>
<para>MSSQL:</para>
- <programlisting language="xml"><property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
+ <programlisting language="XML" role="XML"><property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://localhost:1433;"/>
<property name="username" value="root"/>
<property name="password" value="admin"/></programlisting>
<para>Sybase:</para>
- <programlisting language="xml"><property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
+ <programlisting language="XML" role="XML"><property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
<property name="url" value="jdbc:sybase:Tds:localhost:5000/"/>
<property name="username" value="root"/>
<property name="password" value="admin"/></programlisting>
<para>Oracle:</para>
- <programlisting language="xml"><property name="driverClassName" value="oracle.jdbc.OracleDriver" />
+ <programlisting language="XML" role="XML"><property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@db2.exoua-int:1521:orclvm" />
<property name="username" value="root" />
<property name="password" value="admin" /></programlisting>
@@ -206,4 +205,4 @@
GRANT "CONNECT" TO "${username}";
GRANT "RESOURCE" TO "${username}";</programlisting>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-schema-creator-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-schema-creator-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/db-schema-creator-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.DBSchemacreatorserviceJDBCimplementation">
- <?dbhtml filename="ch-db-schema-creator-service.html"?>
+<section>
<title>DB Schema creator service (JDBC implementation)</title>
@@ -10,7 +9,7 @@
DDL script inside service configuration or in an external file,
calling:</para>
- <programlisting language="java"> org.exoplatform.services.database.jdbc.DBSchemaCreator.createTables(String dsName, String script)</programlisting>
+ <programlisting language="Java" role="Java"> org.exoplatform.services.database.jdbc.DBSchemaCreator.createTables(String dsName, String script)</programlisting>
<para>via</para>
@@ -18,7 +17,7 @@
<para>A configuration example:</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.database.jdbc.DBSchemaCreator</key>
<type>org.exoplatform.services.database.jdbc.DBSchemaCreator</type>
<component-plugins>
@@ -47,4 +46,4 @@
PATH VARCHAR(1024) NOT NULL
);
CREATE INDEX JCR_IDX_MITEM_PATH ON JCR_MITEM(PATH);</programlisting>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/digest-auth.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/digest-auth.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/digest-auth.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,7 +1,7 @@
<?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">
-<chapter>
+<section>
<title>Digest Authentication</title>
<section>
@@ -141,7 +141,7 @@
<para>More information about jboss server Digest authentication
configuration can be found at <ulink
url="http://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch05.html">JBoss
- quide chapter</ulink>.</para>
+ Guide chapter</ulink>.</para>
</section>
</section>
@@ -161,6 +161,6 @@
you can get more information from
<literal>org.exoplatform.services.security.PasswordCredential.getPasswordContext()</literal>.
It can be used to calculate md5 digest of original password to compare it
- with recieved from clientside.</para>
+ with received from clientside.</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/ldap-configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/ldap-configuration.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/ldap-configuration.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.LDAPConfiguration">
- <?dbhtml filename="ch-ldap-configuration.html"?>
+<section>
<title>LDAP Configuration</title>
@@ -34,11 +33,11 @@
</listitem>
</itemizedlist>
- <programlisting language="xml"><import>war:/conf/organization/hibernate-configuration.xml</import></programlisting>
+ <programlisting language="XML" role="XML"><import>war:/conf/organization/hibernate-configuration.xml</import></programlisting>
<para>With</para>
- <programlisting language="xml"><import>war:/conf/organization/ldap-configuration.xml</import></programlisting>
+ <programlisting language="XML" role="XML"><import>war:/conf/organization/ldap-configuration.xml</import></programlisting>
<itemizedlist>
<listitem>
@@ -49,7 +48,7 @@
</listitem>
</itemizedlist>
- <programlisting language="xml"><field name="providerURL"><string>ldap://127.0.0.1:389</string></field>
+ <programlisting language="XML" role="XML"><field name="providerURL"><string>ldap://127.0.0.1:389</string></field>
<field name="rootdn"><string>CN=Manager,DC=MyCompany,DC=com</string></field>
<field name="password"><string>secret</string></field></programlisting>
@@ -65,7 +64,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/organization-exo.jpg" />
+ <imagedata fileref="images/eXoJCR/organization-exo.jpg" />
</imageobject>
</mediaobject>
@@ -96,7 +95,7 @@
parameters. This configuration is activated by the init-param
ldap.config of service LDAPServiceImpl.</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.ldap.LDAPService</key>
<type>org.exoplatform.services.ldap.impl.LDAPServiceImpl</type>
<init-params>
@@ -193,12 +192,12 @@
<para>Next, you need to configure the eXo <emphasis
role="bold">OrganizationService</emphasis> to tell him how the directory
is structured and how to interact with it. This is managed by a couple
- of of init-params : <emphasis role="bold">ldap.userDN.key</emphasis> and
+ of init-params : <emphasis role="bold">ldap.userDN.key</emphasis> and
<emphasis role="bold">ldap.attribute.mapping</emphasis> in file
<emphasis role="bold">ldap-configuration.xml</emphasis> (by default
located at portal.war/WEB-INF/conf/organization)</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.organization.OrganizationService</key>
<type>org.exoplatform.services.organization.ldap.OrganizationServiceImpl</type>
[...]
@@ -222,7 +221,7 @@
ldap to eXo. At first there are two main parameters to configure in
it:</para>
- <programlisting language="xml"><field name="baseURL"><string>dc=exoplatform,dc=org</string></field>
+ <programlisting language="XML" role="XML"><field name="baseURL"><string>dc=exoplatform,dc=org</string></field>
<field name="ldapDescriptionAttr"><string>description</string></field></programlisting>
<itemizedlist>
@@ -255,7 +254,7 @@
<para>Here are the main parameters to map eXo users to your
directory :</para>
- <programlisting language="xml"><field name="userURL"><string>ou=users,ou=portal,dc=exoplatform,dc=org</string></field>
+ <programlisting language="XML" role="XML"><field name="userURL"><string>ou=users,ou=portal,dc=exoplatform,dc=org</string></field>
<field name="userObjectClassFilter"><string>objectClass=person</string></field>
<field name="userLDAPClasses"><string>top,person,organizationalPerson,inetOrgPerson</string></field></programlisting>
@@ -313,7 +312,7 @@
<para>When creating a new user, an entry will be created with the
given objectClass attributes. The classes must at least define cn
- and any attribute refernced in the user mapping.</para>
+ and any attribute referenced in the user mapping.</para>
<para>Example : Adding the user Marry Simons could produce :</para>
@@ -331,7 +330,7 @@
<para>The following parameters maps ldap attributes to eXo User java
objects attributes.</para>
- <programlisting language="xml"><field name="userUsernameAttr"><string>uid</string></field>
+ <programlisting language="XML" role="XML"><field name="userUsernameAttr"><string>uid</string></field>
<field name="userPassword"><string>userPassword</string></field>
<field name="userFirstNameAttr"><string>givenName</string></field>
<field name="userLastNameAttr"><string>sn</string></field>
@@ -389,7 +388,7 @@
<para>eXo groups can be mapped to organizational or applicative groups
defined in your directory.</para>
- <programlisting language="xml"><field name="groupsURL"><string>ou=groups,ou=portal,dc=exoplatform,dc=org</string></field>
+ <programlisting language="XML" role="XML"><field name="groupsURL"><string>ou=groups,ou=portal,dc=exoplatform,dc=org</string></field>
<field name="groupLDAPClasses"><string>top,organizationalUnit</string></field>
<field name="groupObjectClassFilter"><string>objectClass=organizationalUnit</string></field></programlisting>
@@ -470,7 +469,7 @@
<para>Membership types are the possible roles that can be assigned to
users in groups.</para>
- <programlisting language="xml"><field name="membershipTypeURL"><string>ou=memberships,ou=portal,dc=exoplatform,dc=org</string></field>
+ <programlisting language="XML" role="XML"><field name="membershipTypeURL"><string>ou=memberships,ou=portal,dc=exoplatform,dc=org</string></field>
<field name="membershipTypeLDAPClasses"><string>top,organizationalRole</string></field>
<field name="membershipTypeNameAttr"><string>cn</string></field></programlisting>
@@ -553,7 +552,7 @@
<para>The parameters to configure memberships are:</para>
- <programlisting language="xml"><field name="membershipLDAPClasses"><string>top,groupOfNames</string></field>
+ <programlisting language="XML" role="XML"><field name="membershipLDAPClasses"><string>top,groupOfNames</string></field>
<field name="membershipTypeMemberValue"><string>member</string></field>
<field name="membershipTypeRoleNameAttr"><string>cn</string></field>
<field name="membershipTypeObjectClassFilter"><string>objectClass=organizationalRole</string></field></programlisting>
@@ -643,7 +642,7 @@
storage is still done with the hibernate service. You will need the
following parameters:</para>
- <programlisting language="xml"><field name="profileURL"><string>ou=profiles,ou=portal,dc=exoplatform,dc=org</string></field>
+ <programlisting language="XML" role="XML"><field name="profileURL"><string>ou=profiles,ou=portal,dc=exoplatform,dc=org</string></field>
<field name="profileLDAPClasses"><string>top,organizationalPerson</string></field></programlisting>
<itemizedlist>
@@ -755,7 +754,7 @@
JAVA_OPTS="${JAVA_OPTS} -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStore=/home/user/java/jdk1.6/jre/lib/security/cacerts"</programlisting>
- <programlisting language="xml">[...]
+ <programlisting language="XML" role="XML">[...]
<component>
<key>org.exoplatform.services.ldap.LDAPService</key>
[..]
@@ -813,7 +812,7 @@
<programlisting>dynlist-attrset ExoMembership membershipURL member</programlisting>
- <para>This snipet means : On entries that have ExoMembership class, use
+ <para>This snippet means : On entries that have ExoMembership class, use
the URL defined in the value of attribute membershipURL as a query and
populate results under the multivalues attribute member.</para>
@@ -864,4 +863,4 @@
role="bold">manager:/testgroup</emphasis> to any user.</para>
</section>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-initalizer.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-initalizer.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-initalizer.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.OrganizationServiceInitializer">
- <?dbhtml filename="ch-organization-service-initalizer.html"?>
+<section>
<title>Organization Service Initializer</title>
<para>Use the Organization Service Initializer to create users, groups and
membership types by default.</para>
- <programlisting language="xml"><external-component-plugins>
+ <programlisting language="XML" role="XML"><external-component-plugins>
<target-component>org.exoplatform.services.organization.OrganizationService</target-component>
<component-plugin>
<name>init.service.listener</name>
@@ -179,4 +178,4 @@
consist.</para>
</listitem>
</itemizedlist>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-listener.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-listener.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service-listener.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"hp://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.OrganizationListener">
- <?dbhtml filename="ch-organization-service-listener.html"?>
+<section>
<title>Organization Listener</title>
<section>
<title>Overview</title>
- <para>The <link linkend="Core.OrganizationService">Organization
- Service</link> provides a mechanism to receive notifications when :</para>
+ <para>The Organization Service provides a mechanism to receive notifications when :</para>
<itemizedlist>
<listitem>
@@ -60,7 +58,7 @@
<>org.exoplatform.services.organization.UserEventListener</>
:</para>
- <programlisting language="java">public class MyUserListener extends UserEventListener {
+ <programlisting language="Java" role="Java">public class MyUserListener extends UserEventListener {
public void preSave(User user, boolean isNew) throws Exception {
System.out.println("Before " + (isNew?"creating":"updating") + " user " + user.getUserName());
@@ -88,7 +86,7 @@
<>org.exoplatform.services.organization.GroupEventListener</>
:</para>
- <programlisting language="java">public class MyGroupListener extends GroupEventListener {
+ <programlisting language="Java" role="Java">public class MyGroupListener extends GroupEventListener {
public void preSave(Group group, boolean isNew) throws Exception {
System.out.println("Before " + (isNew?"creating":"updating") + " group " + group.getName());
@@ -115,7 +113,7 @@
<>org.exoplatform.services.organization.MembershipEventListener</>
:</para>
- <programlisting language="java">public class MyMembershipListener extends MembershipEventListener {
+ <programlisting language="Java" role="Java">public class MyMembershipListener extends MembershipEventListener {
public void preSave(Membership membership, boolean isNew) throws Exception {
System.out.println("Before " + (isNew?"creating":"updating") + " membership.");
@@ -140,9 +138,7 @@
<title>Registering your listeners</title>
<para>Registering the listeners is then achieved by using the ExoContainer
- plugin mechanism. Learn more about it on the <link
- linkend="Kernel.ServiceConfigurationforBeginners">Service Configuration
- for Beginners</link> article.</para>
+ plugin mechanism. Learn more about it on the <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Configuring_Services"/>.</para>
<para>To effectively register organization service's listeners you simply
need to use the <>addListenerPlugin</> seer injector.</para>
@@ -151,7 +147,7 @@
a .jar and create a configuration file into it under <emphasis
role="bold">mylisteners.jar!/conf/portal/configuration.xml</emphasis></para>
- <programlisting language="xml"><?xml version="1.0" encoding="ISO-8859-1"?>
+ <programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1"?>
<configuration>
<external-component-plugins>
<target-component>org.exoplatform.services.organization.OrganizationService</target-component>
@@ -179,4 +175,4 @@
<para>Now, simply deploy the jar under $TOMCAT_HOME/lib and your listeners
are ready!</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/organization-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.OrganizationService">
- <?dbhtml filename="ch-organization-service.html"?>
+<section>
<title>Organization Service</title>
@@ -147,4 +146,4 @@
</listitem>
</itemizedlist>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/security-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/security-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/security-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.SecurityService">
- <?dbhtml filename="ch-security-service.html"?>
+<section>
<title>Security Service</title>
@@ -63,7 +62,7 @@
possible to represent it as a <emphasis role="bold">context</emphasis>
(current user's state).</para>
- <programlisting language="java">ConversationState.setCurrent(conversationState);
+ <programlisting language="Java" role="Java">ConversationState.setCurrent(conversationState);
....
ConversationState.getCurrent();</programlisting>
@@ -74,7 +73,7 @@
key-value pairs, the session key is an arbitrary String (user name,
ticket id, httpSessionId etc).</para>
- <programlisting language="java">conversationRegistry.register("key", conversationState);
+ <programlisting language="Java" role="Java">conversationRegistry.register("key", conversationState);
...
conversationRegistry.getState("key");</programlisting>
@@ -82,7 +81,7 @@
ConversationRegistry is a mandatory component deployed into eXo
Container as following:</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<type>org.exoplatform.services.security.ConversationRegistry</type>
</component></programlisting>
</section>
@@ -105,7 +104,7 @@
</listitem>
</itemizedlist>
- <programlisting language="java">public interface Authenticator {
+ <programlisting language="Java" role="Java">public interface Authenticator {
/**
* Authenticate user and return userId which can be different to username.
* @param credentials - list of users credentials (such as name/password, X509 certificate etc)
@@ -142,7 +141,7 @@
which compares incoming username/password credentials with the ones
stored in OrganizationService. Configuration example:</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.security.Authenticator</key>
<type>org.exoplatform.services.organization.auth.OrganizationAuthenticatorImpl</type>
</component></programlisting>
@@ -169,7 +168,7 @@
</listitem>
</itemizedlist>
- <programlisting language="java">Authenticator authenticator = (Authenticator) container()
+ <programlisting language="Java" role="Java">Authenticator authenticator = (Authenticator) container()
.getComponentInstanceOfType(Authenticator.class);
// RolesExtractor can be null
RolesExtractor rolesExtractor = (RolesExtractor) container().
@@ -195,7 +194,7 @@
registered more than one time. Parameter can be passed in this form
singleLogin=yes or singleLogin=true.</para>
- <programlisting language="java">IdentityRegistry identityRegistry = (IdentityRegistry) getContainer().getComponentInstanceOfType(IdentityRegistry.class);
+ <programlisting language="Java" role="Java">IdentityRegistry identityRegistry = (IdentityRegistry) getContainer().getComponentInstanceOfType(IdentityRegistry.class);
if (singleLogin && identityRegistry.getIdentity(identity.getUserId()) != null)
throw new LoginException("User " + identity.getUserId() + " already logined.");
@@ -227,7 +226,7 @@
ConversationRegistry.unregister(sesionId) and calls the method
LoginModule.logout().</para>
- <programlisting language="java">ConversationRegistry conversationRegistry = (ConversationRegistry) getContainer().getComponentInstanceOfType(ConversationRegistry.class);
+ <programlisting language="Java" role="Java">ConversationRegistry conversationRegistry = (ConversationRegistry) getContainer().getComponentInstanceOfType(ConversationRegistry.class);
ConversationState conversationState = conversationRegistry.unregister(sesionId);
@@ -296,7 +295,7 @@
responsible for mapping primary Subject's principals (userId and a set
of groups) to J2EE Roles:</para>
- <programlisting language="java">public interface RolesExtractor {
+ <programlisting language="Java" role="Java">public interface RolesExtractor {
Set <String> extractRoles(String userId, Set<MembershipEntry> memberships);
}</programlisting>
@@ -304,4 +303,4 @@
with a particular set of <emphasis role="bold">Roles</emphasis>.</para>
</section>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/spring-security-integration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/spring-security-integration.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/spring-security-integration.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Core.SpringSecurityIntegration">
- <?dbhtml filename="ch-spring-security-integration.html"?>
+<section>
<title>Spring Security Integration</title>
@@ -75,7 +74,7 @@
authentication mechanism in exo. Edit 02portal.war web.xml file and
comment out the JAAS configuration related lines:</para>
- <programlisting language="xml">...
+ <programlisting language="XML" role="XML">...
<session-config>
<session-timeout>15</session-timeout>
</session-config>
@@ -119,7 +118,7 @@
<para>To enable spring and set the spring security filter, add the
following lines:</para>
- <programlisting language="xml">...
+ <programlisting language="XML" role="XML">...
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/security-context.xml</param-value>
@@ -139,7 +138,7 @@
just after the filter responsible of exo container
initialization.</para>
- <programlisting language="xml">...
+ <programlisting language="XML" role="XML">...
<filter-mapping>
<filter-name>PortalContainerInitializedFilter</filter-name>
<url-pattern>/*</url-pattern>
@@ -164,7 +163,7 @@
purposes. Create a file named security-context.xml in 02portal.war
WEB-INF directory containing the following lines:</para>
- <programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
+ <programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -260,7 +259,7 @@
the login action triggered when the user clicks the login form submit
button.</para>
- <programlisting language="java">package org.exoplatform.loginportlet;
+ <programlisting language="Java" role="Java">package org.exoplatform.loginportlet;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
@@ -330,7 +329,7 @@
url. Edit the article, go to the default.js tab and apply the following
changes to the code:</para>
- <programlisting language="javascript">function validateUser() {
+ <programlisting language="Java" role="Java">function validateUser() {
var user = eXo.env.portal.userName;
var rootObj = document.getElementById("classic-access");
@@ -377,7 +376,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/login-page.jpg" />
+ <imagedata fileref="images/eXoJCR/login-page.jpg" />
</imageobject>
</mediaobject>
</section>
@@ -437,7 +436,7 @@
ApplicationListener interface and listens to the
InteractiveAuthenticationSuccessEvent event.</para>
- <programlisting language="java">package org.exoplatform.spring.security.web;
+ <programlisting language="Java" role="Java">package org.exoplatform.spring.security.web;
...
@@ -511,7 +510,7 @@
<para>Registering our bean is done the usual way in security-context.xml
file:</para>
- <programlisting language="xml">...
+ <programlisting language="XML" role="XML">...
<beans:bean id="myEventHandler" class="org.exoplatform.spring.security.web.SpringSecurityEventHandler" />
...</programlisting>
</section>
@@ -539,7 +538,7 @@
<para>We will use the spring security extensible filter chain to plug in
our filter.</para>
- <programlisting language="java">package org.exoplatform.spring.security.web;
+ <programlisting language="Java" role="Java">package org.exoplatform.spring.security.web;
...
@@ -570,12 +569,12 @@
AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY attribute
names. The portlet can have a look to the
AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY attribute to
- check if a security exception has occured.</para>
+ check if a security exception has occurred.</para>
<para>The following lines in the security-context file register our
custom filter in the chain at the last position.</para>
- <programlisting language="xml">...
+ <programlisting language="XML" role="XML">...
<beans:bean id="myCustomFilter" class="org.exoplatform.spring.security.web.PortalSideSecurityContextFilter">
<custom-filter after="LAST" />
</beans:bean>
@@ -588,7 +587,7 @@
<para>In the portlet webapp we create a regular filter named
PortletSideSecurityContextFilter.</para>
- <programlisting language="java">package org.exoplatform.spring.security.web;
+ <programlisting language="Java" role="Java">package org.exoplatform.spring.security.web;
...
@@ -643,7 +642,7 @@
<para>To register your filter simply add the following lines to your
portlet webapp web.xml file.</para>
- <programlisting language="xml">...
+ <programlisting language="XML" role="XML">...
<filter>
<filter-name>portletSideSecurityContextFilter</filter-name>
<filter-class>org.exoplatform.spring.security.web.PortletSideSecurityContextFilter</filter-class>
@@ -669,4 +668,4 @@
to the attachment section on this page and get the source code of this
tutorial.</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/tika-document-reader-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/tika-document-reader-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core/tika-document-reader-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,9 +1,7 @@
<?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">
-<chapter id="Core.TikaDocumentReaderService">
- <?dbhtml filename="ch-core-document-reader-service.html"?>
-
+<section>
<title>Tika Document Reader Service</title>
<section>
@@ -19,7 +17,7 @@
<section>
<title>Architecture</title>
- <para>Basicaly, DocumentReaderService is a container for all registered
+ <para>Basically, DocumentReaderService is a container for all registered
DocumentReaders. So, you can register DocumentReader (method
addDocumentReader(ComponentPlugin reader)) and fetch DocumentReader by
mimeType (method getDocumentReader(String mimeType)).</para>
@@ -42,7 +40,7 @@
<para>How TikaDocumentReaderService Impl configuration looks
like:</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.document.DocumentReaderService</key>
<type>org.exoplatform.services.document.impl.tika.TikaDocumentReaderServiceImpl</type>
@@ -151,7 +149,7 @@
</configuration></programlisting>
<para>tika-config.xml example:</para>
- <programlisting language="xml"><properties>
+ <programlisting language="XML" role="XML"><properties>
<mimeTypeRepository magic="false"/>
<parsers>
@@ -326,7 +324,7 @@
<para>extend BaseDocumentReader</para>
</listitem>
</itemizedlist>
- <programlisting language="java">public class MyDocumentReader extends BaseDocumentReader
+ <programlisting language="Java" role="Java">public class MyDocumentReader extends BaseDocumentReader
{
public String[] getMimeTypes()
{
@@ -340,7 +338,7 @@
<para>register it as component-plugin</para>
</listitem>
</itemizedlist>
- <programlisting language="xml"><component-plugin>
+ <programlisting language="XML" role="XML"><component-plugin>
<name>my.DocumentReader</name>
<set-method>addDocumentReader</set-method>
<type>com.mycompany.document.MyDocumentReader</type>
@@ -355,7 +353,7 @@
<para>implement Parser</para>
</listitem>
</itemizedlist>
- <programlisting language="java">public class MyParser implements Parser
+ <programlisting language="Java" role="Java">public class MyParser implements Parser
{
...
}</programlisting>
@@ -365,7 +363,7 @@
<para>register it in tika-config.xml</para>
</listitem>
</itemizedlist>
-<programlisting language="xml"> <parser name="parse-mydocument" class="com.mycompany.document.MyParser">
+<programlisting language="XML" role="XML"> <parser name="parse-mydocument" class="com.mycompany.document.MyParser">
<mime>mymimetype</mime>
</parser>
</programlisting>
@@ -379,12 +377,12 @@
<para>TikaDocumentReader features and notes:<itemizedlist>
<listitem>
- <para>TikaDocumentReader may return document contant as Reader
+ <para>TikaDocumentReader may return document content as Reader
object. Old-Style DocumentReader does not;</para>
</listitem>
<listitem>
- <para>TikaDocumentReader do not detects document mimetipe. You will
+ <para>TikaDocumentReader do not detects document mimetype. You will
get exact parser as configured in tika-config;</para>
</listitem>
@@ -393,4 +391,4 @@
</listitem>
</itemizedlist></para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/core.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<part>
- <?dbhtml filename="part-core.html"?>
+<section>
<title>eXoCore</title>
@@ -43,4 +42,4 @@
<xi:include href="core/digest-auth.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
-</part>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq/jcr-faq.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq/jcr-faq.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq/jcr-faq.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,211 +4,211 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_FAQ">
- <title>JCR FAQ</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_FAQ-Kernel">
- <title>Kernel</title>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>What is the best, standardized way to get the instance of a service ?</term>
- <listitem>
- <para>
-
+ <title>JCR FAQ</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_FAQ-Kernel">
+ <title>Kernel</title>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>What is the best, standardized way to get the instance of a service ?</term>
+ <listitem>
+ <para>
+
<programlisting language="Java" role="Java">container.getComponentInstanceOfType(ServiceName.class);</programlisting>
- </para>
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_FAQ-JCR_core">
- <title>JCR core</title>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>Is it better to use Session.getNodeByUUID or Session.getItem?</term>
- <listitem>
- <para><literal>Session.getNodeByUUID()</literal> is about 2.5 times faster than <literal>Session.getItem(String)</literal> and 25% faster than <literal>Node.getNode(String)</literal>.
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_FAQ-JCR_core">
+ <title>JCR core</title>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>Is it better to use Session.getNodeByUUID or Session.getItem?</term>
+ <listitem>
+ <para><literal>Session.getNodeByUUID()</literal> is about 2.5 times faster than <literal>Session.getItem(String)</literal> and 25% faster than <literal>Node.getNode(String)</literal>.
See the daily tests results for such comparisons, e.g.</para>
<para><ulink
url="http://tests.exoplatform.org/JCR/1.12.2-GA/rev.2442/daily-performance-tes...">http://tests.exoplatform.org/JCR/1.12.2-GA/rev.2442/daily-performance-tes...</ulink></para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Does it make sense to have all the node referenceable to use <literal>getNodeByUUID</literal> all the time?</term>
- <listitem>
- <para>
- Until it's applicable for a business logic it can be. But take in account the paths are human readable and lets you think in hierarchy. If it's important a location based approach is preferable.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Does it make sense to have all the node referenceable to use <literal>getNodeByUUID</literal> all the time?</term>
+ <listitem>
+ <para>
+ Until it's applicable for a business logic it can be. But take in account the paths are human readable and lets you think in hierarchy. If it's important a location based approach is preferable.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>What should I use to check if an Item exists before getting the Value?</term>
- <listitem>
- <para>Use <literal>Session.itemExists(String absPath)</literal>, <literal>Node.hasNode(StringrelPath)</literal> or <literal>Property.hasProperty(String name)</literal>. It is also is possible
+ </varlistentry>
+ <varlistentry>
+ <term>What should I use to check if an Item exists before getting the Value?</term>
+ <listitem>
+ <para>Use <literal>Session.itemExists(String absPath)</literal>, <literal>Node.hasNode(StringrelPath)</literal> or <literal>Property.hasProperty(String name)</literal>. It is also is possible
to check <literal>Node.hasNodes()</literal> and <literal>Node.hasProprties()</literal>.</para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How to use Observation properly?</term>
- <listitem>
- <para>
- JCR Observation's a way to listen on persistence changes of a Repository. It provides several options to configure the listener for an interesting only changes. To use properly, it's important to understand concept of events filtering for a registered EventListener.
- </para>
- <para>
- An often confusing part is the <emphasis role="bold">absPath</emphasis>, it's an associated parent of a location you want to observe events on. I.e. it's a parent of child node(s) or this parent property(ies); if <emphasis role="bold">isDeep</emphasis> is true then you'll get events of all the subtree of child nodes also. The same actual for <emphasis role="bold">uuid</emphasis> and <emphasis role="bold">nodeTypeName</emphasis> parameters of ObservationManager.addEventListener() method.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>How to use Observation properly?</term>
+ <listitem>
+ <para>
+ JCR Observation's a way to listen on persistence changes of a Repository. It provides several options to configure the listener for an interesting only changes. To use properly, it's important to understand concept of events filtering for a registered EventListener.
+ </para>
+ <para>
+ An often confusing part is the <emphasis role="bold">absPath</emphasis>, it's an associated parent of a location you want to observe events on. I.e. it's a parent of child node(s) or this parent property(ies); if <emphasis role="bold">isDeep</emphasis> is true then you'll get events of all the subtree of child nodes also. The same actual for <emphasis role="bold">uuid</emphasis> and <emphasis role="bold">nodeTypeName</emphasis> parameters of ObservationManager.addEventListener() method.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Is it better to use queries that to access the data by the JCR API?</term>
- <listitem>
- <para>
- No, direct access to items via JCR API is more efficient. Search will consume additional resources for index querying and only then return the items.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Is it better to use queries that to access the data by the JCR API?</term>
+ <listitem>
+ <para>
+ No, direct access to items via JCR API is more efficient. Search will consume additional resources for index querying and only then return the items.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>What is default query ordering?</term>
- <listitem>
- <para>
- By default (if queries do not contain any ordering statements) result nodes are sorted by document order.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>What is default query ordering?</term>
+ <listitem>
+ <para>
+ By default (if queries do not contain any ordering statements) result nodes are sorted by document order.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Is ordering by jcr:path or Item name supported?</term>
- <listitem>
- <para>
- No, it is not supported. There are two ways to order results, in which <emphasis>path</emphasis> may be used as criteria:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Order by property with value type NAME or PATH (supported).
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Is ordering by jcr:path or Item name supported?</term>
+ <listitem>
+ <para>
+ No, it is not supported. There are two ways to order results, in which <emphasis>path</emphasis> may be used as criteria:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Order by property with value type NAME or PATH (supported).
+ </para>
- </listitem>
- <listitem>
- <para>
- Order by jcr:path - sort by exact path of node (not supported.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Order by jcr:path - sort by exact path of node (not supported.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- Order by jcr:path
- </para>
- <para>
- If no order specification is supplied in the query statement, implementations may support document order on the result nodes. And it is sorted by order number.
- </para>
- <para>
- By default, (if a query does not contain any ordering statements) result nodes is sorted by document order.
- </para>
-
+ </itemizedlist>
+ <para>
+ Order by jcr:path
+ </para>
+ <para>
+ If no order specification is supplied in the query statement, implementations may support document order on the result nodes. And it is sorted by order number.
+ </para>
+ <para>
+ By default, (if a query does not contain any ordering statements) result nodes is sorted by document order.
+ </para>
+
<programlisting>SELECT * FROM nt:unstructured WHERE jcr:path LIKE 'testRoot/%'</programlisting>
- <para>
- For specified jcr:path ordering there is different proceeding in XPath and SQL:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- SQL no matter ascending or descending - query returns result nodes in random order: {code}SELECT * FROM nt:unstructured WHERE jcr:path LIKE 'testRoot/%' ORDER BY jcr:path{code}
- </para>
+ <para>
+ For specified jcr:path ordering there is different proceeding in XPath and SQL:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ SQL no matter ascending or descending - query returns result nodes in random order: {code}SELECT * FROM nt:unstructured WHERE jcr:path LIKE 'testRoot/%' ORDER BY jcr:path{code}
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- XPath - jcr:path order construction is ignored (so result is not sorted according path); {code}/testRoot/* <ulink url="@jcr:primaryType='nt:unstructured'">@jcr:primaryType='nt:unstructured'</ulink> order by jcr:path{code}
- </para>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ XPath - jcr:path order construction is ignored (so result is not sorted according path); {code}/testRoot/* <ulink url="@jcr:primaryType='nt:unstructured'">@jcr:primaryType='nt:unstructured'</ulink> order by jcr:path{code}
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How eXo JCR indexer uses content encoding?</term>
- <listitem>
- <para>
- Indexer uses jcr:encoding property of nt:resource node (used as jcr:content child node of nt:file) 2. if no jcr:encoding property set the Document Service will use the one configured in the service (defaultEncoding) 3. if nothing is configured a JVM, the default encoding will be used.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>How eXo JCR indexer uses content encoding?</term>
+ <listitem>
+ <para>
+ Indexer uses jcr:encoding property of nt:resource node (used as jcr:content child node of nt:file) 2. if no jcr:encoding property set the Document Service will use the one configured in the service (defaultEncoding) 3. if nothing is configured a JVM, the default encoding will be used.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Which database server is better for eXo JCR?</term>
- <listitem>
- <para>
- If the question is a performance, it's difficult question, as each database can be configured to be more (and more) faster for each special case. MySQL with MyISAM engine will be faster. But MySQL has limitations for indexes for multilingual columns (Item names actually). So, with long Item names (larger ofOracle or PostgreSQL also are good for performance. DB2 and MSSQL are slower in default configurations. Default configuration of Sybase leader of slowness. But in this question, take the database server maintenance in account. MySQL and PostgreSQL are simple in installation and can work even on limited hardware. Oracle, DB2, MSSQL or Sybase need more efforts. The same actual for maintenance during the work. Note for Sybase: "check-sns-new-connection" data container configuration parameter should be set to "true". For testing purpose, embedded database such as HSQLDB is the best choice. Apache Derby and H2 also supported. But H2 surprisingly needs "beta" feature enab!
led - MVCC=TRUE in JDBC url.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Which database server is better for eXo JCR?</term>
+ <listitem>
+ <para>
+ If the question is a performance, it's difficult question, as each database can be configured to be more (and more) faster for each special case. MySQL with MyISAM engine will be faster. But MySQL has limitations for indexes for multilingual columns (Item names actually). So, with long Item names (larger ofOracle or PostgreSQL also are good for performance. DB2 and MSSQL are slower in default configurations. Default configuration of Sybase leader of slowness. But in this question, take the database server maintenance in account. MySQL and PostgreSQL are simple in installation and can work even on limited hardware. Oracle, DB2, MSSQL or Sybase need more efforts. The same actual for maintenance during the work. Note for Sybase: "check-sns-new-connection" data container configuration parameter should be set to "true". For testing purpose, embedded database such as HSQLDB is the best choice. Apache Derby and H2 also supported. But H2 surprisingly needs "!
beta" feature enabled - MVCC=TRUE in JDBC url.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How to setup eXo JCR for mutilingial content on MySQL?</term>
- <listitem>
- <para>
- To allow multiple character sets to be sent from the client, the UTF-8 encoding should be used, either by configuring utf8 as the default server character set, or by configuring the JDBC driver to use UTF-8 through the characterEncoding property. MySQL database should be created in single-byte encoding, e.g. "latin1":
- </para>
-
+ </varlistentry>
+ <varlistentry>
+ <term>How to setup eXo JCR for multilingual content on MySQL?</term>
+ <listitem>
+ <para>
+ To allow multiple character sets to be sent from the client, the UTF-8 encoding should be used, either by configuring utf8 as the default server character set, or by configuring the JDBC driver to use UTF-8 through the characterEncoding property. MySQL database should be created in single-byte encoding, e.g. "latin1":
+ </para>
+
<programlisting>CREATE DATABASE db1 CHARACTER SET latin1 COLLATE latin1_general_cs;</programlisting>
- <para>
- eXo JCR application (e.g. GateIn) should use JCR dialect "MySQL-UTF8".
- </para>
- <para>
- In other words: MySQL database default encoding and JCR dialect cannot be UTF8 both. Use single-byte encoding (e.g. "latin1") for database and "mysql-utf8" dialect for eXo JCR.
- </para>
- <para>
- Notice: "MySQL-UTF8" dialect cannot be auto-detected, it should be set explicitly in configuration.
- </para>
+ <para>
+ eXo JCR application (e.g. GateIn) should use JCR dialect "MySQL-UTF8".
+ </para>
+ <para>
+ In other words: MySQL database default encoding and JCR dialect cannot be UTF8 both. Use single-byte encoding (e.g. "latin1") for database and "mysql-utf8" dialect for eXo JCR.
+ </para>
+ <para>
+ Notice: "MySQL-UTF8" dialect cannot be auto-detected, it should be set explicitly in configuration.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Does MySQL have limitation affecting on eXo JCR features?</term>
- <listitem>
- <para>
- Index's key length of JCR_SITEM (JCR_MITEM) table for mysql-utf8 dialect is reduced to 765 bytes (or 255 chars).
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Does MySQL have limitation affecting on eXo JCR features?</term>
+ <listitem>
+ <para>
+ Index's key length of JCR_SITEM (JCR_MITEM) table for mysql-utf8 dialect is reduced to 765 bytes (or 255 chars).
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Does use of Sybase database need special options in eXo JCR configuration?</term>
- <listitem>
- <para>
- To enable JCR working properly with Sybase, a property 'check-sns-new-connection' with 'false' value is required for each workspace data container:
- </para>
-
+ </varlistentry>
+ <varlistentry>
+ <term>Does use of Sybase database need special options in eXo JCR configuration?</term>
+ <listitem>
+ <para>
+ To enable JCR working properly with Sybase, a property 'check-sns-new-connection' with 'false' value is required for each workspace data container:
+ </para>
+
<programlisting language="XML" role="XML"><container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
<properties>
<property name="source-name" value="jdbcjcr" />
@@ -221,13 +221,13 @@
<property name="check-sns-new-connection" value="false" />
</properties></programlisting>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How to open and close a session properly to avoid memory leaks?</term>
- <listitem>
-
+ </varlistentry>
+ <varlistentry>
+ <term>How to open and close a session properly to avoid memory leaks?</term>
+ <listitem>
+
<programlisting language="Java" role="Java">Session session = repository.login(credentials);
try
{
@@ -238,27 +238,27 @@
session.logout();
}</programlisting>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Can I use Session after loging out?</term>
- <listitem>
- <para>
- No. Any instance of Session or Node (acquired through session) shouldn't be used after logging out anymore. At least, it is highly recommended not to use.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>Can I use Session after logging out?</term>
+ <listitem>
+ <para>
+ No. Any instance of Session or Node (acquired through session) shouldn't be used after logging out anymore. At least, it is highly recommended not to use.
+ </para>
- </listitem>
-
- </varlistentry>
+ </listitem>
+
+ </varlistentry>
- <varlistentry>
- <term>How to configure jcr for cluster?</term>
- <listitem>
- <para>So we have configured JCR in standalone mode and want to
+ <varlistentry>
+ <term>How to configure jcr for cluster?</term>
+ <listitem>
+ <para>So we have configured JCR in standalone mode and want to
reconfigure it for clustered environment. First of all, let's check
whether all requirements are satisfied:</para>
- <itemizedlist>
+ <itemizedlist>
<listitem>
<para>Dedicated RDBMS anyone like MySQL, Postges, Oracle and, etc
but just not HSSQL;</para>
@@ -274,11 +274,11 @@
<para>Fast network between JCR nodes.</para>
</listitem>
</itemizedlist>
- <para>So now, need to configure Container a bit. Check
+ <para>So now, need to configure Container a bit. Check
exo-configuration.xml to be sure that you are using JBossTS
Transaction Service and JBossCache Transaction Manager, as shown
below.</para>
-<programlisting language="xml"><component>
+<programlisting language="XML" role="XML"><component>
<key>org.jboss.cache.transaction.TransactionManagerLookup</key>
<type>org.jboss.cache.GenericTransactionManagerLookup</type>
</component>
@@ -293,7 +293,7 @@
</value-param>
</init-params>
</component></programlisting>
- <para>Next stage is actually the JCR configuration. We need JBossCache
+ <para>Next stage is actually the JCR configuration. We need JBossCache
configuration templates for : data-cache, indexer-cache and
lock-manager-cache. Later they will be used to configure JCR's core
components. There are pre-bundled templates in EAR or JAR in
@@ -301,10 +301,10 @@
needed. And now, re-configure a bit each workspace. Actually, a few
parameters need changing, e.g. <cache>, <query-handler>
and <lock-manager>.</para>
- <itemizedlist>
+ <itemizedlist>
<listitem>
<para><cache> configuration should look like this:</para>
-<programlisting language="xml"><cache enabled="true"
+<programlisting language="XML" role="XML"><cache enabled="true"
class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
<properties>
<property name="jbosscache-configuration" value="test-jbosscache-data.xml" />
@@ -314,7 +314,7 @@
</properties>
</cache></programlisting>
</listitem>
- <listitem>
+ <listitem>
<para>"jbosscache-configuration" is the path to configuration
template;</para>
</listitem>
@@ -337,8 +337,6 @@
<repository_name>-<ws_name>-<component(cache\|lock\|index)></para>
</listitem>
</itemizedlist>
- </listitem>
- </itemizedlist>
<itemizedlist>
<listitem>
@@ -349,13 +347,13 @@
<para>You must replace or add in <query-handler> block
the "changesfilter-class" parameter equals with:</para>
- <programlisting language="xml"><property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"/></programlisting>
+ <programlisting language="XML" role="XML"><property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter"/></programlisting>
</listitem>
<listitem>
<para>add JBossCache-oriented configuration:</para>
- <programlisting language="xml"><property name="jbosscache-configuration" value="test-jbosscache-indexer.xml" />
+ <programlisting language="XML" role="XML"><property name="jbosscache-configuration" value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
<property name="jgroups-multiplexer-stack" value="true" />
<property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1-ws" />
@@ -377,9 +375,9 @@
<para>Maybe this is the hardest element to configure, because we
have to define access to DB where locks will be stored. Replace
- exsiting lock-manager configuration with shown below.</para>
+ existing lock-manager configuration with shown below.</para>
- <programlisting language="xml">
+ <programlisting language="XML" role="XML">
<lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
@@ -453,30 +451,30 @@
</itemizedlist>
<para>That's all. JCR is ready for running in a cluster.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Is JCR suitable for remote sites\* synchronization?</term>
- <listitem>
- <para>
- Remote sites can be visualized as different buildings separated by a WAN network.
- </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Is JCR suitable for remote sites\* synchronization?</term>
+ <listitem>
+ <para>
+ Remote sites can be visualized as different buildings separated by a WAN network.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How to use lucene spellchecker?</term>
- <listitem>
- <para>
- There is few steps:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Enable lucene spellchecker in jcr QueryHandler configuration:
- </para>
-
+ </varlistentry>
+ <varlistentry>
+ <term>How to use lucene spellchecker?</term>
+ <listitem>
+ <para>
+ There is few steps:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Enable lucene spellchecker in jcr QueryHandler configuration:
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
...
@@ -485,58 +483,58 @@
</properties>
</query-handler></programlisting>
- </listitem>
+ </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- Execute query with rep:spellcheck function and word that is checked:
- </para>
-
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Execute query with rep:spellcheck function and word that is checked:
+ </para>
+
<programlisting language="Java" role="Java">Query query = qm.createQuery("select rep:spellcheck() from nt:base where " + "jcr:path = '/' and spellcheck('word that is checked')", Query.SQL);
RowIterator rows = query.execute().getRows();</programlisting>
- </listitem>
+ </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- Fetch a result:
- </para>
-
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Fetch a result:
+ </para>
+
<programlisting language="Java" role="Java">Row r = rows.nextRow();
Value v = r.getValue("rep:spellcheck()");</programlisting>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- If there are no results, that means there is no suggestion, so word is correct or spellcheckers dictionary do not contain any words like the checked word.
- </para>
+ </itemizedlist>
+ <para>
+ If there are no results, that means there is no suggestion, so word is correct or spellcheckers dictionary do not contain any words like the checked word.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How can I affect to spellchecker results?</term>
- <listitem>
- <para>
- There is two parameters in jcr QueryHandler configuration:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Minimal distance between checked word and proposed suggestion;
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>How can I affect to spellchecker results?</term>
+ <listitem>
+ <para>
+ There is two parameters in jcr QueryHandler configuration:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Minimal distance between checked word and proposed suggestion;
+ </para>
- </listitem>
- <listitem>
- <para>
- Search for more popular suggestions;
- </para>
-
+ </listitem>
+ <listitem>
+ <para>
+ Search for more popular suggestions;
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
...
@@ -547,62 +545,62 @@
</properties>
</query-handler></programlisting>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- Minimal distance is counted as Levenshtein distance between checked word and spellchecker suggestion.
- </para>
- <para>
- MorePopular paramter affects in next way: If "morePopular" disabled:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- If the proposed word exists in the directory - no suggestion given;
- </para>
+ </itemizedlist>
+ <para>
+ Minimal distance is counted as Levenshtein distance between checked word and spellchecker suggestion.
+ </para>
+ <para>
+ MorePopular paramter affects in next way: If "morePopular" disabled:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If the proposed word exists in the directory - no suggestion given;
+ </para>
- </listitem>
- <listitem>
- <para>
- If the proposed word doesn't exist in the directory - propose the closed word;
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If the proposed word doesn't exist in the directory - propose the closed word;
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- If "morePopular" enabled:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- No matter word exists or not, checker will propose the closed word that is more popular than the checked word.
- </para>
+ </itemizedlist>
+ <para>
+ If "morePopular" enabled:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ No matter word exists or not, checker will propose the closed word that is more popular than the checked word.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term></term>
- <listitem>
- <para>
+ </varlistentry>
+ <varlistentry>
+ <term></term>
+ <listitem>
+ <para>
- </para>
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
- <!-- DOC NOTE: Commented as extensions seem out of scope
+ </section>
+
+ <!-- DOC NOTE: Commented as extensions seem out of scope
<section id="sect-Reference_Guide-JCR-JCR_extensions">
<title>JCR extensions</title>
@@ -673,35 +671,35 @@
</section> -->
<section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_FAQ-WebDAV">
- <title>WebDAV</title>
- <variablelist>
- <title></title>
- <varlistentry>
- <term>I uploaded a file to WebDAV server using Mac OS Finder, but the file size is '0', what is wrong?</term>
- <listitem>
- <para>
- This is known as a finder bug started from Mac OS v.10.5.3 and not yet fixed, .
- </para>
- <para>
- For more details follow:&nbsp; <ulink url="http://discussions.apple.com/thread.jspa?threadID=1538882&start=0&...">Apple Discussion thread.</ulink>
- </para>
+ <title>WebDAV</title>
+ <variablelist>
+ <title></title>
+ <varlistentry>
+ <term>I uploaded a file to WebDAV server using Mac OS Finder, but the file size is '0', what is wrong?</term>
+ <listitem>
+ <para>
+ This is known as a finder bug started from Mac OS v.10.5.3 and not yet fixed, .
+ </para>
+ <para>
+ For more details follow:&nbsp; <ulink url="http://discussions.apple.com/thread.jspa?threadID=1538882&start=0&...">Apple Discussion thread.</ulink>
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>Can I manage 'cache-control' value for different media-types from server configuration?</term>
- <listitem>
- <para>
- Use "cache-control" configuration parameter.
- </para>
- <para>
- The value of this parameter must contain colon-separated pairs "MediaType:cache-control value"
- </para>
- <para>
- For example, if you need to cache all text/xml and text/plain files for 5 minutes (300 sec.) and other text/\* files for 10 minutes (600 sec.), use the next configuration:
- </para>
-
+ </varlistentry>
+ <varlistentry>
+ <term>Can I manage 'cache-control' value for different media-types from server configuration?</term>
+ <listitem>
+ <para>
+ Use "cache-control" configuration parameter.
+ </para>
+ <para>
+ The value of this parameter must contain colon-separated pairs "MediaType:cache-control value"
+ </para>
+ <para>
+ For example, if you need to cache all text/xml and text/plain files for 5 minutes (300 sec.) and other text/\* files for 10 minutes (600 sec.), use the next configuration:
+ </para>
+
<programlisting language="XML" role="XML"><component>
<type>org.exoplatform.services.jcr.webdav.WebDavServiceImpl</type>
<init-params>
@@ -713,84 +711,84 @@
<component>
</programlisting>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How to perform WebDAV requests using curl?</term>
- <listitem>
- <para>
- Simple Requests
- </para>
- <para>
- For simple request such as: GET, HEAD, MKCOL, COPY, MOVE, DELETE, CHECKIN, CHECKOUT, UNCHECKOUT, LOCK, UNLOCK, VERSIONCONTROL, OPTIONS
- </para>
- <para>
- perform:
- </para>
-
+ </varlistentry>
+ <varlistentry>
+ <term>How to perform WebDAV requests using curl?</term>
+ <listitem>
+ <para>
+ Simple Requests
+ </para>
+ <para>
+ For simple request such as: GET, HEAD, MKCOL, COPY, MOVE, DELETE, CHECKIN, CHECKOUT, UNCHECKOUT, LOCK, UNLOCK, VERSIONCONTROL, OPTIONS
+ </para>
+ <para>
+ perform:
+ </para>
+
<programlisting>curl -i -u 'user:pass' -X 'METHOD_NAME' 'resource_url'</programlisting>
- <para>
- for example to create a folder named test perform:
- </para>
-
+ <para>
+ for example to create a folder named test perform:
+ </para>
+
<programlisting>curl -i -u 'root:exo' -X MKCOL 'http://localhost:8080/rest/jcr/repository/production/test</programlisting>
- <para>
- to PUT a test.txt file from your current folder to "test "folder on server perform:
- </para>
-
+ <para>
+ to PUT a test.txt file from your current folder to "test "folder on server perform:
+ </para>
+
<programlisting>curl -i -u 'root:exo' -X PUT 'http://localhost:8080/rest/jcr/repository/production/test/test.txt' -d @test.txt</programlisting>
- <para>
- Requests with XML body
- </para>
- <para>
- For requests which contains xml body such as: ORDER, PROPFIND, PROPPATCH, REPORT, SEARCH
- </para>
- <para>
- add <emphasis role="bold">-d 'xml_body text'</emphasis> or <emphasis role="bold">-d @body.xml</emphasis>
- </para>
- <para>
- (body.xml must contain a valid xml request body.) to you curl-command:
- </para>
-
+ <para>
+ Requests with XML body
+ </para>
+ <para>
+ For requests which contains xml body such as: ORDER, PROPFIND, PROPPATCH, REPORT, SEARCH
+ </para>
+ <para>
+ add <emphasis role="bold">-d 'xml_body text'</emphasis> or <emphasis role="bold">-d @body.xml</emphasis>
+ </para>
+ <para>
+ (body.xml must contain a valid xml request body.) to you curl-command:
+ </para>
+
<programlisting>curl -i -u 'user:pass' -X 'METHOD_NAME' -H 'Headers' 'resource_url' -d 'xml_body text'</programlisting>
- <para>
- For example about finding all files containing "test" perform:
- </para>
-
+ <para>
+ For example about finding all files containing "test" perform:
+ </para>
+
<programlisting>curl -i -u "root:exo" -X "SEARCH" "http://192.168.0.7:8080/rest/jcr/repository/production/" -d
"<?xml version='1.0' encoding='UTF-8' ?>
<D:searchrequest xmlns:D='DAV:'>
<D:sql>SELECT * FROM nt:base WHERE contains(*, 'text')</D:sql>
</D:searchrequest>"</programlisting>
- <para>
- If you need to add some headers to your request, use \-H key.
- </para>
- <para>
- To have more information about methods parameters, you can find in <ulink url="http://www.ietf.org/rfc/rfc2518.txt">HTTP Extensions for Distributed Authoring</ulink> specification.
- </para>
+ <para>
+ If you need to add some headers to your request, use \-H key.
+ </para>
+ <para>
+ To have more information about methods parameters, you can find in <ulink url="http://www.ietf.org/rfc/rfc2518.txt">HTTP Extensions for Distributed Authoring</ulink> specification.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
- <varlistentry>
- <term>How eXo JCR WebDAV server treats content encoding?</term>
- <listitem>
- <para>
- OS client (Windows, Linux etc) doesn't set an encoding in a request. But eXo JCR WebDAV server looks for an encoding in a Content-Type header and set it to jcr:encoding. See <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,</ulink> 14.17 Content-Type. e.g. Content-Type: text/html; charset=ISO-8859-4 So, if a client will set Content-Type header, e.g. JS code from a page, it will works for a text file as expected.
- </para>
- <para>
- If WebDAV request doesn't contain a content encoding, it's possible to write a dedicated action in a customer application. The action will set jcr:encoding using its own logic, e.g. based on IP or user preferences.
- </para>
+ </varlistentry>
+ <varlistentry>
+ <term>How eXo JCR WebDAV server treats content encoding?</term>
+ <listitem>
+ <para>
+ OS client (Windows, Linux etc) doesn't set an encoding in a request. But eXo JCR WebDAV server looks for an encoding in a Content-Type header and set it to jcr:encoding. See <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,">http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html,</ulink> 14.17 Content-Type. e.g. Content-Type: text/html; charset=ISO-8859-4 So, if a client will set Content-Type header, e.g. JS code from a page, it will works for a text file as expected.
+ </para>
+ <para>
+ If WebDAV request doesn't contain a content encoding, it's possible to write a dedicated action in a customer application. The action will set jcr:encoding using its own logic, e.g. based on IP or user preferences.
+ </para>
- </listitem>
+ </listitem>
- </varlistentry>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- </section>
-
+ </section>
+
</section>
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/api-extensions.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/api-extensions.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/api-extensions.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<section>
+
+ <title>JCR API Extensions</title>
+
+ <section>
+ <title>"Lazy" child nodes iteration</title>
+
+ <section>
+ <title>Concept</title>
+
+ <para>eXo JCR implementation offers new extended feature beyond JCR
+ specification. Sometimes it happens that one JCR Node has hundreds or
+ even thousands of child nodes. This situation is highly not recommended
+ for content repository data storage, but some times it occurs. JCR Team
+ is pleased to announce new feature that will help to have a deal with
+ huge child lists. They can be iterated in a "lazy" manner now giving
+ improvement in term of performance and RAM usage.</para>
+ </section>
+
+ <section>
+ <title>API and usage</title>
+
+ <para>Lazy child nodes iteration feature is accessible via extended
+ interface org.exoplatform.services.jcr.core.ExtendedNode, the inheritor
+ of javax.jcr.Node. It provides a new single method shown below:</para>
+
+ <programlisting language="Java"> /**
+ * Returns a NodeIterator over all child Nodes of this Node. Does not include properties
+ * of this Node. If this node has no child nodes, then an empty iterator is returned.
+ *
+ * @return A NodeIterator over all child Nodes of this <code>Node</code>.
+ * @throws RepositoryException If an error occurs.
+ */
+ public NodeIterator getNodesLazily() throws RepositoryException;
+</programlisting>
+
+ <para>From the view of end-user or client application, getNodesLazily()
+ works similar to JCR specified getNodes() returning NodeIterator. "Lazy"
+ iterator supports the same set of features as an ordinary NodeIterator,
+ including skip() and excluding remove() features. "Lazy" implementation
+ performs reading from DB by pages. Each time when it has no more
+ elements stored in memory, it reads next set of items from persistent
+ layer. This set is called "page". Must admit that getNodesLazily feature
+ fully supports session and transaction changes log, so it's a
+ functionally-full analogue of specified getNodes() operation. So when
+ having a deal with huge list of child nodes, getNodes() can be simply
+ and safely substituted with getNodesLazily().</para>
+
+ <para>JCR gives an experimental opportunity to replace all getNodes()
+ invocations with getNodesLazily() calls. It handles a boolean system
+ property named "org.exoplatform.jcr.forceUserGetNodesLazily" that
+ internally replaces one call with another, without any code changes. But
+ be sure using it only for development purposes. This feature can be used
+ with top level products using eXo JCR to perform a quick compatibility
+ and performance tests without changing any code. This is not recommended
+ to be used as a production solution.</para>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+
+ <para>"Lazy" iterator makes ahead reading into memory, though reading
+ the "page". "Page" is a set of nodes read at once. Size of the page by
+ default is 100 nodes and can be configured though workspace container
+ configuration using "lazy-node-iterator-page-size" parameter.
+ I.e.:</para>
+
+ <programlisting language="XML"><container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="multi-db" value="true" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="target/temp/swap/ws" />
+ <property name="lazy-node-iterator-page-size" value="50" />
+ ...
+ </properties></programlisting>
+
+ <para>But it's not recommended to set huge page size</para>
+ </section>
+
+ <section>
+ <title>Implementation notices</title>
+
+ <para>Current "lazy" child nodes iterator supports caching, when pages
+ are cached atomically in safe and optimized way. Cache is always kept in
+ consistent state using invalidation if child list changed. Take in
+ account the following difference in getNodes and getNodesLazily.
+ Specification defined getNodes method reads whole list of nodes, so
+ child items added after invocation will never be in results.
+ GetNodesLazily doesn't acquire full list of nodes, so child items added
+ after iterator creation can be found in result. So getNodesLazily can
+ represent some kind of "real-time" results. But it is highly depend on
+ numerous conditions and should not be used as a feature, it more likely
+ implementation specific issue typical for "lazy-pattern".</para>
+ </section>
+ </section>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-client.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-client.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-client.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -248,7 +248,7 @@
When unsuccessful:
</para>
-<programlisting>status code = 404 - the not found repositry '{repo}' or workspace '{ws}'
+<programlisting>status code = 404 - the not found repository '{repo}' or workspace '{ws}'
status code = 500 - the other unknown errors
failure message in response - the description of failure</programlisting>
@@ -484,7 +484,7 @@
</para>
<programlisting>status code = 500 - the other unknown errors;
- - not found repositry '{repo}' or workspace '{ws}'
+ - not found repository '{repo}' or workspace '{ws}'
failure message in response - the description of failure</programlisting>
</listitem>
@@ -1274,7 +1274,7 @@
</para>
<programlisting>status code = 403 - the already was restore to workspace /{repo}/{ws}
-status code = 404 - the not found repositry '{repo}' or unsupported encoding to workspaceConfig
+status code = 404 - the not found repository '{repo}' or unsupported encoding to workspaceConfig
status code = 500 - the other unknown errors
failure message in response - the description of failure</programlisting>
@@ -1842,7 +1842,7 @@
status code = 200
</screen>
<para>
- To get information about about the current restore for <filename>/repository/backup3</filename> workspace:
+ To get information about the current restore for <filename>/repository/backup3</filename> workspace:
</para>
<programlisting><command>jcrbackup http://root:exo@127.0.0.1:8080 restores</command></programlisting>
@@ -1944,7 +1944,7 @@
<programlisting>Successful :
status code = 200</programlisting>
<para>
- To restore to a repository called "repository" from backup set, you need need the <replaceable><backup_set_path></replaceable> (the path to the backup set folder, on the server side) of a completed backup and the path to the repository configuration file:
+ To restore to a repository called "repository" from backup set, you need the <replaceable><backup_set_path></replaceable> (the path to the backup set folder, on the server side) of a completed backup and the path to the repository configuration file:
</para>
<programlisting><command>jcrbackup http://root:exo@127.0.0.1:8080 restore /repository /tmp/123/repository_repository_backup_1292833493681 /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config.xml</command></programlisting>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/exojcr-backup-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/exojcr-backup-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/exojcr-backup-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -169,7 +169,7 @@
</para>
</note>
<para>
- In case you already have a target Workspace (with the same name) in a Repository, you have to configure a new name for it. If no target workspace exists in the Repositor, you may use the same name as the Backup one.
+ In case you already have a target Workspace (with the same name) in a Repository, you have to configure a new name for it. If no target workspace exists in the Repository, you may use the same name as the Backup one.
</para>
</section>
@@ -234,7 +234,7 @@
<section>
<title>RDBMS backup</title>
- <para>RDBMS backup It is the lastest, currently supportedm used by default
+ <para>RDBMS backup It is the latest, currently supported used by default
and recommended implementation of full backup job for BackupManager
service. It is useful in case when database is used to store data.</para>
@@ -679,7 +679,7 @@
There is one notice about <literal>BackupScheduler</literal> task reinitialization in the current implementation. It comes from the <literal>BackupScheduler</literal> nature and its implemented behavior. As the scheduler is just a virtual user which asks the <literal>BackupManager</literal> to start or stop backup operations, it is not able to reinitialize each existing <literal>BackupChain</literal> before the service (JVM) is stopped. But it's possible to start a new operation with the same configuration via <literal>BackupManager</literal> (that was configured before and stored in a task file).
</para>
<para>
- This is a main detail of the <literal>BackupScheduler</literal> which should be taken into suggestion of a backup operation design now. In case of reinitialization, the task will have new time values for the backup operation cycle as the <literal>chainPeriod</literal> and <literal>incrementalPeriod</literal> will be applied again. That behaviour may be changed in the future.
+ This is a main detail of the <literal>BackupScheduler</literal> which should be taken into suggestion of a backup operation design now. In case of reinitialization, the task will have new time values for the backup operation cycle as the <literal>chainPeriod</literal> and <literal>incrementalPeriod</literal> will be applied again. That behavior may be changed in the future.
</para>
</section>
@@ -687,7 +687,7 @@
<section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_JCR_Backup_Service-Restore_existing_workspace_or_repository">
<title>Restore existing workspace or repository</title>
<para>
- The resore of existing workspace or repositry is available.
+ The resore of existing workspace or repository is available.
</para>
<para>
For restore will be used special methods:
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/use-external-backup-tool.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/use-external-backup-tool.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/use-external-backup-tool.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -15,7 +15,7 @@
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="images/repository-suspend-controller.png" />
+ <imagedata fileref="images/eXoJCR/repository-suspend-controller.png" />
</imageobject>
</mediaobject>
@@ -24,7 +24,7 @@
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="images/repository-suspend-controller-suspended.png" />
+ <imagedata fileref="images/eXoJCR/repository-suspend-controller-suspended.png" />
</imageobject>
</mediaobject>
@@ -70,7 +70,7 @@
</para>
<mediaobject>
<imageobject>
- <imagedata fileref="images/repository-suspend-controller-online.png" />
+ <imagedata fileref="images/eXoJCR/repository-suspend-controller-online.png" />
</imageobject>
</mediaobject>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-advantages.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-advantages.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-advantages.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,80 +4,80 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-Advantages_of_eXo_JCR">
- <title>Advantages of eXo JCR</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-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>
+ <title>Advantages of eXo JCR</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-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>
+ 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>
+ <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>
+ </listitem>
- </itemizedlist>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/jcr-490x333.gif" width="444" />
- </imageobject>
+ </itemizedlist>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/jcr-490x333.gif" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-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>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-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>
+ </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 consulters).
- </para>
+ </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>
+ </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>
+ </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>
+ </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>
+ </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>
+ </mediaobject>
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-extensions.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-extensions.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-extensions.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -36,7 +36,6 @@
</imageobject>
</mediaobject>
- <caption>Interceptor framework class diagram.</caption>
</figure>
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-usage.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-usage.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-usage.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -85,8 +85,8 @@
</section>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Using_The_JCR-JCR_Application_ractices">
- <title>JCR Application ractices</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Using_The_JCR-JCR_Application_Practices">
+ <title>JCR Application Practices</title>
<section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Application_ractices-Log_Out_of_All_Open_Sessions">
<title>Log Out of All Open Sessions</title>
<para>
@@ -151,7 +151,7 @@
</section>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Application_ractices-Reusing_SessionProvider">
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-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.
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/exo-jcr-configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/exo-jcr-configuration.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/exo-jcr-configuration.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -396,7 +396,7 @@
<title><parameter> session-max-age </parameter></title>
<para>
- <emphasis>session-max-age</emphasis>: This parameter is not shown in the examjple file above as it is not a required setting. It sets the time after which an idle session will be removed (called logout). If it is not set up, an idle session will never be removed.
+ <emphasis>session-max-age</emphasis>: This parameter is not shown in the example file above as it is not a required setting. It sets the time after which an idle session will be removed (called logout). If it is not set up, an idle session will never be removed.
</para>
</note>
@@ -501,7 +501,7 @@
<entry>
- indicates if need to trigger events for descendents on rename or not. It allows to increase performance on rename operation but in same time Observation'll not notified, has default value true
+ indicates if need to trigger events for descendants on rename or not. It allows to increase performance on rename operation but in same time Observation is not notified, has default value true
</entry>
</row>
@@ -782,7 +782,7 @@
<note>
<para>
- Also see <link linkend="JCR.eXoJCRconfiguration.LockRemoverMaxThreads"><emphasis role="bold">lock-remover-max-threads</emphasis></link> repository configuration parameter.
+ Also see <xref linkend="JCR.eXoJCRconfiguration.LockRemoverMaxThreads"/> repository configuration parameter.
</para>
</note>
@@ -836,7 +836,7 @@
<para>
- Products that use eXo JCR, sometimes missuse 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 folllowing:
+ 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:
</para>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/external-value-storages.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/external-value-storages.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/external-value-storages.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -196,8 +196,23 @@
</variablelist>
</section>
-
+ <section>
+ <title>Disabling value storage</title>
+ <para>
+ The JCR allows you to disable value storage by adding the following property into its configuration.
+ </para>
+
+<programlisting language="XML"><property name="enabled" value="false" /></programlisting>
+
+ <warning>
+ <title>Warning</title>
+ <para>
+ It is recommended that this functionality be used for internal and testing purpose only, and with caution, as all stored values will be inaccessible.
+ </para>
+ </warning>
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/rest-services-on-groovy.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/rest-services-on-groovy.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/rest-services-on-groovy.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,21 +4,20 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-REST_Services_on_Groovy">
- <title>REST Services on Groovy</title>
-
- <para>Starting from version 1.9, JCR Service supports REST services
+ <title>REST Services on Groovy</title>
+
+ <para>Starting from version 1.9, JCR Service supports REST services
creation on <ulink url="http://groovy.codehaus.org">Groovy
script</ulink>.</para>
- <para>The feature bases on <link linkend="WS.RestFramework">RESTful
- framework</link> and uses ResourceContainer concept.</para>
- <para>
- Groovy scripts should extend <literal>ResourceContainer</literal> and should be stored in the JCR as an <literal>exo:groovyResourceContainer</literal> node type.
- </para>
- <para>
- Component configuration enables Groovy services loader:
- </para>
-
+ <para>The feature bases on <xref linkend="WS.RestFramework"/> and uses ResourceContainer concept.</para>
+ <para>
+ Groovy scripts should extend <literal>ResourceContainer</literal> and should be stored in the JCR as an <literal>exo:groovyResourceContainer</literal> node type.
+ </para>
+ <para>
+ Component configuration enables Groovy services loader:
+ </para>
+
<programlisting language="XML" role="XML"><component>
<type>org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader</type>
<init-params>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/search-configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/search-configuration.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/search-configuration.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -708,11 +708,39 @@
</para>
<formalpara id="form-Reference_Guide_eXo_JCR_1.14-Global_Search_Index-Customized_Search_Indexes_and_Analyzers">
<title>Customized Search Indexes and Analyzers</title>
+ <para>By default Exo JCR uses the Lucene standard Analyzer to index
+ contents. This analyzer uses some standard filters in the method that
+ analyzes the content:</para>
+ </formalpara>
+ <programlisting language="Java" role="Java">public TokenStream tokenStream(String fieldName, Reader reader) {
+ StandardTokenizer tokenStream = new StandardTokenizer(reader, replaceInvalidAcronym);
+ tokenStream.setMaxTokenLength(maxTokenLength);
+ TokenStream result = new StandardFilter(tokenStream);
+ result = new LowerCaseFilter(result);
+ result = new StopFilter(result, stopSet);
+ return result;
+ }</programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>The first one (StandardFilter) removes 's (as 's in
+ "Peter's") from the end of words and removes dots from
+ acronyms.</para>
+ </listitem>
+
+ <listitem>
+ <para>The second one (LowerCaseFilter) normalizes token text to
+ lower case.</para>
+ </listitem>
+
+ <listitem>
+ <para>The last one (StopFilter) removes stop words from a token
+ stream. The stop set is defined in the analyzer.</para>
+ </listitem>
+ </itemizedlist>
<para>
Additional filters can be used in specific cases. The <phrase>ISOLatin1AccentFilter</phrase> filter, for example, which replaces accented characters in the ISO Latin 1 character set (ISO-8859-1) by their unaccented equivalents.
</para>
-
- </formalpara>
<para>
The <phrase>ISOLatin1AccentFilter</phrase> is not present in the current lucene version used by eXo.
</para>
@@ -997,8 +1025,40 @@
</note>
</section>
-
+ <section>
+ <title>Advanced features</title>
-</section>
+ <para>eXo JCR supports some advanced features, which are not specified
+ in JSR 170:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Get a text excerpt with <emphasis role="bold">highlighted
+ words</emphasis> that matches the query: <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Highlighting-DefaultXMLExcerpt"/>>.</para>
+ </listitem>
+ <listitem>
+ <para>Search a term and its <emphasis
+ role="bold">synonyms</emphasis>: <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-SynonymSearch"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Search <emphasis role="bold">similar</emphasis> nodes: <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Similarity"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Check <emphasis role="bold">spelling</emphasis> of a full text
+ query statement: <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-SpellChecker"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Define index <emphasis role="bold">aggregates and
+ rules</emphasis>: IndexingConfiguration.</para>
+ </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/configuration/workspace-persistence-storage.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/workspace-persistence-storage.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/workspace-persistence-storage.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -18,6 +18,9 @@
<area coords="5" id="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-multidb" />
<area coords="6" id="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-maxbuffer" />
<area coords="7" id="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-swap" />
+ <area coords="8" id="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-lazy-node-iterator-page-size" />
+ <area coords="9" id="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-acl-bloomfilter-false-positive-probability" />
+ <area coords="10" id="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-acl-bloomfilter-elements-number" />
</areaspec>
@@ -28,6 +31,9 @@
<property name="multi-db" value="true"/>
<property name="max-buffer-size" value="200K"/>
<property name="swap-directory" value="target/temp/swap/ws"/>
+ <property name="lazy-node-iterator-page-size" value="50"/>
+ <property name="acl-bloomfilter-false-positive-probability" value="0.1d"/>
+ <property name="acl-bloomfilter-elements-number" value="1000000"/>
</properties></programlisting>
<calloutlist>
<!-- # --> <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-source_name">
@@ -61,9 +67,44 @@
</callout>
+ <!-- # --> <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-lazy-node-iterator-page-size">
+ <para><emphasis role="bold">lazy-node-iterator-page-size</emphasis>: "Lazy"
+ child nodes iterator settings. Defines size of page, the number of nodes
+ that are retrieved from persistent storage at once.</para>
+
+ </callout>
+ <!-- # --> <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-acl-bloomfilter-false-positive-probability">
+ <para><emphasis
+ role="bold">acl-bloomfilter-false-positive-probability</emphasis>: ACL
+ Bloom-filter settings. ACL Bloom-filter desired false positive probability.
+ Range [0..1]. Default value 0.1d.</para>
+
+ </callout>
+ <!-- # --> <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Workspace_Data_Container-acl-bloomfilter-elements-number">
+ <para><emphasis role="bold">acl-bloomfilter-elements-number</emphasis>: ACL
+ Bloom-filter settings. Expected number of ACL-elements in the Bloom-filter.
+ Default value 1000000.</para>
+
+ </callout>
+
</calloutlist>
</programlistingco>
-
+ <note>
+ <para>Bloom filters are not supported by all the cache implementations so
+ far only the inplementation for infinispan supports it.</para>
+
+ <para>Bloom-filter used to avoid read nodes that definitely do not have
+ ACL. <emphasis
+ role="bold">acl-bloomfilter-false-positive-probability</emphasis> and
+ <emphasis role="bold">acl-bloomfilter-elements-number</emphasis> used to
+ configure such filters. Bloom filters are not supported by all the cache
+ implementations so far only the inplementation for infinispan supports
+ it.</para>
+
+ <para>More about Bloom filters you can read here <ulink
+ url="http://en.wikipedia.org/wiki/Bloom_filter">http://en.wikipedia.org/wiki/Bloom_filter</ulink>.</para>
+ </note>
+
<para>
The eXo JCR has a JDBC-based, relational database, production ready <emphasis role="bold">Workspace Data Container</emphasis>.
</para>
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -70,7 +70,7 @@
</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:
+ 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 behavior is defined via the Workspace Data Container configuration and is retrieved by using the special method:
</para>
<programlisting language="Java" role="Java">boolean isCheckSNSNewConnection();
@@ -79,7 +79,7 @@
</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.
+ As container initialization is based solely 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>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/lock-manager-config.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/lock-manager-config.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/lock-manager-config.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -19,6 +19,7 @@
</para>
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/default47.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-LockManager-CacheableLockManagerImpl">
<title>CacheableLockManagerImpl</title>
<para>
@@ -363,7 +364,100 @@
</section>
+ <section>
+ <title>Lock migration from 1.12.x</title>
+ <para>
+ There are three options available:
+ </para>
+ <variablelist>
+ <title>Lock Migration Options</title>
+ <varlistentry>
+ <term>When new Shareable Cache feature is not going to be used and all locks should be kept after migration.</term>
+ <listitem>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Ensure that the same lock tables are used in configuration
+ </para>
+ </step>
+ <step>
+ <para>
+ Start the server
+ </para>
+ </step>
+ </procedure>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>When new Shareable Cache feature is not going to be used and all locks should be removed after migration.</term>
+ <listitem>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Ensure that the same lock tables used in configuration
+ </para>
+ </step>
+ <step>
+ <para>
+ Start the sever WITH system property:
+ </para>
+<programlisting>-Dorg.exoplatform.jcr.locks.force.remove=true
+</programlisting>
+ </step>
+ <step>
+ <para>
+ Stop the server
+ </para>
+ </step>
+ <step>
+ <para>
+ Start the server WITHOUT system property:
+ </para>
+<programlisting>-Dorg.exoplatform.jcr.locks.force.remove
+</programlisting>
+ </step>
+ </procedure>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>When new Shareable Cache feature will be used (in this case all locks are removed after migration).</term>
+ <listitem>
+ <procedure>
+ <title></title>
+ <step>
+ <para>
+ Start the sever WITH system property:
+ </para>
+<programlisting>-Dorg.exoplatform.jcr.locks.force.remove=true
+</programlisting>
+ </step>
+ <step>
+ <para>
+ Stop the server.
+ </para>
+ </step>
+ <step>
+ <para>
+ Start the server WITHOUT system property:
+ </para>
+<programlisting>-Dorg.exoplatform.jcr.locks.force.remove
+</programlisting>
+ </step>
+ <step>
+ <title>Optional:</title>
+ <para>
+ Manually remove old tables for lock.
+ </para>
+ </step>
+ </procedure>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/performance-tuning-guide.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/performance-tuning-guide.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/performance-tuning-guide.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,362 +4,425 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide">
- <title>JCR Performance Tuning Guide</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide-Introduction">
- <title>Introduction</title>
- <para>
- This guide will show you possible ways of improving JCR performance.
- </para>
- <para>
- It is intended to GateIn Administrators and those who wants to use JCR features.
- </para>
+ <title>JCR Performance Tuning Guide</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide-Introduction">
+ <title>Introduction</title>
+ <para>
+ This section will show you various ways of improving JCR performance.
+ </para>
+ <para>
+ It is intended for Administrators and others who want to use the JCR features more efficiently.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide-JCR_Performance_and_Scalability">
- <title>JCR Performance and Scalability</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_and_Scalability-Cluster_configuration">
- <title>Cluster configuration</title>
- <para>
- <citetitle>EC2 network</citetitle>: 1Gbit
- </para>
- <para>
- <citetitle>Servers hardware</citetitle>:
- <simplelist>
- <member>7.5 GB memory</member>
- <member>4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)</member>
- <member>850 GB instance storage (2×420 GB plus 10 GB root partition)</member>
- <member>64-bit platform</member>
- <member>I/O Performance: High</member>
- <member>API name: m1.large</member>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide-JCR_Performance_and_Scalability">
+ <title>JCR Performance and Scalability</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_and_Scalability-Cluster_configuration">
+ <title>Cluster configuration</title>
+ <para>
+ The table below contains details about the configuration of the cluster used in benchmark testing:
+ </para>
+ <table>
+ <title>EC2 network: 1Gbit</title>
+ <tgroup cols="2">
+ <colspec colname="1"></colspec>
+ <colspec colname="2"></colspec>
+ <spanspec nameend="2" namest="1" spanname="hspan"></spanspec>
+ <thead>
+ <row>
+ <entry>
+ Servers hardware
+ </entry>
+ <entry>
+ Specification
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ RAM
+ </entry>
+ <entry>
+ 7.5 GB
+ </entry>
+ </row>
+ <row>
+ <entry>
+ Processors
+ </entry>
+ <entry>
+ 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
+ </entry>
+ </row>
+ <row>
+ <entry>
+ Storage
+ </entry>
+ <entry>
+ 850 GB (2×420 GB plus 10 GB root partition)
+ </entry>
+ </row>
+ <row>
+ <entry>
+ Architecture
+ </entry>
+ <entry>
+ 64-bit
+ </entry>
+ </row>
+ <row>
+ <entry>
+ I/O Performance
+ </entry>
+ <entry>
+ High
+ </entry>
+ </row>
+ <row>
+ <entry>
+ API name
+ </entry>
+ <entry>
+ <literal>m1.large</literal>
+ </entry>
+ </row>
+ <row>
+ <entry spanname="hspan">
+ <emphasis role="bold">Note:</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry spanname="hspan">
+ NFS and statistics (cacti snmp) server were located on one physical server.
+ </entry>
+ </row>
+ <row>
+ <entry spanname="hspan">
+ <emphasis role="bold">JBoss AS configuration:</emphasis>
+ </entry>
+ </row>
+ <row>
+ <entry spanname="hspan">
+ <code>JAVA_OPTS: -Dprogram.name=run.sh -server -Xms4g -Xmx4g -XX:MaxPermSize=512m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -XX:+UseParallelGC -Djava.net.preferIPv4Stack=true</code>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
- </simplelist>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_and_Scalability-JCR_Clustered_Performance">
+ <title>JCR Clustered Performance</title>
+ <para>
+ Benchmark test using WebDAV (Complex read/write load test (benchmark)) with 20K same file. To obtain per-operation results we have used custom output from the test case threads to CSV file.
+ </para>
+ <para>
+ <citetitle>Read operation</citetitle>:
+ <simplelist>
+ <member>Warm-up iterations: 100</member>
+ <member>Run iterations: 2000</member>
+ <member>Background writing threads: 25</member>
+ <member>Reading threads: 225</member>
- </para>
- <note>
- <para>
- NFS and statistics (cacti snmp) server were located on one physical server.
- </para>
+ </simplelist>
- </note>
- <para>
- <citetitle>JBoss AS configuration</citetitle>
- </para>
- <para>
- <code>JAVA_OPTS: -Dprogram.name=run.sh -server -Xms4g -Xmx4g -XX:MaxPermSize=512m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -XX:+UseParallelGC -Djava.net.preferIPv4Stack=true</code>
- </para>
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/perf_EC2_results.jpg" />
+ </imageobject>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_and_Scalability-JCR_Clustered_Performance">
- <title>JCR Clustered Performance</title>
- <para>
- Benchmark test using webdav (Complex read/write load test (benchmark)) with 20K same file. To obtain per-operation results we have used custom output from the testscase threads to CSV file.
- </para>
- <para>
- <citetitle>Read operation</citetitle>:
- <simplelist>
- <member>Warm-up iterations: 100</member>
- <member>Run iterations: 2000</member>
- <member>Background writing threads: 25</member>
- <member>Reading threads: 225</member>
+ </mediaobject>
+ <table>
+ <title></title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ Nodes count
+ </entry>
+ <entry>
+ tps
+ </entry>
+ <entry>
+ Responses >2s
+ </entry>
+ <entry>
+ Responses >4s
+ </entry>
- </simplelist>
+ </row>
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/perf_EC2_results.jpg" />
- </imageobject>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ 523
+ </entry>
+ <entry>
+ 6.87%
+ </entry>
+ <entry>
+ 1.27%
+ </entry>
- </mediaobject>
- <table>
- <title></title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- Nodes count
- </entry>
- <entry>
- tps
- </entry>
- <entry>
- Responses >2s
- </entry>
- <entry>
- Responses >4s
- </entry>
+ </row>
+ <row>
+ <entry>
+ 2
+ </entry>
+ <entry>
+ 1754
+ </entry>
+ <entry>
+ 0.64%
+ </entry>
+ <entry>
+ 0.08%
+ </entry>
- </row>
+ </row>
+ <row>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ 2388
+ </entry>
+ <entry>
+ 0.49%
+ </entry>
+ <entry>
+ 0.09%
+ </entry>
- </thead>
- <tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- 523
- </entry>
- <entry>
- 6.87%
- </entry>
- <entry>
- 1.27%
- </entry>
+ </row>
+ <row>
+ <entry>
+ 4
+ </entry>
+ <entry>
+ 2706
+ </entry>
+ <entry>
+ 0.46%
+ </entry>
+ <entry>
+ 0.1%
+ </entry>
- </row>
- <row>
- <entry>
- 2
- </entry>
- <entry>
- 1754
- </entry>
- <entry>
- 0.64%
- </entry>
- <entry>
- 0.08%
- </entry>
+ </row>
- </row>
- <row>
- <entry>
- 3
- </entry>
- <entry>
- 2388
- </entry>
- <entry>
- 0.49%
- </entry>
- <entry>
- 0.09%
- </entry>
+ </tbody>
- </row>
- <row>
- <entry>
- 4
- </entry>
- <entry>
- 2706
- </entry>
- <entry>
- 0.46%
- </entry>
- <entry>
- 0.1%
- </entry>
+ </tgroup>
- </row>
+ </table>
+ <para>
+ <citetitle>Read operation with more threads</citetitle>:
+ </para>
+ <simplelist>
+ <member>Warm-up iterations: 100</member>
+ <member>Run iterations: 2000</member>
+ <member>Background writing threads: 50</member>
+ <member>Reading threads: 450</member>
- </tbody>
+ </simplelist>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/perf_EC2_results_2.jpg" />
+ </imageobject>
- </tgroup>
+ </mediaobject>
+ <table>
+ <title></title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>
+ Nodes count
+ </entry>
+ <entry>
+ tps
+ </entry>
+ <entry>
+ Responses >2s
+ </entry>
+ <entry>
+ Responses >4s
+ </entry>
- </table>
- <para>
- <citetitle>Read operation with more threads</citetitle>:
- </para>
- <simplelist>
- <member>Warm-up iterations: 100</member>
- <member>Run iterations: 2000</member>
- <member>Background writing threads: 50</member>
- <member>Reading threads: 450</member>
+ </row>
- </simplelist>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/perf_EC2_results_2.jpg" />
- </imageobject>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ 116
+ </entry>
+ <entry>
+ ?
+ </entry>
+ <entry>
+ ?
+ </entry>
- </mediaobject>
- <table>
- <title></title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>
- Nodes count
- </entry>
- <entry>
- tps
- </entry>
- <entry>
- Responses >2s
- </entry>
- <entry>
- Responses >4s
- </entry>
+ </row>
+ <row>
+ <entry>
+ 2
+ </entry>
+ <entry>
+ 1558
+ </entry>
+ <entry>
+ 6.1%
+ </entry>
+ <entry>
+ 0.6%
+ </entry>
- </row>
+ </row>
+ <row>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ 2242
+ </entry>
+ <entry>
+ 3.1%
+ </entry>
+ <entry>
+ 0.38%
+ </entry>
- </thead>
- <tbody>
- <row>
- <entry>
- 1
- </entry>
- <entry>
- 116
- </entry>
- <entry>
- ?
- </entry>
- <entry>
- ?
- </entry>
+ </row>
+ <row>
+ <entry>
+ 4
+ </entry>
+ <entry>
+ 2756
+ </entry>
+ <entry>
+ 2.2%
+ </entry>
+ <entry>
+ 0.41%
+ </entry>
- </row>
- <row>
- <entry>
- 2
- </entry>
- <entry>
- 1558
- </entry>
- <entry>
- 6.1%
- </entry>
- <entry>
- 0.6%
- </entry>
+ </row>
- </row>
- <row>
- <entry>
- 3
- </entry>
- <entry>
- 2242
- </entry>
- <entry>
- 3.1%
- </entry>
- <entry>
- 0.38%
- </entry>
+ </tbody>
- </row>
- <row>
- <entry>
- 4
- </entry>
- <entry>
- 2756
- </entry>
- <entry>
- 2.2%
- </entry>
- <entry>
- 0.41%
- </entry>
+ </tgroup>
- </row>
+ </table>
- </tbody>
+ </section>
+
- </tgroup>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide-Performance_Tuning_Guide">
+ <title>Performance Tuning Guide</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Performance_Tuning_Guide-JBoss_AS_Tuning">
+ <title>JBoss AS Tuning</title>
+ <para>
+ You can use <parameter>maxThreads</parameter> parameter to increase maximum amount of threads that can be launched in AS instance. This can improve performance if you need a high level of concurrency. also you can use <code>-XX:+UseParallelGC</code> java directory to use parallel garbage collector.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ Beware of setting <parameter>maxThreads</parameter> too big, this can cause <exceptionname>OutOfMemoryError</exceptionname>. We've got it with <code>maxThreads=1250</code> on such machine:
+ </para>
+ <simplelist>
+ <member>7.5 GB memory</member>
+ <member>4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)</member>
+ <member>850 GB instance storage (2×420 GB plus 10 GB root partition)</member>
+ <member>64-bit platform</member>
+ <member>I/O Performance: High</member>
+ <member>API name: m1.large</member>
+ <member>java -Xmx 4g</member>
- </table>
+ </simplelist>
- </section>
-
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Performance_Tuning_Guide-Performance_Tuning_Guide">
- <title>Performance Tuning Guide</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Performance_Tuning_Guide-JBoss_AS_Tuning">
- <title>JBoss AS Tuning</title>
- <para>
- You can use <parameter>maxThreads</parameter> parameter to increase maximum amount of threads that can be launched in AS instance. This can improve performance if you need a high level of concurrency. also you can use <code>-XX:+UseParallelGC</code> java directory to use parallel garbage collector.
- </para>
- <note>
- <title>Note</title>
- <para>
- Beware of setting <parameter>maxThreads</parameter> too big, this can cause <exceptionname>OutOfMemoryError</exceptionname>. We've got it with <code>maxThreads=1250</code> on such machine:
- </para>
- <simplelist>
- <member>7.5 GB memory</member>
- <member>4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)</member>
- <member>850 GB instance storage (2×420 GB plus 10 GB root partition)</member>
- <member>64-bit platform</member>
- <member>I/O Performance: High</member>
- <member>API name: m1.large</member>
- <member>java -Xmx 4g</member>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Performance_Tuning_Guide-JCR_Cache_Tuning">
+ <title>JCR Cache Tuning</title>
+ <para>
+ <citetitle>Cache size</citetitle>
+ </para>
+ <para>
+ JCR-cluster implementation is built using JBoss Cache as distributed, replicated cache. But there is one particularity related to remove action in it. Speed of this operation depends on the actual size of cache. As many nodes are currently in cache as much time is needed to remove one particular node (subtree) from it.
+ </para>
+ <para>
+ <citetitle>Eviction</citetitle>
+ </para>
+ <para>
+ Manipulations with eviction <parameter>wakeUpInterval</parameter> value does not affect on performance. Performance results with values from 500 up to 3000 are approximately equal.
+ </para>
+ <para>
+ <citetitle>Transaction Timeout</citetitle>
+ </para>
+ <para>
+ Using short timeout for long transactions such as Export/Import, removing huge subtree defined timeout may cause <exceptionname>TransactionTimeoutException</exceptionname>.
+ </para>
- </simplelist>
-
- </note>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Performance_Tuning_Guide-JCR_Cache_Tuning">
- <title>JCR Cache Tuning</title>
- <para>
- <citetitle>Cache size</citetitle>
- </para>
- <para>
- JCR-cluster implementation is built using JBoss Cache as distributed, replicated cache. But there is one particularity related to remove action in it. Speed of this operation depends on the actual size of cache. As many nodes are currently in cache as much time is needed to remove one particular node (subtree) from it.
- </para>
- <para>
- <citetitle>Eviction</citetitle>
- </para>
- <para>
- Manipulations with eviction <parameter>wakeUpInterval</parameter> value does not affect on performance. Performance results with values from 500 up to 3000 are approximately equal.
- </para>
- <para>
- <citetitle>Transaction Timeout</citetitle>
- </para>
- <para>
- Using short timeout for long transactions such as Export/Import, removing huge subtree defined timeout may cause <exceptionname>TransactionTimeoutException</exceptionname>.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Performance_Tuning_Guide-Clustering">
- <title>Clustering</title>
- <para>
- For performance it is better to have loadbalacer, DB server and shared NFS on different computers. If in some reasons you see that one node gets more load than others you can decrease this load using load value in load balancer.
- </para>
- <para>
- <citetitle>JGroups configuration</citetitle>
- </para>
- <para>
- It's recommended to use "multiplexer stack" feature present in JGroups. It is set by default in eXo JCR and offers higher performance in cluster, using less network connections also. If there are two or more clusters in your network, please check that they use different ports and different cluster names.
- </para>
- <para>
- <citetitle>Write performance in cluster</citetitle>
- </para>
- <para>
- Exo JCR implementation uses Lucene indexing engine to provide search capabilities. But Lucene brings some limitations for write operations: it can perform indexing only in one thread. That is why write performance in cluster is not higher than in singleton environment. Data is indexed on coordinator node, so increasing write-load on cluster may lead to ReplicationTimeout exception. It occurs because writing threads queue in the indexer and under high load timeout for replication to coordinator will be exceeded.
- </para>
- <para>
- Taking in consideration this fact, it is recommended to exceed <parameter>replTimeout</parameter> value in cache configurations in case of high write-load.
- </para>
- <para>
- <citetitle>Replication timeout</citetitle>
- </para>
- <para>
- Some operations may take too much time. So if you get <exceptionname>ReplicationTimeoutException</exceptionname> try increasing replication timeout:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Performance_Tuning_Guide-Clustering">
+ <title>Clustering</title>
+ <para>
+ For performance it is better to have loadbalacer, DB server and shared NFS on different computers. If in some reasons you see that one node gets more load than others you can decrease this load using load value in load balancer.
+ </para>
+ <para>
+ <citetitle>JGroups configuration</citetitle>
+ </para>
+ <para>
+ It's recommended to use "multiplexer stack" feature present in JGroups. It is set by default in eXo JCR and offers higher performance in cluster, using less network connections also. If there are two or more clusters in your network, please check that they use different ports and different cluster names.
+ </para>
+ <para>
+ <citetitle>Write performance in cluster</citetitle>
+ </para>
+ <para>
+ Exo JCR implementation uses Lucene indexing engine to provide search capabilities. But Lucene brings some limitations for write operations: it can perform indexing only in one thread. That is why write performance in cluster is not higher than in singleton environment. Data is indexed on coordinator node, so increasing write-load on cluster may lead to ReplicationTimeout exception. It occurs because writing threads queue in the indexer and under high load timeout for replication to coordinator will be exceeded.
+ </para>
+ <para>
+ Taking in consideration this fact, it is recommended to exceed <parameter>replTimeout</parameter> value in cache configurations in case of high write-load.
+ </para>
+ <para>
+ <citetitle>Replication timeout</citetitle>
+ </para>
+ <para>
+ Some operations may take too much time. So if you get <exceptionname>ReplicationTimeoutException</exceptionname> try increasing replication timeout:
+ </para>
+
<programlisting language="XML" role="XML"> <clustering mode="replication" clusterName="${jbosscache-cluster-name}">
...
<sync replTimeout="60000" />
</clustering>
</programlisting>
- <para>
- value is set in miliseconds.
- </para>
+ <para>
+ value is set in miliseconds.
+ </para>
- </section>
-
- <!-- <section id="sect-Reference_Guide-Performance_Tuning_Guide-JVM_parameters">
+ </section>
+
+ <!-- <section id="sect-Reference_Guide-Performance_Tuning_Guide-JVM_parameters">
<title>JVM parameters</title>
<para>
<citetitle>PermGen space size</citetitle>
@@ -369,8 +432,8 @@
</para>
</section> -->
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/query-handler-config.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/query-handler-config.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/query-handler-config.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -3,51 +3,60 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-<section id="sect-Reference_Guide_eXo_JCR_1.14-QueryHandler_configuration">
- <title>QueryHandler configuration</title>
- <!-- <section id="sect-Reference_Guide_eXo_JCR_1.14-QueryHandler_configuration-Indexing_in_clustered_environment">
- <title>Indexing in clustered environment</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-QueryHandler_configuration">
+ <title>QueryHandler configuration</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-QueryHandler_configuration-Indexing_in_clustered_environment">
+ <title>Indexing in clustered environment</title>
+
<para>
JCR offers indexing strategies for clustered environments using the advantages of running in a single JVM or doing the best to use all resources available in cluster. JCR uses Lucene library as underlying search and indexing engine, but it has several limitations that greatly reduce possibilities and limits the usage of cluster advantages. That's why eXo JCR offers two strategies that are suitable for it's own usecases. They are clustered with shared index and clustered with local indexes. Each one has it's pros and cons.
- </para>
+ </para>
+
<para>
Clustered implementation with local indexes combines in-memory buffer index directory with delayed file-system flushing. This index is called "Volatile" and it is invoked in searches also. Within some conditions volatile index is flushed to the persistent storage (file system) as new index directory. This allows to achieve great results for write operations.
- </para>
+ </para>
+
<mediaobject>
<imageobject>
- <imagedata align="center" fileref="images/eXoJCR/diagram-local-index.png" width="444" />
+ <imagedata align="center" fileref="images/eXoJCR/diagram-local-index.png" width="444" />
</imageobject>
-
- </mediaobject>
+ </mediaobject>
+
<para>
As this implementation designed for clustered environment it has additional mechanisms for data delivery within cluster. Actual text extraction jobs done on the same node that does content operations (i.e. write operation). Prepared "documents" (Lucene term that means block of data ready for indexing) are replicated withing cluster nodes and processed by local indexes. So each cluster instance has the same index content. When new node joins the cluster it has no initial index, so it must be created. There are some supported ways of doing this operation. The simplest is to simply copy the index manually but this is not intended for use. If no initial index found JCR uses automated sceneries. They are controlled via configuration (see "index-recovery-mode" parameter) offering full re-indexing from database or copying from another cluster node.
- </para>
+ </para>
+
<para>
For some reasons having a multiple index copies on each instance can be costly. So shared index can be used instead (see diagram below).
- </para>
+ </para>
+
<mediaobject>
<imageobject>
- <imagedata align="center" fileref="images/eXoJCR/diagram-shared-index.png" width="444" />
+ <imagedata align="center" fileref="images/eXoJCR/diagram-shared-index.png" width="444" />
</imageobject>
-
- </mediaobject>
+ </mediaobject>
+
<para>
This indexing strategy combines advantages of in-memory index along with shared persistent index offering "near" real time search capabilities. This means that newly added content is accessible via search practically immediately. This strategy allows nodes to index data in their own volatile (in-memory) indexes, but persistent indexes are managed by single "coordinator" node only. Each cluster instance has a read access for shared index to perform queries combining search results found in own in-memory index also. Take in account that shared folder must be configured in your system environment (i.e. mounted NFS folder). But this strategy in some extremely rare cases can have a bit different volatile indexes within cluster instances for a while. In a few seconds they will be up2date.
- </para>
+ </para>
+
<para>
- See more about <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Search_Configuration" />.
- </para>
-
- </section> -->
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-QueryHandler_configuration-Configuration">
- <title>Configuration</title>
+ See more about
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Search_Configuration" />
+ .
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-QueryHandler_configuration-Configuration">
+ <title>Configuration</title>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Query_handler_configuration_overview">
<title>Query-handler configuration overview</title>
- <para>
- Configuration example:
+
+ <para>
+ Configuration example:
</para>
-
<programlisting language="XML" role="XML"><workspace name="ws">
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
@@ -62,131 +71,210 @@
<property name="rdbms-reindexing" value="true" />
<property name="reindexing-page-size" value="1000" />
<property name="index-recovery-mode" value="from-coordinator" />
+ <property name="index-recovery-filter" value="org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter" />
</properties>
</query-handler>
</workspace>
</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Query_handler_configuration_overview-Config_properties_description">
- <title>Configuration properties</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- Property name
- </entry>
- <entry>
- Description
- </entry>
-
- </row>
-
- </thead>
- <tbody>
- <row>
- <entry>
- index-dir
- </entry>
- <entry>
- path to index
- </entry>
-
- </row>
- <row>
- <entry>
- changesfilter-class
- </entry>
- <entry>
- template of JBoss-cache configuration for all query-handlers in repository
- </entry>
-
- </row>
- <row>
- <entry>
- jbosscache-configuration
- </entry>
- <entry>
- template of JBoss-cache configuration for all query-handlers in repository
- </entry>
-
- </row>
- <row>
- <entry>
- jgroups-configuration
- </entry>
- <entry>
- jgroups-configuration is template configuration for all components (search, cache, locks) [Add link to document describing template configurations]
- </entry>
-
- </row>
- <row>
- <entry>
- jgroups-multiplexer-stack
- </entry>
- <entry>
- [TODO about jgroups-multiplexer-stack - add link to JBoss doc]
- </entry>
-
- </row>
- <row>
- <entry>
- jbosscache-cluster-name
- </entry>
- <entry>
- cluster name (must be unique)
- </entry>
-
- </row>
- <row>
- <entry>
- max-volatile-time
- </entry>
- <entry>
- max time to live for Volatile Index
- </entry>
-
- </row>
- <row>
- <entry>
- rdbms-reindexing
- </entry>
- <entry>
- indicate that need to use rdbms reindexing mechanism if possible, the default value is true
- </entry>
-
- </row>
- <row>
- <entry>
- reindexing-page-size
- </entry>
- <entry>
- maximum amount of nodes which can be retrieved from storage for re-indexing purpose, the default value is 100
- </entry>
-
- </row>
- <row>
- <entry>
- index-recovery-mode
- </entry>
- <entry>
- If the parameter has been set to <command>from-indexing</command>, so a full indexing will be automatically launched (default behavior), if the parameter has been set to <command>from-coordinator</command>, the index will be retrieved from coordinator
- </entry>
-
- </row>
-
- </tbody>
-
- </tgroup>
-
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Query_handler_configuration_overview-Config_properties_description">
+ <title>Configuration properties</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ Property name
+ </entry>
+
+ <entry>
+ Description
+ </entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>
+ index-dir
+ </entry>
+
+ <entry>
+ path to index
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ changesfilter-class
+ </entry>
+
+ <entry>
+ template of JBoss-cache configuration for all query-handlers in repository
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ jbosscache-configuration
+ </entry>
+
+ <entry>
+ template of JBoss-cache configuration for all query-handlers in repository
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ jgroups-configuration
+ </entry>
+
+ <entry>
+ jgroups-configuration is template configuration for all components (search, cache, locks) [Add link to document describing template configurations]
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ jgroups-multiplexer-stack
+ </entry>
+
+ <entry>
+ [TODO about jgroups-multiplexer-stack - add link to JBoss doc]
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ jbosscache-cluster-name
+ </entry>
+
+ <entry>
+ cluster name (must be unique)
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ max-volatile-time
+ </entry>
+
+ <entry>
+ max time to live for Volatile Index
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ rdbms-reindexing
+ </entry>
+
+ <entry>
+ indicate that need to use rdbms reindexing mechanism if possible, the default value is true
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ reindexing-page-size
+ </entry>
+
+ <entry>
+ maximum amount of nodes which can be retrieved from storage for re-indexing purpose, the default value is 100
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ index-recovery-mode
+ </entry>
+
+ <entry>
+ If the parameter has been set to <command>from-indexing</command>, so a full indexing will be automatically launched (default behavior), if the parameter has been set to <command>from-coordinator</command>, the index will be retrieved from coordinator
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ index-recovery-filter
+ </entry>
+
+ <entry>
+ Defines implementation class or classes of RecoveryFilters, the mechanism of index synchronization for Local Index strategy.
+ </entry>
+ </row>
+
+ <row>
+ <entry>
+ async-reindexing
+ </entry>
+
+ <entry>
+ Controls the process of re-indexing on JCR's startup. If this flag is set, indexing will be launched asynchronously, without blocking the JCR. Default is "<literal>false</literal>".
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
</table>
-
- </section>
-
- <!--<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Cluster_ready_indexing_strategies">
- <title>Cluster-ready indexing strategies</title>
- <para>
- For both cluster-ready implementations JBoss Cache, JGroups and Changes Filter values must be defined. Shared index requires some kind of remote or shared file system to be attached in a system (i.e. NFS, SMB or etc). Indexing directory ("indexDir" value) must point to it. Setting "changesfilter-class" to "org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" will enable shared index implementation.
+
+ <formalpara>
+ <title>Improving Query Performance With <literal>postgreSQL</literal> and <parameter>rdbms-reindexing</parameter></title>
+
+ <para>
+ If you use <literal>postgreSQL</literal> and <parameter>rdbms-reindexing</parameter> is set to <literal>true</literal>, the performance of the queries used while indexing can be improved by:
+ </para>
+ </formalpara>
+
+ <procedure>
+ <title></title>
+
+ <step>
+ <para>
+ Set the parameter "<parameter>enable_seqscan</parameter>" to "<literal>off</literal>"
+ </para>
+
+ <para>
+ <emphasis role="bold">OR</emphasis>
+ </para>
+
+ <para>
+ Set "<parameter>default_statistics_target</parameter>" to at least "<literal>50</literal>".
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Restart DB server and make analyze of the JCR_SVALUE (or JCR_MVALUE) table.
+ </para>
+ </step>
+ </procedure>
+
+ <formalpara>
+ <title>Improving Query Performance With <literal>DB2</literal> and <parameter>rdbms-reindexing</parameter></title>
+
+ <para>
+ If you use <literal>DB2</literal> and <parameter>rdbms-reindexing</parameter> is set to <literal>true</literal>, the performance of the queries used while indexing can be improved by:
+ </para>
+ </formalpara>
+
+ <procedure>
+ <title></title>
+
+ <step>
+ <para>
+ Make statistics on tables by running the following for <literal>JCR_SITEM</literal> (or <literal>JCR_MITEM</literal>) and <literal>JCR_SVALUE</literal> (or <literal>JCR_MVALUE</literal>) tables:
+ </para>
+<programlisting><code>RUNSTATS ON TABLE <scheme>.<table> WITH DISTRIBUTION AND INDEXES ALL</code>
+</programlisting>
+ </step>
+ </procedure>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Cluster_ready_indexing">
+ <title>Cluster-ready indexing</title>
+
+ <para>
+ For both cluster-ready implementations JBoss Cache, JGroups and Changes Filter values must be defined. Shared index requires some kind of remote or shared file system to be attached in a system (i.e. NFS, SMB or etc). Indexing directory ("indexDir" value) must point to it. Setting "changesfilter-class" to "org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" will enable shared index implementation.
</para>
-
<programlisting language="XML" role="XML"><workspace name="ws">
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
@@ -204,10 +292,9 @@
</properties>
</query-handler>
</workspace></programlisting>
- <para>
- In order to use cluster-ready strategy based on local indexes, when each node has own copy of index on local file system, the following configuration must be applied. Indexing directory must point to any folder on local file system and "changesfilter-class" must be set to "org.exoplatform.services.jcr.impl.core.query.jbosscache.LocalIndexChangesFilter".
+ <para>
+ In order to use cluster-ready strategy based on local indexes, when each node has own copy of index on local file system, the following configuration must be applied. Indexing directory must point to any folder on local file system and "changesfilter-class" must be set to "org.exoplatform.services.jcr.impl.core.query.jbosscache.LocalIndexChangesFilter".
</para>
-
<programlisting language="XML" role="XML"><workspace name="ws">
<query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
@@ -226,26 +313,118 @@
</query-handler>
</workspace>
</programlisting>
-
- </section> -->
-
+ </section>
+
+ <section>
+ <title>Local Index Recovery Filters</title>
+
+ <para>
+ A common usecase for all cluster-ready applications is a hot joining and leaving of processing units. All nodes that are joining a cluster for the first time or nodes joining after some downtime, must be in a synchronized state.
+ </para>
+
+ <para>
+ When using shared value storages, databases and indexes, cluster nodes are synchronized at any given time. But is not the case when a local index strategy is used.
+ </para>
+
+ <para>
+ If a new node joins a cluster, without an index it is retrieved or recreated. Nodes can be also be restarted and thus the index is not empty. By default, even though the existing index is thought to be up to date, it can be outdated.
+ </para>
+
+ <para>
+ The JBoss Enterprise Portal Platform JCR offers a mechanism called <literal>RecoveryFilters</literal> that will automatically retrieve index for the joining node on start up. This feature is a set of filters that can be defined via <literal>QueryHandler</literal> configuration:
+ </para>
+<programlisting language="XML"><property name="index-recovery-filter" value="org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter" /></programlisting>
+ <para>
+ Filter numbers are not limited so they can be combined:
+ </para>
+<programlisting language="XML"><property name="index-recovery-filter" value="org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter" />
+ <property name="index-recovery-filter" value="org.exoplatform.services.jcr.impl.core.query.lucene.SystemPropertyRecoveryFilter" />
+</programlisting>
+ <para>
+ If any one returns fires, the index is re-synchronized. This feature uses standard index recovery mode defined by previously described parameter (can be "from-indexing" (default) or "from-coordinator")
+ </para>
+<programlisting language="XML"><property name="index-recovery-mode" value="from-coordinator" />
+ </programlisting>
+ <para>
+ There are multiple filter implementations:
+ </para>
+
+ <variablelist>
+ <title>org.exoplatform.services.jcr.impl.core.query.lucene.DummyRecoveryFilter</title>
+
+ <varlistentry>
+ <term></term>
+
+ <listitem>
+ <para>
+ Always returns true, for cases when index must be force resynchronized (recovered) each time.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>org.exoplatform.services.jcr.impl.core.query.lucene.SystemPropertyRecoveryFilter</term>
+
+ <listitem>
+ <para>
+ Returns value of system property "<literal>org.exoplatform.jcr.recoveryfilter.forcereindexing</literal>". So index recovery can be controlled from the top without changing documentation using system properties.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>org.exoplatform.services.jcr.impl.core.query.lucene.ConfigurationPropertyRecoveryFilter</term>
+
+ <listitem>
+ <para>
+ Returns value of <literal>QueryHandler</literal> configuration property "<literal>index-recovery-filter-forcereindexing</literal>". So index recovery can be controlled from configuration separately for each workspace. For example:
+ </para>
+<programlisting language="XML"><property name="index-recovery-filter" value="org.exoplatform.services.jcr.impl.core.query.lucene.ConfigurationPropertyRecoveryFilter" />
+ <property name="index-recovery-filter-forcereindexing" value="true" />
+ </programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>org.exoplatform.services.jcr.impl.core.query.lucene.DocNumberRecoveryFilter</term>
+
+ <listitem>
+ <para>
+ Checks the number of documents in index on coordinator side and self-side. It returns <literal>true</literal> if the count differs.
+ </para>
+
+ <para>
+ The advantage of this filter compared to others, is that it will skip reindexing for workspaces where the index was not modified.
+ </para>
+
+ <para>
+ For example; if there is ten repositories with three workspaces in each and only one is heavily used in the cluster, this filter will only reindex those workspaces that have been changed, without affecting other indexes.
+ </para>
+
+ <para>
+ This greatly reduces start up time.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
<section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-JBoss_Cache_template_configuration">
<title>JBoss-Cache template configuration</title>
- <para>
- JBoss-Cache template configuration for query handler is about the same for both clustered strategies.
+
+ <para>
+ JBoss-Cache template configuration for query handler is about the same for both clustered strategies.
</para>
-
-<example>
- <title>jbosscache-indexer.xml</title>
+
+ <example>
+ <title>jbosscache-indexer.xml</title>
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
-
<locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
lockAcquisitionTimeout="20000" />
<!-- Configure the TransactionManager -->
<transaction transactionManagerLookupClass="org.jboss.cache.transaction.JBoss<remark>Standalone</remark>
JTAManagerLookup" />
-
<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
<jgroupsConfig multiplexerStack="jcr.stack" />
@@ -258,20 +437,104 @@
<property name="minTimeToLive" value="60000" />
</default>
</eviction>
-
</jbosscache></programlisting>
-</example>
+ </example>
+
+ <para>
+ Read more about template configurations
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-JBoss_Cache_configuration" />.
+ </para>
+ </section>
+ </section>
+
+ <section>
+ <title>Asynchronous Reindexing</title>
+
+ <para>
+ Managing a large data set using a JCR in a production environment at times requires special operations with Indexes, stored on File System. One of those maintenance operations is a recreation of it. Also called "re-indexing". There are various usecases when it's important to do. They include hardware faults, hard restarts, data-corruption, migrations and JCR updates that brings new features related to index. Usually index re-creation requested on server's startup or in runtime.
+ </para>
+
+ <section>
+ <title>On startup indexing</title>
+
+ <para>
+ Common usecase for updating and re-creating the index is to stop the server and manually remove indexes for workspaces requiring it. When server will be started, missing indexes are automatically recovered by re-indexing. JCR Supports direct RDBMS re-indexing, that usually is faster than ordinary and can be configured via QueryHandler parameter "rdbms-reindexing" set to "true" (for more information please refer to "Query-handler configuration overview"). New feature to introduce is asynchronous indexing on startup. Usually startup is blocked until process is finished. Block can take any period of time, depending on amount of data persisted in repositories. But this can be resolved by using an asynchronous approaches of startup indexation. Saying briefly, it performs all operations with index in background, without blocking the repository. This is controlled by the value of "async-reindexing" parameter in QueryHandler configuration. With asynchronous indexatio!
n active, JCR starts with no active indexes present. Queries on JCR still can be executed without exceptions, but no results will be returned until index creation completed. Checking index state is possible via QueryManagerImpl:
+ </para>
+
+ <para>
+<programlisting lang="java">boolean online = ((QueryManagerImpl)Workspace.getQueryManager()).getQueryHandeler().isOnline();</programlisting>
+ </para>
+
+ <para>
+ "OFFLINE" state means that index is currently re-creating. When state changed, corresponding log event is printed. From the start of background task index is switched to "OFFLINE", with following log event :
+ </para>
+<programlisting>[INFO] Setting index OFFLINE (repository/production[system]).</programlisting>
+ <para>
+ When process finished, two events are logged :
+ </para>
+<programlisting>[INFO] Created initial index for 143018 nodes (repository/production[system]).
+[INFO] Setting index ONLINE (repository/production[system]).</programlisting>
+ <para>
+ Those two log lines indicates the end of process for workspace given in brackets. Calling isOnline() as mentioned above, will also return true.
+ </para>
+ </section>
+
+ <section>
+ <title>Hot Asynchronous Workspace Reindexing via JMX</title>
+
+ <para>
+ Some hard system faults, error during upgrades, migration issues and some other factors may corrupt the index. Most likely end customers would like the production systems to fix index issues in run-time, without delays and restarts. Current versions of JCR supports "Hot Asynchronous Workspace Reindexing" feature. It allows end-user (Service Administrator) to launch the process in background without stopping or blocking whole application by using any JMX-compatible console (see screenshot below, "JConsole in action").
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="images/jmx-jconsole.png" />
+ </imageobject>
+ </mediaobject>
+ <para>
+ Server can continue working as expected while index is recreated. This depends on the flag "allow queries", passed via JMX interface to reindex operation invocation. If the flag set, then application continues working. But there is one critical limitation the end-users must be aware. Index is frozen while background task is running. It meant that queries are performed on index present on the moment of task startup and data written into repository after startup won't be available through the search until process finished. Data added during re-indexation is also indexed, but will be available only when task is done. Briefly, JCR makes the snapshot of indexes on asynch task startup and uses it for searches. When operation finished, stale indexes replaced by newly created including newly added data. If flag "allow queries" is set to false, then all queries will throw an exception while task is running. Current state can be acquired using the following JMX operati!
on:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ getHotReindexingState() - returns information about latest invocation: start time, if in progress or finish time if done.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Notices</title>
+
+ <para>
+ First of all, can't launch Hot re-indexing via JMX if index is already in offline mode. It means that index is currently is invoked in some operations, like re-indexing at startup, copying in cluster to another node or whatever. Another important this is Hot Asynchronous Reindexing via JMX and "on startup" reindexing are completely different features. So you can't get the state of startup reindexing using command getHotReindexingState in JMX interface, but there are some common JMX operations:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ getIOMode - returns current index IO mode (READ_ONLY / READ_WRITE), belongs to clustered configuration states;
+ </para>
+ </listitem>
- <para>
- Read more about template configurations <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-JBoss_Cache_configuration" />.
+ <listitem>
+ <para>
+ getState - returns current state: ONLINE / OFFLINE.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+
+ <section>
+ <title>Advanced tuning</title>
+
+ <section>
+ <title>Lucene tuning</title>
+
+ <para>
+ As mentioned above, JCR Indexing is based on Lucene indexing library as underlying search engine. It uses Directories to store index and manages access to index by Lock Factories. By default JCR implementation uses optimal combination of Directory implementation and Lock Factory implementation. When running on OS different from Windows, NIOFSDirectory implementation used. And SimpleFSDirectory for Windows stations. NativeFSLockFactory is an optimal solution for wide variety of cases including clustered environment with NFS shared resources. But those default can be overridden with the help of system properties. There are two properties: "org.exoplatform.jcr.lucene.store.FSDirectoryLockFactoryClass" and "org.exoplatform.jcr.lucene.FSDirectory.class" that are responsible for changing default behavior. First one defines implementation of abstract Lucene LockFactory class and the second one sets implementation class for FSDirectory instances. For more information!
please refer to Lucene documentation. But be sure You know what You are changing. JCR allows end users to change implementation classes of Lucene internals, but doesn't guarantee it's stability and functionality.
</para>
-
- </section>
-
-
- </section>
-
-
-</section>
-
-
+ </section>
+ </section>
+ </section>
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-check-controller.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-check-controller.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-check-controller.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -0,0 +1,70 @@
+<?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">
+<section>
+
+ <title>Checking repository integrity and consistency</title>
+
+ <section>
+ <title>JMX-based consistency tool</title>
+
+ <para>Production and any other system may have faults some day. They may
+ be caused by hardware problems, human faults, software errors during
+ updates and many other circumstances. It is important to check integrity
+ and consistency of the system if there is no backup or it is stale, or
+ recovery process takes much. Exo JCR implementation offers an innovative
+ JMX-based complex checking tool. Running inspection, tool check every
+ major JCR component, such as persistent data layer and index. Persistent
+ layer includes JDBC Data Container and Value-Storages if they are
+ configured. Database verified using the set of complex specialized
+ domain-specific queries. Value Storage tool checks existence and access to
+ each file. Index verification contains two-way pass cycle, existence of
+ each node in index checks on persistent layer along with opposite
+ direction, when each node from Data Container validated in index. Access
+ to check tool is exposed via JMX interface, with the following operation
+ available:</para>
+
+ <table>
+ <title>Available methods</title>
+
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>checkRepositoryDataConsistency()</entry>
+
+ <entry>Inspect full repository data (db, value storage and search
+ index)</entry>
+ </row>
+
+ <row>
+ <entry>checkRepositoryDataBaseConsistency()</entry>
+
+ <entry>Inspect only DB</entry>
+ </row>
+
+ <row>
+ <entry>checkRepositoryValueStorageConsistency()</entry>
+
+ <entry>Inspect only ValueStorage</entry>
+ </row>
+
+ <row>
+ <entry>checkRepositorySearchIndexConsistency()</entry>
+
+ <entry>Inspect only SearchIndex</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>All inspection activities and corrupted data identifier are stored
+ in file, which can be found in app directory by name
+ <code>report-<repository name>-dd-MMM-yy-HH-mm.txt</code>. Path to
+ file will be returned in result message also. Please, take in account
+ thare is three types of inconsistency and two of them are critical. They
+ are Errors and Index faults. Index faults are marked as "Reindex" and can
+ be fixed by reindexing the workspace, but the Errors can only be fixed
+ manually. Warnings found by tool can be a normal situation in some cases
+ and usually production system will still remain fully functional.</para>
+ </section>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-creation-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-creation-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-creation-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -34,7 +34,7 @@
</procedure>
<para>
- There is two ways to create repositry: make it in single step - just call <literal>createRepository(String backupId, RepositoryEntry)</literal>; or reserve <literal>repositoryName</literal> at first (<literal>reserveRepositoryName(String repositoryName)</literal>), then create reserved repository (<literal>createRepository(String backupId, RepositoryEntry rEntry, String token)</literal>).
+ There is two ways to create repository: make it in single step - just call <literal>createRepository(String backupId, RepositoryEntry)</literal>; or reserve <literal>repositoryName</literal> at first (<literal>reserveRepositoryName(String repositoryName)</literal>), then create reserved repository (<literal>createRepository(String backupId, RepositoryEntry rEntry, String token)</literal>).
</para>
</section>
@@ -56,9 +56,6 @@
<init-params>
<properties-param>
<name>backup-properties</name>
- <property name="default-incremental-job-period" value="3600" /><!-- set default incremental periond = 60 minutes -->
- <property name="full-backup-type" value="org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob" />
- <property name="incremental-backup-type" value="org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob" />
<property name="backup-dir" value="target/backup" />
</properties-param>
</init-params>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-similar-nodes.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-similar-nodes.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-similar-nodes.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -13,7 +13,7 @@
</para>
<note>
<para>
- See also about Similarity and configuration - <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content" />
+ Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content" /> for information about Similarity and configuration.
</para>
</note>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/jcr-query-usecases.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/jcr-query-usecases.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/jcr-query-usecases.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,33 +4,33 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases">
- <title>JCR Query Usecases</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Intro">
- <title>Intro</title>
- <para>
- JCR supports two query languages - JCR and XPath. A query, whether XPath or SQL, specifies a subset of nodes within a workspace, called the result set. The result set constitutes all the nodes in the workspace that meet the constraints stated in the query.
- </para>
+ <title>JCR Query Usecases</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Intro">
+ <title>Intro</title>
+ <para>
+ JCR supports two query languages - JCR and XPath. A query, whether XPath or SQL, specifies a subset of nodes within a workspace, called the result set. The result set constitutes all the nodes in the workspace that meet the constraints stated in the query.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Query_Lifecycle">
- <title>Query Lifecycle</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Query_Lifecycle-Query_Creation_and_Execution">
- <title>Query Creation and Execution</title>
- <para>
- <emphasis role="bold">SQL</emphasis>
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Query_Lifecycle">
+ <title>Query Lifecycle</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Query_Lifecycle-Query_Creation_and_Execution">
+ <title>Query Creation and Execution</title>
+ <para>
+ <emphasis role="bold">SQL</emphasis>
+ </para>
+
<programlisting language="Java" role="Java">// get QueryManager
QueryManager queryManager = workspace.getQueryManager();
// make SQL query
Query query = queryManager.createQuery("SELECT * FROM nt:base ", Query.SQL);
// execute query
QueryResult result = query.execute();</programlisting>
- <para>
- <emphasis role="bold">XPath</emphasis>
- </para>
-
+ <para>
+ <emphasis role="bold">XPath</emphasis>
+ </para>
+
<programlisting language="Java" role="Java">// get QueryManager
QueryManager queryManager = workspace.getQueryManager();
// make XPath query
@@ -38,22 +38,22 @@
// execute query
QueryResult result = query.execute();</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Query_Lifecycle-Query_Result_Processing">
- <title>Query Result Processing</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Query_Lifecycle-Query_Result_Processing">
+ <title>Query Result Processing</title>
+
<programlisting language="Java" role="Java">// fetch query result
QueryResult result = query.execute();</programlisting>
- <para>
- Now we can get result in an iterator of nodes:
- </para>
-
+ <para>
+ Now we can get result in an iterator of nodes:
+ </para>
+
<programlisting language="Java" role="Java">NodeIterator it = result.getNodes();</programlisting>
- <para>
- or we get the result in a table:
- </para>
-
+ <para>
+ or we get the result in a table:
+ </para>
+
<programlisting language="Java" role="Java">// get column names
String[] columnNames = result.getColumnNames();
// get column rows
@@ -65,336 +65,304 @@
Value[] values = row.getValues();
}</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Query_Lifecycle-Scoring">
- <title>Scoring</title>
- <para>
- The result returns a score for each row in the result set. The score contains a value that indicates a rating of how well the result node matches the query. A high value means a better matching than a low value. This score can be used for ordering the result.
- </para>
- <para>
- eXo JCR Scoring is a mapping of Lucene scoring. For a more in-depth understanding, please study <ulink url="http://lucene.apache.org/java/2_4_1/scoring.html">Lucene documentation</ulink>.
- </para>
- <para>
- jcr:score counted in next way - (lucene score)*1000f.
- </para>
- <para>
- Score may be increased for specified nodes, see <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Changing_Priority_of_Node" />
- </para>
- <para>
- Also, see an example <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Score" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Query_Lifecycle-Scoring">
+ <title>Scoring</title>
+ <para>
+ The result returns a score for each row in the result set. The score contains a value that indicates a rating of how well the result node matches the query. A high value means a better matching than a low value. This score can be used for ordering the result.
+ </para>
+ <para>
+ eXo JCR Scoring is a mapping of Lucene scoring. For a more in-depth understanding, please study <ulink url="http://lucene.apache.org/java/2_4_1/scoring.html">Lucene documentation</ulink>.
+ </para>
+ <para>
+ jcr:score counted in next way - (lucene score)*1000f.
+ </para>
+ <para>
+ Score may be increased for specified nodes, see <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Changing_Priority_of_Node" />
+ </para>
+ <para>
+ Also, see an example <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Score" />
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Query_result_settings">
- <title>Query result settings</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SetOffset_and_SetLimit" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Query_result_settings">
+ <title>Query result settings</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SetOffset_and_SetLimit" />
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Type_Constraints">
- <title>Type Constraints</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_All_Nodes" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Type_Constraints">
+ <title>Type Constraints</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_All_Nodes" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Nodes_by_Primary_Type" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Nodes_by_Primary_Type" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Nodes_by_Mixin_Type" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Nodes_by_Mixin_Type" />
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Property_Constraints">
- <title>Property Constraints</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Property_Comparison" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Property_Constraints">
+ <title>Property Constraints</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Property_Comparison" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-LIKE_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-LIKE_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Escaping_in_LIKE_Statements" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Escaping_in_LIKE_Statements" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-NOT_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-NOT_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-AND_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-AND_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-OR_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-OR_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Property_Existence_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Property_Existence_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Nodes_in_a_Case_Insensitive_Way" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Nodes_in_a_Case_Insensitive_Way" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Date_Property_Comparison" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Date_Property_Comparison" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Node_Name_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Node_Name_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Multivalue_Property_Comparison" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Multivalue_Property_Comparison" />
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Path_Constraint">
- <title>Path Constraint</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Exact_Path_Constraint" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Path_Constraint">
+ <title>Path Constraint</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Exact_Path_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Child_Node_Constraint" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Child_Node_Constraint" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_All_Descendant_Nodes" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_All_Descendant_Nodes" />
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Ordering_specifying">
- <title>Ordering specifying</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Sorting_Nodes_by_Property" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Ordering_specifying">
+ <title>Ordering specifying</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Sorting_Nodes_by_Property" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Descendant_Nodes_Property_XPath_only" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Descendant_Nodes_Property_XPath_only" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Score" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Score" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Path_or_Name" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ordering_by_Path_or_Name" />
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section>
- <title><xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Fulltext_Search_And_Affecting_Settings" /></title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Fulltext_Search_by_Property" />
- </para>
+ </section>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Fulltext_Search_by_All_Properties_in_Node" />
- </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Indexing_rules_and_additional_features">
+ <title>Indexing rules and additional features</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_ntfile_node_by_content_of_child_jcrcontent_node" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_ntfile_node_by_content_of_child_jcrcontent_node" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-High_lighting_Result_of_Fulltext_Search" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Ignoring_Accent_Symbols._New_Analyzer_Setting." />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Changing_Priority_of_Node" />
+ </para>
- </listitem>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Removing_Nodes_Property_From_Indexing_Scope" />
+ </para>
- </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Regular_Expression_as_Property_Name_in_Indexing_Rules" />
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-JCR_Query_Usecases-Indexing_rules_and_additional_features">
- <title>Indexing rules and additional features</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_ntfile_node_by_content_of_child_jcrcontent_node" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-High_lighting_Result_of_Fulltext_Search" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Changing_Priority_of_Node" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Similar_Nodes" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Removing_Nodes_Property_From_Indexing_Scope" />
- </para>
+ </listitem>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Regular_Expression_as_Property_Name_in_Indexing_Rules" />
- </para>
+ </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-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" />
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-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" />
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Finding_Similar_Nodes" />
- </para>
+ </section>
+
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-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_eXo_JCR_1.14-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" />
-
- </section>
-
-
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/searching-repository-content.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/searching-repository-content.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/searching-repository-content.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,45 +4,45 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content">
- <title>Searching Repository Content</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Introduction">
- <title>Introduction</title>
- <para>
- You can find the JCR configuration file here: .../portal/WEB-INF/conf/jcr/repository-configuration.xml. Please read also <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Search_Configuration" /> for more information about index configuration.
- </para>
+ <title>Searching Repository Content</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Introduction">
+ <title>Introduction</title>
+ <para>
+ You can find the JCR configuration file here: .../portal/WEB-INF/conf/jcr/repository-configuration.xml. Please read also <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Search_Configuration" /> for more information about index configuration.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Bi_directional_RangeIterator_since_1.9">
- <title>Bi-directional RangeIterator (since 1.9)</title>
- <para>
- QueryResult.getNodes() will return bi-directional NodeIterator implementation.
- </para>
- <note>
- <para>
- Bi-directional NodeIterator is <emphasis role="bold">not supported</emphasis> in two cases:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- SQL query: select * from nt:base
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Bi_directional_RangeIterator">
+ <title>Bi-directional RangeIterator</title>
+ <para>
+ QueryResult.getNodes() will return bi-directional NodeIterator implementation.
+ </para>
+ <note>
+ <para>
+ Bi-directional NodeIterator is <emphasis role="bold">not supported</emphasis> in two cases:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ SQL query: select * from nt:base
+ </para>
- </listitem>
- <listitem>
- <para>
- XPath query: //* .
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ XPath query: //* .
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </note>
- <para>
- TwoWayRangeIterator interface:
- </para>
-
+ </note>
+ <para>
+ TwoWayRangeIterator interface:
+ </para>
+
<programlisting language="Java" role="Java">/**
* Skip a number of elements in the iterator.
*
@@ -51,10 +51,10 @@
* in the iterator.
*/
public void skipBack(long skipNum);</programlisting>
- <para>
- Usage:
- </para>
-
+ <para>
+ Usage:
+ </para>
+
<programlisting language="Java" role="Java">NodeIterator iter = queryResult.getNodes();
while (iter.hasNext()) {
if (skipForward) {
@@ -66,39 +66,39 @@
.......
}</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Fuzzy_Searches_since_1.0">
- <title>Fuzzy Searches (since 1.0)</title>
- <para>
- JCR supports such features as Lucene Fuzzy Searches <ulink url="http://lucene.apache.org/java/2_3_2/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</ulink>.
- </para>
- <para>
- To use it, you have to form a query like the one described below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Fuzzy_Searches">
+ <title>Fuzzy Searches</title>
+ <para>
+ JCR supports such features as Lucene Fuzzy Searches <ulink url="http://lucene.apache.org/java/2_3_2/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</ulink>.
+ </para>
+ <para>
+ To use it, you have to form a query like the one described below:
+ </para>
+
<programlisting language="Java" role="Java">QueryManager qman = session.getWorkspace().getQueryManager();
Query q = qman.createQuery("select * from nt:base where contains(field, 'ccccc~')", Query.SQL);
QueryResult res = q.execute();</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-SynonymSearch_since_1.9">
- <title>SynonymSearch (since 1.9)</title>
- <para>
- Searching with synonyms is integrated in the jcr:contains() function and uses the same syntax as synonym searches in Google. If a search term is prefixed by a tilde symbol ( ~ ), also synonyms of the search term are taken into consideration. For example:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-SynonymSearch">
+ <title>SynonymSearch</title>
+ <para>
+ Searching with synonyms is integrated in the jcr:contains() function and uses the same syntax as synonym searches in Google. If a search term is prefixed by a tilde symbol ( ~ ), also synonyms of the search term are taken into consideration. For example:
+ </para>
+
<programlisting>SQL: select * from nt:resource where contains(., '~parameter')
XPath: //element(*, nt:resource)[jcr:contains(., '~parameter')</programlisting>
- <para>
- This feature is disabled by default and you need to add a configuration parameter to the query-handler element in your jcr configuration file to enable it.
- </para>
-
+ <para>
+ This feature is disabled by default and you need to add a configuration parameter to the query-handler element in your jcr configuration file to enable it.
+ </para>
+
<programlisting language="XML" role="XML"><param name="synonymprovider-config-path" value="..you path to configuration file....."/>
<param name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider"/></programlisting>
-
+
<programlisting language="XML" role="XML">/**
* <code>SynonymProvider</code> defines an interface for a component that
* returns synonyms for a given term.
@@ -129,29 +129,29 @@
public String[] getSynonyms(String term);
}</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-High_lighting_Since_1.9">
- <title>High-lighting (Since 1.9)</title>
- <para>
- An ExcerptProvider retrieves text excerpts for a node in the query result and marks up the words in the text that match the query terms.
- </para>
- <para>
- By default highlighting words matched the query is disabled because this feature requires that additional information is written to the search index. To enable this feature, you need to add a configuration parameter to the query-handler element in your jcr configuration file to enable it.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Highlighting">
+ <title>Highlighting</title>
+ <para>
+ An ExcerptProvider retrieves text excerpts for a node in the query result and marks up the words in the text that match the query terms.
+ </para>
+ <para>
+ By default highlighting words matched the query is disabled because this feature requires that additional information is written to the search index. To enable this feature, you need to add a configuration parameter to the query-handler element in your jcr configuration file to enable it.
+ </para>
+
<programlisting language="XML" role="XML"><param name="support-highlighting" value="true"/></programlisting>
- <para>
- Additionally, there is a parameter that controls the format of the excerpt created. In JCR 1.9, the default is set to org.exoplatform.services.jcr.impl.core.query.lucene.DefaultHTMLExcerpt. The configuration parameter for this setting is:
- </para>
-
+ <para>
+ Additionally, there is a parameter that controls the format of the excerpt created. In JCR 1.9, the default is set to org.exoplatform.services.jcr.impl.core.query.lucene.DefaultHTMLExcerpt. The configuration parameter for this setting is:
+ </para>
+
<programlisting language="XML" role="XML"><param name="excerptprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.DefaultXMLExcerpt"/></programlisting>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-High_lighting_Since_1.9-DefaultXMLExcerpt">
- <title>DefaultXMLExcerpt</title>
- <para>
- This excerpt provider creates an XML fragment of the following form:
- </para>
-
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Highlighting-DefaultXMLExcerpt">
+ <title>DefaultXMLExcerpt</title>
+ <para>
+ This excerpt provider creates an XML fragment of the following form:
+ </para>
+
<programlisting language="XML" role="XML"><excerpt>
<fragment>
<highlight>exoplatform</highlight> implements both the mandatory
@@ -163,14 +163,14 @@
</fragment>
</excerpt></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-High_lighting_Since_1.9-DefaultHTMLExcerpt">
- <title>DefaultHTMLExcerpt</title>
- <para>
- This excerpt provider creates an HTML fragment of the following form:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Highlighting-DefaultHTMLExcerpt">
+ <title>DefaultHTMLExcerpt</title>
+ <para>
+ This excerpt provider creates an HTML fragment of the following form:
+ </para>
+
<programlisting language="HTML" role="HTML"><div>
<span>
<strong>exoplatform</strong> implements both the mandatory XPath
@@ -182,14 +182,14 @@
</span>
</div></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-High_lighting_Since_1.9-How_to_use_it">
- <title>How to use it</title>
- <para>
- If you are using XPath, you must use the rep:excerpt() function in the last location step, just like you would select properties:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Highlighting-How_to_use_it">
+ <title>How to use it</title>
+ <para>
+ If you are using XPath, you must use the rep:excerpt() function in the last location step, just like you would select properties:
+ </para>
+
<programlisting language="Java" role="Java">QueryManager qm = session.getWorkspace().getQueryManager();
Query q = qm.createQuery("//*[jcr:contains(., 'exoplatform')]/(@Title|rep:excerpt(.))", Query.XPATH);
QueryResult result = q.execute();
@@ -198,19 +198,19 @@
Value title = r.getValue("Title");
Value excerpt = r.getValue("rep:excerpt(.)");
}</programlisting>
- <para>
- The above code searches for nodes that contain the word exoplatform and then gets the value of the Title property and an excerpt for each result node.
- </para>
- <para>
- It is also possible to use a relative path in the call Row.getValue() while the query statement still remains the same. Also, you may use a relative path to a string property. The returned value will then be an excerpt based on string value of the property.
- </para>
- <para>
- Both available excerpt provider will create fragments of about 150 characters and up to 3 fragments.
- </para>
- <para>
- In SQL, the function is called excerpt() without the rep prefix, but the column in the RowIterator will nonetheless be labelled rep:excerpt(.)!
- </para>
-
+ <para>
+ The above code searches for nodes that contain the word exoplatform and then gets the value of the Title property and an excerpt for each result node.
+ </para>
+ <para>
+ It is also possible to use a relative path in the call Row.getValue() while the query statement still remains the same. Also, you may use a relative path to a string property. The returned value will then be an excerpt based on string value of the property.
+ </para>
+ <para>
+ Both available excerpt provider will create fragments of about 150 characters and up to 3 fragments.
+ </para>
+ <para>
+ In SQL, the function is called excerpt() without the rep prefix, but the column in the RowIterator will nonetheless be labelled rep:excerpt(.)!
+ </para>
+
<programlisting language="Java" role="Java">QueryManager qm = session.getWorkspace().getQueryManager();
Query q = qm.createQuery("select excerpt(.) from nt:resource where contains(., 'exoplatform')", Query.SQL);
QueryResult result = q.execute();
@@ -219,73 +219,73 @@
Value excerpt = r.getValue("rep:excerpt(.)");
}</programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-SpellChecker">
- <title>SpellChecker</title>
- <para>
- The lucene based query handler implementation supports a pluggable spell checker mechanism. By default, spell checking is not available and you have to configure it first. See parameter spellCheckerClass on page <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Search_Configuration" /> JCR currently provides an implementation class , which uses the <ulink url="http://wiki.apache.org/jakarta-lucene/SpellChecker">lucene-spellchecker</ulink> to contribute . The dictionary is derived from the fulltext indexed content of the workspace and updated periodically. You can configure the refresh interval by picking one of the available inner classes of org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- OneMinuteRefreshInterval
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-SpellChecker">
+ <title>SpellChecker</title>
+ <para>
+ The lucene based query handler implementation supports a pluggable spell checker mechanism. By default, spell checking is not available and you have to configure it first. See parameter spellCheckerClass on page <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Search_Configuration" /> JCR currently provides an implementation class , which uses the <ulink url="http://wiki.apache.org/jakarta-lucene/SpellChecker">lucene-spellchecker</ulink> to contribute . The dictionary is derived from the fulltext indexed content of the workspace and updated periodically. You can configure the refresh interval by picking one of the available inner classes of org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ OneMinuteRefreshInterval
+ </para>
- </listitem>
- <listitem>
- <para>
- FiveMinutesRefreshInterval
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ FiveMinutesRefreshInterval
+ </para>
- </listitem>
- <listitem>
- <para>
- ThirtyMinutesRefreshInterval
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ ThirtyMinutesRefreshInterval
+ </para>
- </listitem>
- <listitem>
- <para>
- OneHourRefreshInterval
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ OneHourRefreshInterval
+ </para>
- </listitem>
- <listitem>
- <para>
- SixHoursRefreshInterval
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ SixHoursRefreshInterval
+ </para>
- </listitem>
- <listitem>
- <para>
- TwelveHoursRefreshInterval
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ TwelveHoursRefreshInterval
+ </para>
- </listitem>
- <listitem>
- <para>
- OneDayRefreshInterval
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ OneDayRefreshInterval
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- For example, if you want a refresh interval of six hours, the class name is: org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker$SixHoursRefreshInterval. If you use org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker, the refresh interval will be one hour.
- </para>
- <para>
- The spell checker dictionary is stored as a lucene index under <emphasis role="bold">"index-dir"/spellchecker</emphasis>. If it does not exist, a background thread will create it on startup. Similarly, the dictionary refresh is also done in a background thread to not block regular queries.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SpellChecker-How_do_I_use_it">
- <title>How do I use it?</title>
- <para>
- You can spell check a fulltext statement either with an XPath or a SQL query:
- </para>
-
+ </itemizedlist>
+ <para>
+ For example, if you want a refresh interval of six hours, the class name is: org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker$SixHoursRefreshInterval. If you use org.exoplatform.services.jcr.impl.core.query.lucene.spell.LuceneSpellChecker, the refresh interval will be one hour.
+ </para>
+ <para>
+ The spell checker dictionary is stored as a lucene index under <emphasis role="bold">"index-dir"/spellchecker</emphasis>. If it does not exist, a background thread will create it on startup. Similarly, the dictionary refresh is also done in a background thread to not block regular queries.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SpellChecker-How_do_I_use_it">
+ <title>How do I use it?</title>
+ <para>
+ You can spell check a fulltext statement either with an XPath or a SQL query:
+ </para>
+
<programlisting language="Java" role="Java">// rep:spellcheck('explatform') will always evaluate to true
Query query = qm.createQuery("/jcr:root[rep:spellcheck('explatform')]/(rep:spellcheck())", Query.XPATH);
RowIterator rows = query.execute().getRows();
@@ -299,10 +299,10 @@
} else {
String suggestion = v.getString();
}</programlisting>
- <para>
- And the same using SQL:
- </para>
-
+ <para>
+ And the same using SQL:
+ </para>
+
<programlisting language="Java" role="Java">// SPELLCHECK('exoplatform') will always evaluate to true
Query query = qm.createQuery("SELECT rep:spellcheck() FROM nt:base WHERE jcr:path = '/' AND SPELLCHECK('explatform')", Query.SQL);
RowIterator rows = query.execute().getRows();
@@ -317,68 +317,68 @@
String suggestion = v.getString();
}</programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Similarity_Since_1.12">
- <title>Similarity (Since 1.12)</title>
- <para>
- Starting with version, 1.12 JCR allows you to search for nodes that are similar to an existing node.
- </para>
- <para>
- Similarity is determined by looking up terms that are common to nodes. There are some conditions that must be met for a term to be considered. This is required to limit the number possibly relevant terms.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Only terms with at least 4 characters are considered.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content-Similarity">
+ <title>Similarity</title>
+ <para>
+ Starting with version, 1.12 JCR allows you to search for nodes that are similar to an existing node.
+ </para>
+ <para>
+ Similarity is determined by looking up terms that are common to nodes. There are some conditions that must be met for a term to be considered. This is required to limit the number possibly relevant terms.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Only terms with at least 4 characters are considered.
+ </para>
- </listitem>
- <listitem>
- <para>
- Only terms that occur at least 2 times in the source node are considered.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Only terms that occur at least 2 times in the source node are considered.
+ </para>
- </listitem>
- <listitem>
- <para>
- Only terms that occur in at least 5 nodes are considered.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Only terms that occur in at least 5 nodes are considered.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- Note: The similarity functionality requires that the support Hightlighting is enabled. Please make sure that you have the following parameter set for the query handler in your workspace.xml.
- </para>
-
+ </itemizedlist>
+ <para>
+ Note: The similarity functionality requires that the support Hightlighting is enabled. Please make sure that you have the following parameter set for the query handler in your workspace.xml.
+ </para>
+
<programlisting language="XML" role="XML"><param name="support-highlighting" value="true"/></programlisting>
- <para>
- The functions are called rep:similar() (in XPath) and similar() (in SQL) and have two arguments:
- </para>
- <para>
- relativePath: a relative path to a descendant node or . for the current node. absoluteStringPath: a string literal that contains the path to the node for which to find similar nodes.
- </para>
- <warning>
- <para>
- Relative path is not supported yet.
- </para>
+ <para>
+ The functions are called rep:similar() (in XPath) and similar() (in SQL) and have two arguments:
+ </para>
+ <para>
+ relativePath: a relative path to a descendant node or . for the current node. absoluteStringPath: a string literal that contains the path to the node for which to find similar nodes.
+ </para>
+ <warning>
+ <para>
+ Relative path is not supported yet.
+ </para>
- </warning>
- <para>
- Examples:
- </para>
-
+ </warning>
+ <para>
+ Examples:
+ </para>
+
<programlisting>//element(*, nt:resource)[rep:similar(., '/parentnode/node.txt/jcr:content')]</programlisting>
- <para>
- Finds nt:resource nodes, which are similar to node by path /parentnode/node.txt/jcr:content.
- </para>
+ <para>
+ Finds nt:resource nodes, which are similar to node by path /parentnode/node.txt/jcr:content.
+ </para>
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/spell-checker.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/spell-checker.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/spell-checker.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,23 +4,23 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase">
- <title>Checking the spelling of Phrase</title>
- <para>
- Check the correct spelling of phrase 'quik OR (-foo bar)' according to data already stored in index.
- </para>
- <note>
- <para>
- See also about SpellChecker configuration - <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content" />
- </para>
+ <title>Checking the spelling of Phrase</title>
+ <para>
+ Check the correct spelling of phrase 'quik OR (-foo bar)' according to data already stored in index.
+ </para>
+ <note>
+ <para>
+ Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content" /> for information about SpellChecker configuration.
+ </para>
- </note>
- <para>
- SpellChecker must be settled in query-handler config.
- </para>
- <para>
- test-jcr-config.xml:
- </para>
-
+ </note>
+ <para>
+ SpellChecker must be settled in query-handler config.
+ </para>
+ <para>
+ test-jcr-config.xml:
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
...
@@ -28,41 +28,41 @@
...
</properties>
</query-handler></programlisting>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-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>
- <itemizedlist>
- <listitem>
- <para>
- root
- </para>
- <itemizedlist>
- <listitem>
- <para>
- node1 property="The quick brown fox jumps over the lazy dog."
- </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-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>
+ <itemizedlist>
+ <listitem>
+ <para>
+ root
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ node1 property="The quick brown fox jumps over the lazy dog."
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase-Query_execution">
- <title>Query execution</title>
- <para>
- Query looks only for root node, because spell checker looks for suggestions by full index. So complicated query is redundant.
- </para>
- <para>
- <emphasis role="bold">SQL</emphasis>
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase-Query_execution">
+ <title>Query execution</title>
+ <para>
+ Query looks only for root node, because spell checker looks for suggestions by full index. So complicated query is redundant.
+ </para>
+ <para>
+ <emphasis role="bold">SQL</emphasis>
+ </para>
+
<programlisting language="Java" role="Java">// make SQL query
QueryManager queryManager = workspace.getQueryManager();
// create query
@@ -70,10 +70,10 @@
Query query = queryManager.createQuery(sqlStatement, Query.SQL);
// execute query and fetch result
QueryResult result = query.execute();</programlisting>
- <para>
- <emphasis role="bold">XPath</emphasis>
- </para>
-
+ <para>
+ <emphasis role="bold">XPath</emphasis>
+ </para>
+
<programlisting language="Java" role="Java">// make XPath query
QueryManager queryManager = workspace.getQueryManager();
// create query
@@ -82,24 +82,24 @@
// execute query and fetch result
QueryResult result = query.execute();</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase-Fetching_result">
- <title>Fetching result</title>
- <para>
- Get suggestion of correct spelling our phrase:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Checking_the_spelling_of_Phrase-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ Get suggestion of correct spelling our 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>
- So, correct spelling for phrase "quik OR (-foo bar)" is "quick OR (-fox bar)".
- </para>
+ <para>
+ So, correct spelling for phrase "quik OR (-foo bar)" is "quick OR (-fox bar)".
+ </para>
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/synonim-provider.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/synonim-provider.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/synonim-provider.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,20 +4,20 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym">
- <title>Searching By Synonym</title>
- <para>
- Find all mix:title nodes where title contains synonyms to 'fast' word.
- </para>
- <note>
- <para>
- See also about synonym provider configuration - <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content" />
- </para>
+ <title>Searching By Synonym</title>
+ <para>
+ Find all mix:title nodes where title contains synonyms to 'fast' word.
+ </para>
+ <note>
+ <para>
+ Refer to <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Searching_Repository_Content" /> for information about synonym provider configuration
+ </para>
- </note>
- <para>
- Synonym provider must be configured in indexing-configuration.xml :
- </para>
-
+ </note>
+ <para>
+ Synonym provider must be configured in indexing-configuration.xml :
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
...
@@ -26,45 +26,45 @@
...
</properties>
</query-handler></programlisting>
- <para>
- File synonym.properties contains next synonyms list:
- </para>
-
+ <para>
+ File synonym.properties contains next synonyms list:
+ </para>
+
<programlisting>ASF=Apache Software Foundation
quick=fast
sluggish=lazy</programlisting>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym-Repository_structure">
- <title>Repository structure:</title>
- <para>
- Repository contains mix:title nodes, where jcr:title has different values.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- root
- </para>
- <itemizedlist>
- <listitem>
- <para>
- document1 (mix:title) jcr:title="The quick brown fox jumps over the lazy dog."
- </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym-Repository_structure">
+ <title>Repository structure:</title>
+ <para>
+ Repository contains mix:title nodes, where jcr:title has different values.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ root
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ document1 (mix:title) jcr:title="The quick brown fox jumps over the lazy dog."
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym-Query_execution">
- <title>Query execution</title>
- <para>
- <emphasis role="bold">SQL</emphasis>
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym-Query_execution">
+ <title>Query execution</title>
+ <para>
+ <emphasis role="bold">SQL</emphasis>
+ </para>
+
<programlisting language="Java" role="Java">// make SQL query
QueryManager queryManager = workspace.getQueryManager();
// create query
@@ -72,10 +72,10 @@
Query query = queryManager.createQuery(sqlStatement, Query.SQL);
// execute query and fetch result
QueryResult result = query.execute();</programlisting>
- <para>
- <emphasis role="bold">XPath</emphasis>
- </para>
-
+ <para>
+ <emphasis role="bold">XPath</emphasis>
+ </para>
+
<programlisting language="Java" role="Java">// make XPath query
QueryManager queryManager = workspace.getQueryManager();
// create query
@@ -84,26 +84,26 @@
// execute query and fetch result
QueryResult result = query.execute();</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym-Fetching_result">
- <title>Fetching result</title>
- <para>
- Let's get nodes:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Searching_By_Synonym-Fetching_result">
+ <title>Fetching result</title>
+ <para>
+ Let's get nodes:
+ </para>
+
<programlisting language="Java" role="Java">NodeIterator it = result.getNodes();
if(it.hasNext())
{
Node findedNode = it.nextNode();
}</programlisting>
- <para>
- NodeIterator will return expected document1. This is a purpose of synonym providers. Find by specified word, but return by all synonyms to.
- </para>
+ <para>
+ NodeIterator will return expected document1. This is a purpose of synonym providers. Find by specified word, but return by all synonyms to.
+ </para>
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/statistics.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/statistics.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/statistics.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -290,8 +290,8 @@
The file content below is the content of <filename>conf/configuration.xml</filename> that you will need to modify to add and/or remove the full qualified name of the interfaces to monitor, into the list of parameter values of the init param called <literal>targetInterfaces</literal>.
</para>
-<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.jcr.statistics.JCRAPIAspectConfig</type>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,20 +4,24 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-eXoJCR">
- <title>eXoJCR</title>
+ <title>Java Content Repository</title>
+
<xi:include href="jcr/intro.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- concepts -->
<!-- <xi:include href="jcr/concepts/why-jcr.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
<xi:include href="jcr/concepts/jcr-exo-implementation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/jcr-advantages.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/jcr-compatibility-levels.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/jcr-usage.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- <xi:include href="jcr/concepts/jcr-extensions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
<xi:include href="jcr/concepts/jcr-applications.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/nodetypes-and-namespaces.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/nodetype-registration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/jcr-registry-service.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/concepts/jcr-namespace-altering.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- common configs -->
<xi:include href="jcr/configuration/exo-jcr-configuration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/configuration/multilanguage-support.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -27,6 +31,7 @@
<xi:include href="jcr/configuration/external-value-storages.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/configuration/workspace-persistence-storage.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/configuration/rest-services-on-groovy.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- cluster configs -->
<xi:include href="jcr/cluster-config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/jbosscache-configuration-templates.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -35,21 +40,26 @@
<xi:include href="jcr/jbossts-transaction-service.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/transaction-manager-lookup.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/repository-creation-service.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <!-- search
- DOC NOTE: Something in this section SEGFAULTS Publican.
- Will look into a fix after 5.2.0 release
- <xi:include href="jcr/searching/jcr-query-usecases.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!-- search -->
+ <xi:include href="jcr/searching/jcr-query-usecases.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/searching/searching-repository-content.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="jcr/searching/fulltext-search-and-settings.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
+ <xi:include href="jcr/searching/fulltext-search-and-settings.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <!-- api extensions -->
+ <xi:include href="jcr/api-extensions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- protocols -->
<xi:include href="jcr/protocols/webdav.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/protocols/ftp.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- backup -->
<xi:include href="jcr/backup/exojcr-backup-service.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/backup/backup-client.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/backup/use-external-backup-tool.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- other -->
<xi:include href="jcr/statistics.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="jcr/repository-check-controller.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/jta.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/jca.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/other/acl.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -57,10 +67,12 @@
<xi:include href="jcr/other/link-producer.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/other/binary-values-processing.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/other/jcr-resources.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
<!-- data container configs -->
<xi:include href="jcr/data-container.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<!-- <xi:include href="jcr/data-container-howto.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
<xi:include href="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="jcr/performance-tuning-guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/cache.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/cache.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/cache.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,13 +4,13 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache">
- <title>eXo Cache</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-Basic_concepts">
- <title>Basic concepts</title>
- <para>
- All applications on the top of eXo JCR that need a cache, can rely on an <envar>org.exoplatform.services.cache.ExoCache</envar> instance that is managed by the <envar>org.exoplatform.services.cache.CacheService</envar>. The main implementation of this service is <envar>org.exoplatform.services.cache.impl.CacheServiceImpl</envar> which depends on the <envar>org.exoplatform.services.cache.ExoCacheConfig</envar> in order to create new <envar>ExoCache</envar> instances. See the below example of <envar>org.exoplatform.services.cache.CacheService</envar> definition:
- </para>
-
+ <title>eXo Cache</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-Basic_concepts">
+ <title>Basic concepts</title>
+ <para>
+ All applications on the top of eXo JCR that need a cache, can rely on an <envar>org.exoplatform.services.cache.ExoCache</envar> instance that is managed by the <envar>org.exoplatform.services.cache.CacheService</envar>. The main implementation of this service is <envar>org.exoplatform.services.cache.impl.CacheServiceImpl</envar> which depends on the <envar>org.exoplatform.services.cache.ExoCacheConfig</envar> in order to create new <envar>ExoCache</envar> instances. See the below example of <envar>org.exoplatform.services.cache.CacheService</envar> definition:
+ </para>
+
<programlisting language="XML" role="XML"> <component>
<key>org.exoplatform.services.cache.CacheService</key>
<jmx-name>cache:type=CacheService</jmx-name>
@@ -29,16 +29,16 @@
</object-param>
</init-params>
</component></programlisting>
- <note>
- <para>
- The <envar>ExoCacheConfig</envar> which name is <envar>default</envar>, will be the default configuration of all the <envar>ExoCache</envar> instances that don't have dedicated configuration.
- </para>
+ <note>
+ <para>
+ The <envar>ExoCacheConfig</envar> which name is <envar>default</envar>, will be the default configuration of all the <envar>ExoCache</envar> instances that don't have dedicated configuration.
+ </para>
- </note>
- <para>
- See the below example about how to define a new <envar>ExoCacheConfig</envar> thanks to a <emphasis>external-component-plugin</emphasis>:
- </para>
-
+ </note>
+ <para>
+ See the below example about how to define a new <envar>ExoCacheConfig</envar> thanks to a <emphasis>external-component-plugin</emphasis>:
+ </para>
+
<programlisting language="XML" role="XML"> <external-component-plugins>
<target-component>org.exoplatform.services.cache.CacheService</target-component>
<component-plugin>
@@ -61,170 +61,170 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Basic_concepts-Descriptions_of_the_fields_of_ExoCacheConfig">
- <title>Descriptions of the fields of <envar>ExoCacheConfig</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- name
- </entry>
- <entry>
- The name of the cache. This field is mandatory since it will be used to retrieve the <envar>ExoCacheConfig</envar> corresponding to a given cache name.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Basic_concepts-Descriptions_of_the_fields_of_ExoCacheConfig">
+ <title>Descriptions of the fields of <envar>ExoCacheConfig</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ name
+ </entry>
+ <entry>
+ The name of the cache. This field is mandatory since it will be used to retrieve the <envar>ExoCacheConfig</envar> corresponding to a given cache name.
+ </entry>
- </row>
- <row>
- <entry>
- label
- </entry>
- <entry>
- The label of the cache. This field is optional. It is mainly used to indicate the purpose of the cache.
- </entry>
+ </row>
+ <row>
+ <entry>
+ label
+ </entry>
+ <entry>
+ The label of the cache. This field is optional. It is mainly used to indicate the purpose of the cache.
+ </entry>
- </row>
- <row>
- <entry>
- maxSize
- </entry>
- <entry>
- The maximum numbers of elements in cache. This field is mandatory.
- </entry>
+ </row>
+ <row>
+ <entry>
+ maxSize
+ </entry>
+ <entry>
+ The maximum numbers of elements in cache. This field is mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- liveTime
- </entry>
- <entry>
- The amount of time (in seconds) that an element is not written or read before it is evicted. This field is mandatory.
- </entry>
+ </row>
+ <row>
+ <entry>
+ liveTime
+ </entry>
+ <entry>
+ The amount of time (in seconds) that an element is not written or read before it is evicted. This field is mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- implementation
- </entry>
- <entry>
- The full qualified name of the cache implementation to use. This field is optional. This field is only used for simple cache implementation. The default and main implementation is <envar>org.exoplatform.services.cache.concurrent.ConcurrentFIFOExoCache</envar>, this implementation only works with local caches with FIFO as eviction policy. For more complex implementation see the next sections.
- </entry>
+ </row>
+ <row>
+ <entry>
+ implementation
+ </entry>
+ <entry>
+ The full qualified name of the cache implementation to use. This field is optional. This field is only used for simple cache implementation. The default and main implementation is <envar>org.exoplatform.services.cache.concurrent.ConcurrentFIFOExoCache</envar>, this implementation only works with local caches with FIFO as eviction policy. For more complex implementation see the next sections.
+ </entry>
- </row>
- <row>
- <entry>
- distributed
- </entry>
- <entry>
- Indicates if the cache is distributed. This field is optional. This field is deprecated.
- </entry>
+ </row>
+ <row>
+ <entry>
+ distributed
+ </entry>
+ <entry>
+ Indicates if the cache is distributed. This field is optional. This field is deprecated.
+ </entry>
- </row>
- <row>
- <entry>
- replicated
- </entry>
- <entry>
- Indicates if the cache is replicated. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ replicated
+ </entry>
+ <entry>
+ Indicates if the cache is replicated. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- logEnabled
- </entry>
- <entry>
- Indicates if the log is enabled. This field is optional. This field is used for backward compatibility.
- </entry>
+ </row>
+ <row>
+ <entry>
+ logEnabled
+ </entry>
+ <entry>
+ Indicates if the log is enabled. This field is optional. This field is used for backward compatibility.
+ </entry>
- </row>
- <row>
- <entry>
- avoidValueReplication
- </entry>
- <entry>
- Indicates whether the values of the cache should be replicated or not in case of a replicated cache. This field is optional. By default it is disabled. Find more details about this field in the next section.
- </entry>
+ </row>
+ <row>
+ <entry>
+ avoidValueReplication
+ </entry>
+ <entry>
+ Indicates whether the values of the cache should be replicated or not in case of a replicated cache. This field is optional. By default it is disabled. Find more details about this field in the next section.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-Advanced_concepts">
- <title>Advanced concepts</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts-Invalidation">
- <title>Invalidation</title>
- <para>
- In case, you have big values or non serializable values and you need a replicated cache to at list invalidate the data when it is needed, you can use the invalidation mode that will work on top of any replicated cache implementations. This is possible thanks to the class <emphasis>InvalidationExoCache</emphasis> which is actually a decorator whose idea is to replicate the hash code of the value in order to know if it is needed or not to invalidate the local data, if the new hash code of the value is the same as the old value, we assume that it is the same value so we don't invalidate the old value. This is required to avoid the following infinite loop that we will face with invalidation mode proposed out of the box by JBoss Cache for example:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Cluster node #1 puts (key1, value1) into the cache
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-Advanced_concepts">
+ <title>Advanced concepts</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts-Invalidation">
+ <title>Invalidation</title>
+ <para>
+ In case, you have big values or non serializable values and you need a replicated cache to at list invalidate the data when it is needed, you can use the invalidation mode that will work on top of any replicated cache implementations. This is possible thanks to the class <emphasis>InvalidationExoCache</emphasis> which is actually a decorator whose idea is to replicate the hash code of the value in order to know if it is needed or not to invalidate the local data, if the new hash code of the value is the same as the old value, we assume that it is the same value so we don't invalidate the old value. This is required to avoid the following infinite loop that we will face with invalidation mode proposed out of the box by JBoss Cache for example:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Cluster node #1 puts (key1, value1) into the cache
+ </para>
- </listitem>
- <listitem>
- <para>
- On cluster node #2 key1 is invalidated by put call in node #1
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ On cluster node #2 key1 is invalidated by put call in node #1
+ </para>
- </listitem>
- <listitem>
- <para>
- Node #2 re-loads key1 and puts (key1, value1) into the cache
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Node #2 re-loads key1 and puts (key1, value1) into the cache
+ </para>
- </listitem>
- <listitem>
- <para>
- On cluster node #1 key1 is invalidated, so we get back to step #1
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ On cluster node #1 key1 is invalidated, so we get back to step #1
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <para>
- In the use case above, thanks to the <emphasis>InvalidationExoCache</emphasis> since the value loaded at step #3 has the same hash code as the value loaded as step #1, the step #4 won't invalidate the data on the cluster node #1.
- </para>
- <para>
- It exists 2 ways to use the invalidation mode which are the following:
- </para>
- <orderedlist>
- <listitem>
- <para>
- By configuration: For this you simply need to set the parameter <emphasis>avoidValueReplication</emphasis> to <emphasis>true</emphasis> in your eXo cache configuration, this will indicate the CacheService to wrap your eXo cache instance into an <emphasis>InvalidationExoCache</emphasis> in case the cache is defined as replicated or distributed.
- </para>
+ </orderedlist>
+ <para>
+ In the use case above, thanks to the <emphasis>InvalidationExoCache</emphasis> since the value loaded at step #3 has the same hash code as the value loaded as step #1, the step #4 won't invalidate the data on the cluster node #1.
+ </para>
+ <para>
+ It exists 2 ways to use the invalidation mode which are the following:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ By configuration: For this you simply need to set the parameter <emphasis>avoidValueReplication</emphasis> to <emphasis>true</emphasis> in your eXo cache configuration, this will indicate the CacheService to wrap your eXo cache instance into an <emphasis>InvalidationExoCache</emphasis> in case the cache is defined as replicated or distributed.
+ </para>
- </listitem>
- <listitem>
- <para>
- Programmatically; You can wrap your eXo cache instance into an <emphasis>org.exoplatform.services.cache.invalidation.InvalidationExoCache</emphasis> yourself using the public constructors that are available. Please note that if you use <emphasis>CacheListeners</emphasis> add them to the InvalidationExoCache instance instead of the nested eXo Cache because the nested eXo Cache will contain only hash codes so the related listeners will get hash codes instead of the real values.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Programmatically; You can wrap your eXo cache instance into an <emphasis>org.exoplatform.services.cache.invalidation.InvalidationExoCache</emphasis> yourself using the public constructors that are available. Please note that if you use <emphasis>CacheListeners</emphasis> add them to the InvalidationExoCache instance instead of the nested eXo Cache because the nested eXo Cache will contain only hash codes so the related listeners will get hash codes instead of the real values.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <note>
- <para>
- The invalidation will be efficient if and only if the hash code method is properly implemented, in other words 2 value objects representing the same data need to return the same hash code otherwise the infinite loop described above will still be effective.
- </para>
+ </orderedlist>
+ <note>
+ <para>
+ The invalidation will be efficient if and only if the hash code method is properly implemented, in other words 2 value objects representing the same data need to return the same hash code otherwise the infinite loop described above will still be effective.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts-FutureExoCache">
- <title>FutureExoCache</title>
- <para>
- If the data that you want to store into your eXo Cache instance takes a lot of time to load and/or you would like to prevent multiple concurrent loading of the same data at the same time, you can use <emphasis>org.exoplatform.services.cache.future.FutureExoCache</emphasis> on top of your eXo Cache instance in order to delegate the loading of your data to a loader that will be called only once whatever the total amount of concurrent threads looking for it. See below an example of how the FutureExoCache can be used:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts-FutureExoCache">
+ <title>FutureExoCache</title>
+ <para>
+ If the data that you want to store into your eXo Cache instance takes a lot of time to load and/or you would like to prevent multiple concurrent loading of the same data at the same time, you can use <emphasis>org.exoplatform.services.cache.future.FutureExoCache</emphasis> on top of your eXo Cache instance in order to delegate the loading of your data to a loader that will be called only once whatever the total amount of concurrent threads looking for it. See below an example of how the FutureExoCache can be used:
+ </para>
+
<programlisting language="Java" role="Java">import org.exoplatform.services.cache.future.Loader;
import org.exoplatform.services.cache.future.FutureExoCache;
...
@@ -242,20 +242,20 @@
// Get your data from your future cache instance
System.out.println(myFutureExoCache.get("my context", "foo"));</programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-eXo_Cache_extension">
- <title>eXo Cache extension</title>
- <para>
- In the previous versions of eXo kernel, it was quite complex to implement your own ExoCache because it was not open enough. Since kernel 2.0.8, it is possible to easily integrate your favorite cache provider in eXo Products.
- </para>
- <para>
- You just need to implement your own <envar>ExoCacheFactory</envar> and register it in an eXo container, as described below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-eXo_Cache_extension">
+ <title>eXo Cache extension</title>
+ <para>
+ In the previous versions of eXo kernel, it was quite complex to implement your own ExoCache because it was not open enough. Since kernel 2.0.8, it is possible to easily integrate your favorite cache provider in eXo Products.
+ </para>
+ <para>
+ You just need to implement your own <envar>ExoCacheFactory</envar> and register it in an eXo container, as described below:
+ </para>
+
<programlisting language="Java" role="Java">package org.exoplatform.services.cache;
...
public interface ExoCacheFactory {
@@ -268,10 +268,10 @@
*/
public ExoCache createCache(ExoCacheConfig config) throws ExoCacheInitException;
}</programlisting>
- <para>
- As you can see, there is only one method to implement which can be seen as a converter of an <envar>ExoCacheConfig</envar> to get an instance of <envar>ExoCache</envar>. Once, you created your own implementation, you can simply register your factory by adding a file <emphasis>conf/portal/configuration.xml</emphasis> with a content of the following type:
- </para>
-
+ <para>
+ As you can see, there is only one method to implement which can be seen as a converter of an <envar>ExoCacheConfig</envar> to get an instance of <envar>ExoCache</envar>. Once, you created your own implementation, you can simply register your factory by adding a file <emphasis>conf/portal/configuration.xml</emphasis> with a content of the following type:
+ </para>
+
<programlisting language="XML" role="XML"><configuration>
<component>
<key>org.exoplatform.services.cache.ExoCacheFactory</key>
@@ -280,26 +280,26 @@
</component>
</configuration>
</programlisting>
- <note>
- <para>
- Since kernel 2.3.0-CR1, if the configuration is not a sub class of <envar>ExoCacheConfig</envar> and the implementation given in the configuration is the full qualified name of an existing implementation of eXo Cache, we will assume that the user expects to have an instance of this eXo Cache type so we won't use the configured cache factory.
- </para>
+ <note>
+ <para>
+ Since kernel 2.3.0-CR1, if the configuration is not a sub class of <envar>ExoCacheConfig</envar> and the implementation given in the configuration is the full qualified name of an existing implementation of eXo Cache, we will assume that the user expects to have an instance of this eXo Cache type so we won't use the configured cache factory.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-eXo_Cache_based_on_JBoss_Cache">
- <title>eXo Cache based on JBoss Cache</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Configuring_the_ExoCacheFactory">
- <title>Configuring the ExoCacheFactory</title>
- <para>
- When you add, the eXo library in your classpath, the eXo service container will use the default configuration provided in the library itself but of course you can still redefined the configuration if you wish as you can do with any components.
- </para>
- <para>
- The default configuration of the factory is:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache-eXo_Cache_based_on_JBoss_Cache">
+ <title>eXo Cache based on JBoss Cache</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Configuring_the_ExoCacheFactory">
+ <title>Configuring the ExoCacheFactory</title>
+ <para>
+ When you add, the eXo library in your classpath, the eXo service container will use the default configuration provided in the library itself but of course you can still redefined the configuration if you wish as you can do with any components.
+ </para>
+ <para>
+ The default configuration of the factory is:
+ </para>
+
<programlisting language="XML" role="XML"><configuration>
<component>
<key>org.exoplatform.services.cache.ExoCacheFactory</key>
@@ -316,57 +316,57 @@
</init-params>
</component>
</configuration></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Configuring_the_ExoCacheFactory-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- cache.config.template
- </entry>
- <entry>
- This parameter allows you to define the location of the default configuration template of JBoss Cache. In the default configuration, we ask the eXo kernel to get the file shipped into the jar at <emphasis>/conf/portal/cache-configuration-template.xml</emphasis>. The default configuration template aims to be the skeleton from which we will create any type of jboss cache instance, thus it must be very generic.
- <note>
- <para>
- The default configuration template provided with the jar aims to work with any application servers, but if you intend to use JBoss AS, you should redefine it in your custom configuration to fit better with your AS.
- </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Configuring_the_ExoCacheFactory">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ cache.config.template
+ </entry>
+ <entry>
+ This parameter allows you to define the location of the default configuration template of JBoss Cache. In the default configuration, we ask the eXo kernel to get the file shipped into the jar at <emphasis>/conf/portal/cache-configuration-template.xml</emphasis>. The default configuration template aims to be the skeleton from which we will create any type of jboss cache instance, thus it must be very generic.
+ <note>
+ <para>
+ The default configuration template provided with the jar aims to work with any application servers, but if you intend to use JBoss AS, you should redefine it in your custom configuration to fit better with your AS.
+ </para>
- </note>
+ </note>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- allow.shareable.cache
- </entry>
- <entry>
- This parameter allows you to Indicate whether the JBoss Cache instances used can by default be shared between several eXo caches instances. indeed to consume less resources, you can allow to use the same instance of JBoss Cache for several eXo Cache instances, each eXo Cache Instances will have his own cache region with its own eviction configuration. The default value of this parameter is <emphasis>false</emphasis>.
- <note>
- <para>
- This value is only the default value that cans be redefined at <envar>ExoCacheConfig</envar> level thanks to the field <emphasis>allowShareableCache</emphasis> for more details see the next sections.
- </para>
+ </row>
+ <row>
+ <entry>
+ allow.shareable.cache
+ </entry>
+ <entry>
+ This parameter allows you to Indicate whether the JBoss Cache instances used can by default be shared between several eXo caches instances. indeed to consume less resources, you can allow to use the same instance of JBoss Cache for several eXo Cache instances, each eXo Cache Instances will have his own cache region with its own eviction configuration. The default value of this parameter is <emphasis>false</emphasis>.
+ <note>
+ <para>
+ This value is only the default value that cans be redefined at <envar>ExoCacheConfig</envar> level thanks to the field <emphasis>allowShareableCache</emphasis> for more details see the next sections.
+ </para>
- </note>
+ </note>
- </entry>
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Adding_specific_configuration_for_a_cache">
- <title>Adding specific configuration for a cache</title>
- <para>
- If for a given reason, you need to use a specific configuration for a cache, you can register one thanks to an "<emphasis>external plugin</emphasis>", see an example below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Adding_specific_configuration_for_a_cache">
+ <title>Adding specific configuration for a cache</title>
+ <para>
+ If for a given reason, you need to use a specific configuration for a cache, you can register one thanks to an "<emphasis>external plugin</emphasis>", see an example below:
+ </para>
+
<programlisting language="XML" role="XML"><configuration>
...
<external-component-plugins>
@@ -386,26 +386,26 @@
</external-component-plugins>
...
</configuration></programlisting>
- <para>
- In the example above, I call the method <emphasis>addConfig(ExoCacheFactoryConfigPlugin plugin)</emphasis> on the current implementation of <envar>ExoCacheFactory</envar> which is actually the jboss cache implementation.
- </para>
- <para>
- In the <emphasis>init-params</emphasis> block, you can define a set of <emphasis>value-param</emphasis> blocks and for each <emphasis>value-param</emphasis>, we expect the name of cache that needs a specific configuration as name and the location of your custom configuration as <emphasis>value</emphasis>.
- </para>
- <para>
- In this example, we indicates to the factory that we would like that the cache <emphasis>myCustomCache</emphasis> use the configuration available at <emphasis>jar:/conf/portal/custom-cache-configuration.xml</emphasis>.
- </para>
+ <para>
+ In the example above, I call the method <emphasis>addConfig(ExoCacheFactoryConfigPlugin plugin)</emphasis> on the current implementation of <envar>ExoCacheFactory</envar> which is actually the jboss cache implementation.
+ </para>
+ <para>
+ In the <emphasis>init-params</emphasis> block, you can define a set of <emphasis>value-param</emphasis> blocks and for each <emphasis>value-param</emphasis>, we expect the name of cache that needs a specific configuration as name and the location of your custom configuration as <emphasis>value</emphasis>.
+ </para>
+ <para>
+ In this example, we indicates to the factory that we would like that the cache <emphasis>myCustomCache</emphasis> use the configuration available at <emphasis>jar:/conf/portal/custom-cache-configuration.xml</emphasis>.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Adding_a_cache_creator">
- <title>Adding a cache creator</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_a_cache_creator-Understanding_a_cache_creator">
- <title>Understanding a cache creator</title>
- <para>
- The factory for jboss cache, delegates the cache creation to <envar>ExoCacheCreator</envar> that is defined as below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Adding_a_cache_creator">
+ <title>Adding a cache creator</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_a_cache_creator-Understanding_a_cache_creator">
+ <title>Understanding a cache creator</title>
+ <para>
+ The factory for jboss cache, delegates the cache creation to <envar>ExoCacheCreator</envar> that is defined as below:
+ </para>
+
<programlisting language="Java" role="Java">package org.exoplatform.services.cache.impl.jboss;
...
public interface ExoCacheCreator {
@@ -430,42 +430,42 @@
*/
public String getExpectedImplementation();
}</programlisting>
- <para>
- The <envar>ExoCacheCreator</envar> allows you to define any kind of jboss cache instance that you would like to have. It has been designed to give you the ability to have your own type of configuration and to always be backward compatible.
- </para>
- <para>
- In an <envar>ExoCacheCreator</envar>, you need to implement 3 methods which are:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>create</emphasis>: this method is used to create a new <envar>ExoCache</envar> from the <envar>ExoCacheConfig</envar> and a jboss cache instance.
- </para>
+ <para>
+ The <envar>ExoCacheCreator</envar> allows you to define any kind of jboss cache instance that you would like to have. It has been designed to give you the ability to have your own type of configuration and to always be backward compatible.
+ </para>
+ <para>
+ In an <envar>ExoCacheCreator</envar>, you need to implement 3 methods which are:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>create</emphasis>: this method is used to create a new <envar>ExoCache</envar> from the <envar>ExoCacheConfig</envar> and a jboss cache instance.
+ </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>getExpectedConfigType</emphasis>: this method is used to indicate the factory the subtype of <envar>ExoCacheConfig</envar> supported by the creator.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>getExpectedConfigType</emphasis>: this method is used to indicate the factory the subtype of <envar>ExoCacheConfig</envar> supported by the creator.
+ </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>getExpectedImplementation</emphasis>: this method is used to indicate the factory and the value of field implementation of <envar>ExoCacheConfig</envar> that is supported by the creator. This is used for backward compatibility, in other words, you can still configure your cache with a super class <envar>ExoCacheConfig</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>getExpectedImplementation</emphasis>: this method is used to indicate the factory and the value of field implementation of <envar>ExoCacheConfig</envar> that is supported by the creator. This is used for backward compatibility, in other words, you can still configure your cache with a super class <envar>ExoCacheConfig</envar>.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_a_cache_creator-Registering_a_cache_creator">
- <title>Registering a cache creator</title>
- <para>
- You can register any cache creator that you want thanks to an <emphasis>"external plugin"</emphasis>, see an example below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_a_cache_creator-Registering_a_cache_creator">
+ <title>Registering a cache creator</title>
+ <para>
+ You can register any cache creator that you want thanks to an <emphasis>"external plugin"</emphasis>, see an example below:
+ </para>
+
<programlisting language="XML" role="XML"> <external-component-plugins>
<target-component>org.exoplatform.services.cache.ExoCacheFactory</target-component>
<component-plugin>
@@ -485,26 +485,26 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <para>
- In the example above, I call the method <emphasis>addCreator(ExoCacheCreatorPlugin plugin)</emphasis> on the current implementation of <envar>ExoCacheFactory</envar> which is actually the jboss cache implementation.
- </para>
- <para>
- In the <emphasis>init-params</emphasis> block, you can define a set of <emphasis>object-param</emphasis> blocks and for each <emphasis>object-param</emphasis>, we expect any object definition of type <envar>ExoCacheCreator</envar>.
- </para>
- <para>
- In this example, we register the action creator related to the eviction policy <emphasis>LRU</emphasis>.
- </para>
+ <para>
+ In the example above, I call the method <emphasis>addCreator(ExoCacheCreatorPlugin plugin)</emphasis> on the current implementation of <envar>ExoCacheFactory</envar> which is actually the jboss cache implementation.
+ </para>
+ <para>
+ In the <emphasis>init-params</emphasis> block, you can define a set of <emphasis>object-param</emphasis> blocks and for each <emphasis>object-param</emphasis>, we expect any object definition of type <envar>ExoCacheCreator</envar>.
+ </para>
+ <para>
+ In this example, we register the action creator related to the eviction policy <emphasis>LRU</emphasis>.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_a_cache_creator-The_cache_creators_available">
- <title>The cache creators available</title>
- <para>
- By default, no cache creator are defined, so you need to define them yourself by adding them in your configuration files.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-LRU_Cache_Creator_Least_Recently_Used">
- <title>LRU Cache Creator - Least Recently Used</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_a_cache_creator-The_cache_creators_available">
+ <title>The cache creators available</title>
+ <para>
+ By default, no cache creator are defined, so you need to define them yourself by adding them in your configuration files.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-LRU_Cache_Creator_Least_Recently_Used">
+ <title>LRU Cache Creator - Least Recently Used</title>
+
<programlisting language="XML" role="XML">..
<object-param>
<name>LRU</name>
@@ -515,40 +515,40 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-LRU_Cache_Creator_Least_Recently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- defaultTimeToLive
- </entry>
- <entry>
- This is the default value of the field <emphasis>timeToLive</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-LRU_Cache_Creator_Least_Recently_Used-Fields_description">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ defaultTimeToLive
+ </entry>
+ <entry>
+ This is the default value of the field <emphasis>timeToLive</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
+ </entry>
- </row>
- <row>
- <entry>
- defaultMaxAge
- </entry>
- <entry>
- This is the default value of the field <emphasis>maxAge</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
- </entry>
+ </row>
+ <row>
+ <entry>
+ defaultMaxAge
+ </entry>
+ <entry>
+ This is the default value of the field <emphasis>maxAge</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-FIFO_Cache_Creator_First_In_First_Out">
- <title>FIFO Cache Creator - First In, First Out</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-FIFO_Cache_Creator_First_In_First_Out">
+ <title>FIFO Cache Creator - First In, First Out</title>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>FIFO</name>
@@ -557,11 +557,11 @@
</object-param>
...</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-MRU_Cache_Creator_Most_Recently_Used">
- <title>MRU Cache Creator - Most Recently Used</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-MRU_Cache_Creator_Most_Recently_Used">
+ <title>MRU Cache Creator - Most Recently Used</title>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>MRU</name>
@@ -570,11 +570,11 @@
</object-param>
...</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-LFU_Cache_Creator_Least_Frequently_Used">
- <title>LFU Cache Creator - Least Frequently Used</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-LFU_Cache_Creator_Least_Frequently_Used">
+ <title>LFU Cache Creator - Least Frequently Used</title>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>LFU</name>
@@ -584,31 +584,31 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-LFU_Cache_Creator_Least_Frequently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- defaultMinNodes
- </entry>
- <entry>
- This is the default value of the field <emphasis>minNodes</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-LFU_Cache_Creator_Least_Frequently_Used-Fields_description">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ defaultMinNodes
+ </entry>
+ <entry>
+ This is the default value of the field <emphasis>minNodes</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-EA_Cache_Creator_Expiration_Algorithm">
- <title>EA Cache Creator - Expiration Algorithm</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-EA_Cache_Creator_Expiration_Algorithm">
+ <title>EA Cache Creator - Expiration Algorithm</title>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>EA</name>
@@ -618,59 +618,59 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-EA_Cache_Creator_Expiration_Algorithm-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- defaultExpirationTimeout
- </entry>
- <entry>
- This is the default value of the field <emphasis>minNodes</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-The_cache_creators_available-EA_Cache_Creator_Expiration_Algorithm-Fields_description">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ defaultExpirationTimeout
+ </entry>
+ <entry>
+ This is the default value of the field <emphasis>minNodes</emphasis> described in the section dedicated to this cache type. This value is only used when we define a cache of this type with the old configuration.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Defining_a_cache">
- <title>Defining a cache</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-How_to_define_a_cache">
- <title>How to define a cache?</title>
- <para>
- You have 2 ways to define a cache which are:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- At <envar>CacheService</envar> initialization
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-eXo_Cache_based_on_JBoss_Cache-Defining_a_cache">
+ <title>Defining a cache</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-How_to_define_a_cache">
+ <title>How to define a cache?</title>
+ <para>
+ You have 2 ways to define a cache which are:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ At <envar>CacheService</envar> initialization
+ </para>
- </listitem>
- <listitem>
- <para>
- With an <emphasis>"external plugin"</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ With an <emphasis>"external plugin"</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-How_to_define_a_cache-At_CacheService_initialization">
- <title>At <envar>CacheService</envar> initialization</title>
-
+ </itemizedlist>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-How_to_define_a_cache-At_CacheService_initialization">
+ <title>At <envar>CacheService</envar> initialization</title>
+
<programlisting language="XML" role="XML">...
<component>
<key>org.exoplatform.services.cache.CacheService</key>
@@ -692,15 +692,15 @@
</init-params>
</component>
...</programlisting>
- <para>
- In this example, we define a new cache called <emphasis>fifocache</emphasis>.
- </para>
+ <para>
+ In this example, we define a new cache called <emphasis>fifocache</emphasis>.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-How_to_define_a_cache-With_an_external_plugin">
- <title>With an <emphasis>"external plugin"</emphasis></title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-How_to_define_a_cache-With_an_external_plugin">
+ <title>With an <emphasis>"external plugin"</emphasis></title>
+
<programlisting language="XML" role="XML">...
<external-component-plugins>
<target-component>org.exoplatform.services.cache.CacheService</target-component>
@@ -727,46 +727,46 @@
</component-plugin>
</external-component-plugins>
...</programlisting>
- <para>
- In this example, we define a new cache called <emphasis>fifocache</emphasis> which is in fact the same cache as in previous example but defined in a different manner.
- </para>
+ <para>
+ In this example, we define a new cache called <emphasis>fifocache</emphasis> which is in fact the same cache as in previous example but defined in a different manner.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-How_to_define_a_distributed_or_a_local_cache">
- <title>How to define a distributed or a local cache?</title>
- <para>
- Actually, if you use a custom configuration for your cache as described in a previous section, we will use the cache mode define in your configuration file.
- </para>
- <para>
- In case, you decide to use the default configuration template, we use the field <emphasis>distributed</emphasis> of your <envar>ExoCacheConfig</envar> to decide. In other words, if the value of this field is false (the default value), the cache will be a local cache, otherwise it will be the cache mode defined in your default configuration template that should be distributed.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-How_to_define_a_distributed_or_a_local_cache">
+ <title>How to define a distributed or a local cache?</title>
+ <para>
+ Actually, if you use a custom configuration for your cache as described in a previous section, we will use the cache mode define in your configuration file.
+ </para>
+ <para>
+ In case, you decide to use the default configuration template, we use the field <emphasis>distributed</emphasis> of your <envar>ExoCacheConfig</envar> to decide. In other words, if the value of this field is false (the default value), the cache will be a local cache, otherwise it will be the cache mode defined in your default configuration template that should be distributed.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-How_to_share_a_JBoss_Cache_instance_between_multiple_eXo_Cache_instances">
- <title>How to share a JBoss Cache instance between multiple eXo Cache instances</title>
- <para>
- In order to avoid creating several JBoss Cache instances that consume resources, it is possible to share the same JBoss Cache instance between multiple eXo Cache instances that rely on the same JBoss Cache config. Each eXo Cache instances will then have their own cache region with their own eviction configuration. To allow sharing JBoss Cache instances, you can set the global value at <emphasis>ExoCacheFactory</emphasis> level and if needed set the local value at <emphasis>ExoCacheConfig</emphasis> level knowing that local value will redefine the global value. Each new <emphasis>ExoCacheConfig</emphasis> described below are a sub class of <emphasis>AbstractExoCacheConfig</emphasis> that gives access to the parameter <emphasis>allowShareableCache</emphasis>, if this parameter is set, it will be the value used otherwise it will use the global value. For all the old <emphasis>ExoCacheConfig</emphasis>, only the global value will be used.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-How_to_share_a_JBoss_Cache_instance_between_multiple_eXo_Cache_instances">
+ <title>How to share a JBoss Cache instance between multiple eXo Cache instances</title>
+ <para>
+ In order to avoid creating several JBoss Cache instances that consume resources, it is possible to share the same JBoss Cache instance between multiple eXo Cache instances that rely on the same JBoss Cache config. Each eXo Cache instances will then have their own cache region with their own eviction configuration. To allow sharing JBoss Cache instances, you can set the global value at <emphasis>ExoCacheFactory</emphasis> level and if needed set the local value at <emphasis>ExoCacheConfig</emphasis> level knowing that local value will redefine the global value. Each new <emphasis>ExoCacheConfig</emphasis> described below are a sub class of <emphasis>AbstractExoCacheConfig</emphasis> that gives access to the parameter <emphasis>allowShareableCache</emphasis>, if this parameter is set, it will be the value used otherwise it will use the global value. For all the old <emphasis>ExoCacheConfig</emphasis>, only the global value will be used.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-LRU_Cache_Least_Recently_Used">
- <title>LRU Cache - Least Recently Used</title>
- <itemizedlist>
- <listitem>
- <para>
- New configuration
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-LRU_Cache_Least_Recently_Used">
+ <title>LRU Cache - Least Recently Used</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ New configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>lru</name>
@@ -780,62 +780,62 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-LRU_Cache_Least_Recently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxNodes
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-LRU_Cache_Least_Recently_Used-Fields_description-1">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxNodes
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- minTimeToLive
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ minTimeToLive
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
- <row>
- <entry>
- maxAge
- </entry>
- <entry>
- Lifespan of a node (in milliseconds) regardless of idle time before the node is swept away. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ </row>
+ <row>
+ <entry>
+ maxAge
+ </entry>
+ <entry>
+ Lifespan of a node (in milliseconds) regardless of idle time before the node is swept away. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- timeToLive
- </entry>
- <entry>
- The amount of time that a node is not written to or read (in milliseconds) before the node is swept away. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ </row>
+ <row>
+ <entry>
+ timeToLive
+ </entry>
+ <entry>
+ The amount of time that a node is not written to or read (in milliseconds) before the node is swept away. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <itemizedlist>
- <listitem>
- <para>
- Old configuration
- </para>
+ </table>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Old configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>lru-with-old-config</name>
@@ -848,55 +848,55 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-LRU_Cache_Least_Recently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxSize
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-LRU_Cache_Least_Recently_Used-Fields_description-2">
+ <title>Old fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxSize
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- liveTime
- </entry>
- <entry>
- The minimum amount of time (in seconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ liveTime
+ </entry>
+ <entry>
+ The minimum amount of time (in seconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- For the fields <emphasis>maxAge</emphasis> and <emphasis>timeToLive</emphasis> needed by JBoss cache, we will use the default values provided by the creator.
- </para>
+ </table>
+ <note>
+ <para>
+ For the fields <emphasis>maxAge</emphasis> and <emphasis>timeToLive</emphasis> needed by JBoss cache, we will use the default values provided by the creator.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-FIFO_Cache_First_In_First_Out">
- <title>FIFO Cache - First In, First Out</title>
- <itemizedlist>
- <listitem>
- <para>
- New configuration
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-FIFO_Cache_First_In_First_Out">
+ <title>FIFO Cache - First In, First Out</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ New configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>fifo</name>
@@ -908,44 +908,44 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-FIFO_Cache_First_In_First_Out-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxNodes
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-FIFO_Cache_First_In_First_Out-Fields_description-1">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxNodes
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- minTimeToLive
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ minTimeToLive
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <itemizedlist>
- <listitem>
- <para>
- Old configuration
- </para>
+ </table>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Old configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>fifo-with-old-config</name>
@@ -958,49 +958,49 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-FIFO_Cache_First_In_First_Out-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxSize
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-FIFO_Cache_First_In_First_Out-Fields_description-2">
+ <title>Old fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxSize
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- liveTime
- </entry>
- <entry>
- The minimum amount of time (in seconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ liveTime
+ </entry>
+ <entry>
+ The minimum amount of time (in seconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-MRU_Cache_Most_Recently_Used">
- <title>MRU Cache - Most Recently Used</title>
- <itemizedlist>
- <listitem>
- <para>
- New configuration
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-MRU_Cache_Most_Recently_Used">
+ <title>MRU Cache - Most Recently Used</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ New configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>mru</name>
@@ -1012,44 +1012,44 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-MRU_Cache_Most_Recently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxNodes
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-MRU_Cache_Most_Recently_Used-Fields_description-1">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxNodes
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- minTimeToLive
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ minTimeToLive
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <itemizedlist>
- <listitem>
- <para>
- Old configuration
- </para>
+ </table>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Old configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>mru-with-old-config</name>
@@ -1062,49 +1062,49 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-MRU_Cache_Most_Recently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxSize
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-MRU_Cache_Most_Recently_Used-Fields_description-2">
+ <title>Old fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxSize
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- liveTime
- </entry>
- <entry>
- The minimum amount of time (in seconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ liveTime
+ </entry>
+ <entry>
+ The minimum amount of time (in seconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-LFU_Cache_Least_Frequently_Used">
- <title>LFU Cache - Least Frequently Used</title>
- <itemizedlist>
- <listitem>
- <para>
- New configuration
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-LFU_Cache_Least_Frequently_Used">
+ <title>LFU Cache - Least Frequently Used</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ New configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>lfu</name>
@@ -1117,53 +1117,53 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-LFU_Cache_Least_Frequently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxNodes
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-LFU_Cache_Least_Frequently_Used-Fields_description-1">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxNodes
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- minNodes
- </entry>
- <entry>
- This is the minimum number of nodes allowed in this region. This value determines what the eviction queue should prune down to per pass. e.g. If minNodes is 10 and the cache grows to 100 nodes, the cache is pruned down to the 10 most frequently used nodes when the eviction timer makes a pass through the eviction algorithm.
- </entry>
+ </row>
+ <row>
+ <entry>
+ minNodes
+ </entry>
+ <entry>
+ This is the minimum number of nodes allowed in this region. This value determines what the eviction queue should prune down to per pass. e.g. If minNodes is 10 and the cache grows to 100 nodes, the cache is pruned down to the 10 most frequently used nodes when the eviction timer makes a pass through the eviction algorithm.
+ </entry>
- </row>
- <row>
- <entry>
- minTimeToLive
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ minTimeToLive
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <itemizedlist>
- <listitem>
- <para>
- Old configuration
- </para>
+ </table>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Old configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>lfu-with-old-config</name>
@@ -1176,58 +1176,58 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-LFU_Cache_Least_Frequently_Used-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxSize
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-LFU_Cache_Least_Frequently_Used-Fields_description-2">
+ <title>Old fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxSize
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- liveTime
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ liveTime
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- <note>
- <para>
- For the fields <emphasis>minNodes</emphasis> and <emphasis>timeToLive</emphasis> needed by JBoss cache, we will use the default values provided by the creator.
- </para>
+ </table>
+ <para>
+ <note>
+ <para>
+ For the fields <emphasis>minNodes</emphasis> and <emphasis>timeToLive</emphasis> needed by JBoss cache, we will use the default values provided by the creator.
+ </para>
- </note>
+ </note>
- </para>
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-EA_Cache_Expiration_Algorithm">
- <title>EA Cache - Expiration Algorithm</title>
- <itemizedlist>
- <listitem>
- <para>
- New configuration
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Defining_a_cache-EA_Cache_Expiration_Algorithm">
+ <title>EA Cache - Expiration Algorithm</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ New configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>ea</name>
@@ -1240,53 +1240,53 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-EA_Cache_Expiration_Algorithm-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxNodes
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-EA_Cache_Expiration_Algorithm-Fields_description-1">
+ <title>Fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxNodes
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- minTimeToLive
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ minTimeToLive
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
- <row>
- <entry>
- expirationTimeout
- </entry>
- <entry>
- This is the timeout after which the cache entry must be evicted.
- </entry>
+ </row>
+ <row>
+ <entry>
+ expirationTimeout
+ </entry>
+ <entry>
+ This is the timeout after which the cache entry must be evicted.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <itemizedlist>
- <listitem>
- <para>
- Old configuration
- </para>
+ </table>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Old configuration
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML" role="XML">...
<object-param>
<name>ea-with-old-config</name>
@@ -1299,51 +1299,51 @@
</object>
</object-param>
...</programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-EA_Cache_Expiration_Algorithm-Fields_description">
- <title>Fields description</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- maxSize
- </entry>
- <entry>
- This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-EA_Cache_Expiration_Algorithm-Fields_description-2">
+ <title>Old fields description</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ maxSize
+ </entry>
+ <entry>
+ This is the maximum number of nodes allowed in this region. 0 denotes immediate expiry, -1 denotes no limit.
+ </entry>
- </row>
- <row>
- <entry>
- liveTime
- </entry>
- <entry>
- The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
- </entry>
+ </row>
+ <row>
+ <entry>
+ liveTime
+ </entry>
+ <entry>
+ The minimum amount of time (in milliseconds) that a node must be allowed to live after being accessed before it is allowed to be considered for eviction. 0 denotes that this feature is disabled, which is the default value.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- <note>
- <para>
- For the fields <emphasis>expirationTimeout</emphasis> needed by JBoss cache, we will use the default values provided by the creator.
- </para>
+ </table>
+ <para>
+ <note>
+ <para>
+ For the fields <emphasis>expirationTimeout</emphasis> needed by JBoss cache, we will use the default values provided by the creator.
+ </para>
- </note>
+ </note>
- </para>
+ </para>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
+ </section>
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/container-configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/container-configuration.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/container-configuration.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,24 +4,24 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration">
- <title>Container Configuration</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Intro">
- <title>Intro</title>
- <para>
- eXo Portal uses PicoContainer, which implements the Inversion of Control (IoC) design pattern. All eXo containers inherit from a PicoContainer. There are mainly two eXo containers used, each of them can provide one or several services. Each container service is delivered in a JAR file. This JAR file may contain a default configuration. The use of default configurations is recommended and most services provide it.
- </para>
- <para>
- When a Pico Container searches for services and its configurations, each configurable service may be reconfigured to override default values or set additional parameters. If the service is configured in two or more places the configuration override mechanism will be used.
- </para>
+ <title>Container Configuration</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Intro">
+ <title>Intro</title>
+ <para>
+ eXo Portal uses PicoContainer, which implements the Inversion of Control (IoC) design pattern. All eXo containers inherit from a PicoContainer. There are mainly two eXo containers used, each of them can provide one or several services. Each container service is delivered in a JAR file. This JAR file may contain a default configuration. The use of default configurations is recommended and most services provide it.
+ </para>
+ <para>
+ When a Pico Container searches for services and its configurations, each configurable service may be reconfigured to override default values or set additional parameters. If the service is configured in two or more places the configuration override mechanism will be used.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Kernel_configuration_namespace">
- <title>Kernel configuration namespace</title>
- <para>
- To be effective, the namespace URI <uri>http://www.exoplaform.org/xml/ns/kernel_1_2.xsd</uri> must be target namespace of the XML configuration file.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Kernel_configuration_namespace">
+ <title>Kernel configuration namespace</title>
+ <para>
+ To be effective, the namespace URI <uri>http://www.exoplaform.org/xml/ns/kernel_1_2.xsd</uri> must be target namespace of the XML configuration file.
+ </para>
+
<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
@@ -29,11 +29,11 @@
...
</configuration></programlisting>
- <note>
- <para>
- Any values in the configuration files can be created thanks to variables since the eXo kernel resolves them, for example the following configuration will be well interpreted:
- </para>
-
+ <note>
+ <para>
+ Any values in the configuration files can be created thanks to variables since the eXo kernel resolves them, for example the following configuration will be well interpreted:
+ </para>
+
<programlisting language="XML" role="XML"><configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
@@ -44,234 +44,234 @@
<import>simple.xml</import>
</configuration></programlisting>
- <para>
- The variables that are supported, are System properties and variables that are specific to your portal container, see next sections for more details.
- </para>
+ <para>
+ The variables that are supported, are System properties and variables that are specific to your portal container, see next sections for more details.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Understanding_how_configuration_files_are_loaded">
- <title>Understanding how configuration files are loaded</title>
- <para>
- eXo Portal uses PicoContainer, which implements the Inversion of Control (IoC) design pattern. All eXo containers inherit from a PicoContainer. There are mainly two eXo containers used, each of them can provide one or several services. Each container service is delivered in a JAR file. This JAR file may contain a default configuration. The use of default configurations is recommended and most of services provide it.
- </para>
- <para>
- When a Pico Container searches for services and its configurations, each configurable service may be reconfigured to override default values or set additional parameters. If the service is configured in two or more places, the configuration override mechanism will be used.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Understanding_how_configuration_files_are_loaded-Configuration_Retrieval">
- <title>Configuration Retrieval</title>
- <para>
- The container performs the following steps to make eXo Container configuration retrieval, depending on the container type.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Configuration_retrieval_order_for_the_PortalContainer">
- <title>Configuration retrieval order for the <envar>PortalContainer</envar></title>
- <para>
- The container is initialized by looking into different locations. This container is used by portal applications. Configurations are overloaded in the following lookup sequence:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Services default <envar>RootContainer</envar> configurations from JAR files <emphasis>/conf/configuration.xml</emphasis>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Understanding_how_configuration_files_are_loaded">
+ <title>Understanding how configuration files are loaded</title>
+ <para>
+ eXo Portal uses PicoContainer, which implements the Inversion of Control (IoC) design pattern. All eXo containers inherit from a PicoContainer. There are mainly two eXo containers used, each of them can provide one or several services. Each container service is delivered in a JAR file. This JAR file may contain a default configuration. The use of default configurations is recommended and most of services provide it.
+ </para>
+ <para>
+ When a Pico Container searches for services and its configurations, each configurable service may be reconfigured to override default values or set additional parameters. If the service is configured in two or more places, the configuration override mechanism will be used.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Understanding_how_configuration_files_are_loaded-Configuration_Retrieval">
+ <title>Configuration Retrieval</title>
+ <para>
+ The container performs the following steps to make eXo Container configuration retrieval, depending on the container type.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Configuration_retrieval_order_for_the_PortalContainer">
+ <title>Configuration retrieval order for the <envar>PortalContainer</envar></title>
+ <para>
+ The container is initialized by looking into different locations. This container is used by portal applications. Configurations are overloaded in the following lookup sequence:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Services default <envar>RootContainer</envar> configurations from JAR files <emphasis>/conf/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- External <envar>RootContainer</envar> configuration can be found at <emphasis>$AS_HOME/exo-conf/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ External <envar>RootContainer</envar> configuration can be found at <emphasis>$AS_HOME/exo-conf/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- Services default <envar>PortalContainer</envar> configurations from JAR files <emphasis>/conf/portal/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Services default <envar>PortalContainer</envar> configurations from JAR files <emphasis>/conf/portal/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- Web applications configurations from WAR files <emphasis>/WEB-INF/conf/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Web applications configurations from WAR files <emphasis>/WEB-INF/conf/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- External configuration for services of named portal can be found at <emphasis>$AS_HOME/exo-conf/portal/$PORTAL_NAME/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ External configuration for services of named portal can be found at <emphasis>$AS_HOME/exo-conf/portal/$PORTAL_NAME/configuration.xml</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Configuration_retrieval_for_a_StandaloneContainer">
- <title>Configuration retrieval for a <envar>StandaloneContainer</envar></title>
- <para>
- The container is initialized by looking into different locations. This container is used by non portal applications. Configurations are overloaded in the following lookup sequence:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Services default <envar>RootContainer</envar> configurations from JAR files <emphasis>/conf/configuration.xml</emphasis>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Configuration_retrieval_for_a_StandaloneContainer">
+ <title>Configuration retrieval for a <envar>StandaloneContainer</envar></title>
+ <para>
+ The container is initialized by looking into different locations. This container is used by non portal applications. Configurations are overloaded in the following lookup sequence:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Services default <envar>RootContainer</envar> configurations from JAR files <emphasis>/conf/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- External <envar>RootContainer</envar> configuration can be found at <emphasis>$AS_HOME/exo-conf/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ External <envar>RootContainer</envar> configuration can be found at <emphasis>$AS_HOME/exo-conf/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- Services default <envar>StandaloneContainer</envar> configurations from JAR files <emphasis>/conf/portal/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Services default <envar>StandaloneContainer</envar> configurations from JAR files <emphasis>/conf/portal/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- Web applications configurations from WAR files <emphasis>/WEB-INF/conf/configuration.xml</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Web applications configurations from WAR files <emphasis>/WEB-INF/conf/configuration.xml</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- Then depending on the <envar>StandaloneContainer</envar> configuration URL initialization:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- if configuration URL was initialized to be added to services defaults, as below:
- </para>
-
+ </listitem>
+ <listitem>
+ <para>
+ Then depending on the <envar>StandaloneContainer</envar> configuration URL initialization:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ if configuration URL was initialized to be added to services defaults, as below:
+ </para>
+
<programlisting language="Java" role="Java">// add configuration to the default services configurations from JARs/WARs
StandaloneContainer.addConfigurationURL(containerConf);</programlisting>
- <para>
- Configuration from added URL <emphasis>containerConf</emphasis> will override only services configured in the file
- </para>
+ <para>
+ Configuration from added URL <emphasis>containerConf</emphasis> will override only services configured in the file
+ </para>
- </listitem>
- <listitem>
- <para>
- if configuration URL not initialized at all, it will be found at <emphasis>$AS_HOME/exo-configuration.xml</emphasis>. If <emphasis>$AS_HOME/exo-configuration.xml</emphasis> doesn't exist the container will try find it at <emphasis>$AS_HOME/exo-conf/exo-configuration.xml</emphasis> location and if it's still not found and the <envar>StandaloneContainer</envar> instance obtained with the dedicated configuration <envar>ClassLoader</envar> the container will try to retrieve the resource <emphasis>conf/exo-configuration.xml</emphasis> within the given <envar>ClassLoader</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ if configuration URL not initialized at all, it will be found at <emphasis>$AS_HOME/exo-configuration.xml</emphasis>. If <emphasis>$AS_HOME/exo-configuration.xml</emphasis> doesn't exist the container will try find it at <emphasis>$AS_HOME/exo-conf/exo-configuration.xml</emphasis> location and if it's still not found and the <envar>StandaloneContainer</envar> instance obtained with the dedicated configuration <envar>ClassLoader</envar> the container will try to retrieve the resource <emphasis>conf/exo-configuration.xml</emphasis> within the given <envar>ClassLoader</envar>.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-General_notes_about_the_configuration_retrieval">
- <title>General notes about the configuration retrieval</title>
- <note>
- <para>
- <emphasis>$AS_HOME</emphasis> - application server home directory, or <emphasis>user.dir</emphasis> JVM system property value in case of Java Standalone application. The application server home is:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- For <envar>Jonas</envar>, the value of the variable <emphasis>${jonas.base}.</emphasis>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-General_notes_about_the_configuration_retrieval">
+ <title>General notes about the configuration retrieval</title>
+ <note>
+ <para>
+ <emphasis>$AS_HOME</emphasis> - application server home directory, or <emphasis>user.dir</emphasis> JVM system property value in case of Java Standalone application. The application server home is:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ For <envar>Jonas</envar>, the value of the variable <emphasis>${jonas.base}.</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- For <envar>Jetty</envar>, the value of the variable <emphasis>${jetty.home}.</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <envar>Jetty</envar>, the value of the variable <emphasis>${jetty.home}.</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- For <envar>Websphere</envar>, the value of the variable <emphasis>${was.install.root}.</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <envar>Websphere</envar>, the value of the variable <emphasis>${was.install.root}.</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- For <envar>Weblogic</envar>, the value of the variable <emphasis>${wls.home}</emphasis>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <envar>Weblogic</envar>, the value of the variable <emphasis>${wls.home}</emphasis>.
+ </para>
- </listitem>
- <listitem>
- <para>
- For <envar>Glassfish</envar>, the value of the variable <emphasis>${com.sun.aas.instanceRoot}</emphasis>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <envar>Glassfish</envar>, the value of the variable <emphasis>${com.sun.aas.instanceRoot}</emphasis>.
+ </para>
- </listitem>
- <listitem>
- <para>
- For <envar>Tomcat</envar>, the value of the variable <emphasis>${catalina.home}</emphasis>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <envar>Tomcat</envar>, the value of the variable <emphasis>${catalina.home}</emphasis>.
+ </para>
- </listitem>
- <listitem>
- <para>
- For <envar>JBoss AS</envar>, the value of the variable <emphasis>${jboss.server.config.url}</emphasis> if the exo-conf directory can be found there otherwise it will be the value of the variable <emphasis>${jboss.home.dir}</emphasis>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <envar>JBoss AS</envar>, the value of the variable <emphasis>${jboss.server.config.url}</emphasis> if the exo-conf directory can be found there otherwise it will be the value of the variable <emphasis>${jboss.home.dir}</emphasis>.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </note>
- <note>
- <para>
- <emphasis>$PORTAL_NAME</emphasis> - portal web application name.
- </para>
+ </note>
+ <note>
+ <para>
+ <emphasis>$PORTAL_NAME</emphasis> - portal web application name.
+ </para>
- </note>
- <note>
- <para>
- External configuration location can be overridden with System property <emphasis>exo.conf.dir</emphasis>. If the property exists, its value will be used as path to eXo configuration directory, i.e. to <emphasis>$AS_HOME/exo-conf</emphasis> alternative. E.g. put property in command line java <emphasis>-Dexo.conf.dir=/path/to/exo/conf</emphasis>. In this particular use case, you do not need to use any prefix to import other files. For instance, if your configuration file is <emphasis>$AS_HOME/exo-conf/portal/PORTAL_NAME/configuration.xml</emphasis> and you want to import the configuration file <emphasis>$AS_HOME/exo-conf/portal/PORTAL_NAME/mySubConfDir/myConfig.xml</emphasis>, you can do it by adding <emphasis><import>mySubConfDir/myConfig.xml</import></emphasis> to your configuration file.
- </para>
+ </note>
+ <note>
+ <para>
+ External configuration location can be overridden with System property <emphasis>exo.conf.dir</emphasis>. If the property exists, its value will be used as path to eXo configuration directory, i.e. to <emphasis>$AS_HOME/exo-conf</emphasis> alternative. E.g. put property in command line java <emphasis>-Dexo.conf.dir=/path/to/exo/conf</emphasis>. In this particular use case, you do not need to use any prefix to import other files. For instance, if your configuration file is <emphasis>$AS_HOME/exo-conf/portal/PORTAL_NAME/configuration.xml</emphasis> and you want to import the configuration file <emphasis>$AS_HOME/exo-conf/portal/PORTAL_NAME/mySubConfDir/myConfig.xml</emphasis>, you can do it by adding <emphasis><import>mySubConfDir/myConfig.xml</import></emphasis> to your configuration file.
+ </para>
- </note>
- <note>
- <para>
- The name of the configuration folder that is by default <emphasis>"exo-conf"</emphasis>, can be changed thanks to the System property <emphasis>exo.conf.dir.name</emphasis>.
- </para>
+ </note>
+ <note>
+ <para>
+ The name of the configuration folder that is by default <emphasis>"exo-conf"</emphasis>, can be changed thanks to the System property <emphasis>exo.conf.dir.name</emphasis>.
+ </para>
- </note>
- <note>
- <para>
- The search looks for a configuration file in each JAR/WAR available from the classpath using the current thread context classloader. During the search these configurations are added to a set. If the service was configured previously and the current JAR contains a new configuration of that service the latest (from the current JAR/WAR) will replace the previous one. The last one will be applied to the service during the services start phase.
- </para>
+ </note>
+ <note>
+ <para>
+ The search looks for a configuration file in each JAR/WAR available from the classpath using the current thread context classloader. During the search these configurations are added to a set. If the service was configured previously and the current JAR contains a new configuration of that service the latest (from the current JAR/WAR) will replace the previous one. The last one will be applied to the service during the services start phase.
+ </para>
- </note>
- <warning>
- <para>
- Take care to have no dependencies between configurations from JAR files (<emphasis>/conf/portal/configuration.xml</emphasis> and <emphasis>/conf/configuration.xml</emphasis>) since we have no way to know in advance the loading order of those configurations. In other words, if you want to overload some configuration located in the file <emphasis>/conf/portal/configuration.xml</emphasis> of a given JAR file, you must not do it from the file <emphasis>/conf/portal/configuration.xml</emphasis> of another JAR file but from another configuration file loaded after configurations from JAR files <emphasis>/conf/portal/configuration.xml.</emphasis>
- </para>
+ </note>
+ <warning>
+ <para>
+ Take care to have no dependencies between configurations from JAR files (<emphasis>/conf/portal/configuration.xml</emphasis> and <emphasis>/conf/configuration.xml</emphasis>) since we have no way to know in advance the loading order of those configurations. In other words, if you want to overload some configuration located in the file <emphasis>/conf/portal/configuration.xml</emphasis> of a given JAR file, you must not do it from the file <emphasis>/conf/portal/configuration.xml</emphasis> of another JAR file but from another configuration file loaded after configurations from JAR files <emphasis>/conf/portal/configuration.xml.</emphasis>
+ </para>
- </warning>
- <para>
- After the processing of all configurations available in system, the container will initialize it and start each service in order of the dependency injection (DI).
- </para>
- <para>
- The user/developer should be careful when configuring the same service in different configuration files. It's recommended to configure a service in its own JAR only. Or, in case of a portal configuration, strictly reconfigure the services in portal WAR files or in an external configuration.
- </para>
- <para>
- There are services that can be (or should be) configured more than one time. This depends on business logic of the service. A service may initialize the same resource (shared with other services) or may add a particular object to a set of objects (shared with other services too). In the first case, it's critical who will be the last, i.e. whose configuration will be used. In the second case, it's no matter who is the first and who is the last (if the parameter objects are independent).
- </para>
+ </warning>
+ <para>
+ After the processing of all configurations available in system, the container will initialize it and start each service in order of the dependency injection (DI).
+ </para>
+ <para>
+ The user/developer should be careful when configuring the same service in different configuration files. It's recommended to configure a service in its own JAR only. Or, in case of a portal configuration, strictly reconfigure the services in portal WAR files or in an external configuration.
+ </para>
+ <para>
+ There are services that can be (or should be) configured more than one time. This depends on business logic of the service. A service may initialize the same resource (shared with other services) or may add a particular object to a set of objects (shared with other services too). In the first case, it's critical who will be the last, i.e. whose configuration will be used. In the second case, it's no matter who is the first and who is the last (if the parameter objects are independent).
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Configuration_retrieval_log">
- <title>Configuration retrieval log</title>
- <para>
- In case of problems with service configuration, it's important to know from which JAR/WAR it comes. For that purpose, the JVM system property <emphasis>org.exoplatform.container.configuration.debug</emphasis> can be used.
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Configuration_retrieval_log">
+ <title>Configuration retrieval log</title>
+ <para>
+ In case of problems with service configuration, it's important to know from which JAR/WAR it comes. For that purpose, the JVM system property <emphasis>org.exoplatform.container.configuration.debug</emphasis> can be used.
<programlisting>java -Dorg.exoplatform.container.configuration.debug ...</programlisting>
- </para>
- <para>
- If the property is enabled, the container configuration manager will log the configuration adding process at <emphasis>INFO</emphasis> level.
+ </para>
+ <para>
+ If the property is enabled, the container configuration manager will log the configuration adding process at <emphasis>INFO</emphasis> level.
<programlisting>......
Add configuration jar:file:/D:/Projects/eXo/dev/exo-working/exo-tomcat/lib/exo.kernel.container-trunk.jar!/conf/portal/configuration.xml
Add configuration jar:file:/D:/Projects/eXo/dev/exo-working/exo-tomcat/lib/exo.kernel.component.cache-trunk.jar!/conf/portal/configuration.xml
@@ -282,35 +282,35 @@
import jndi:/localhost/portal/WEB-INF/conf/jcr/jcr-configuration.xml
......</programlisting>
- </para>
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Getting_the_effective_configuration_at_Runtime">
- <title>Getting the effective configuration at Runtime</title>
- <para>
- The effective configuration of the StandaloneContainer, RootContainer and/or PortalContainer can be known thanks to the method <emphasis>getConfigurationXML</emphasis>() that is exposed through JMX at the container's level. This method will give you the effective configuration in XML format that has been really interpreted by the kernel. This could be helpful to understand how a given component or plugin has been initialized.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration_Retrieval-Getting_the_effective_configuration_at_Runtime">
+ <title>Getting the effective configuration at Runtime</title>
+ <para>
+ The effective configuration of the StandaloneContainer, RootContainer and/or PortalContainer can be known thanks to the method <emphasis>getConfigurationXML</emphasis>() that is exposed through JMX at the container's level. This method will give you the effective configuration in XML format that has been really interpreted by the kernel. This could be helpful to understand how a given component or plugin has been initialized.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Understanding_how_configuration_files_are_loaded-Advanced_concepts_for_the_PortalContainers">
- <title>Advanced concepts for the <emphasis>PortalContainers</emphasis></title>
- <para>
- Since eXo JCR 1.12, we added a set of new features that have been designed to extend portal applications such as GateIn.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Add_new_configuration_files_from_a_WAR_file">
- <title>Add new configuration files from a WAR file</title>
- <para>
- A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerConfigOwner</envar> has been added in order to notify the application that a given web application provides some configuration to the portal container, and this configuration file is the file <emphasis>WEB-INF/conf/configuration.xml</emphasis> available in the web application itself.
- </para>
- <para>
- If your war file contains some configuration to add to the <envar>PortalContainer</envar> simply add the following lines in your <emphasis>web.xml</emphasis> file.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Understanding_how_configuration_files_are_loaded-Advanced_concepts_for_the_PortalContainers">
+ <title>Advanced concepts for the <emphasis>PortalContainers</emphasis></title>
+ <para>
+ Since eXo JCR 1.12, we added a set of new features that have been designed to extend portal applications such as GateIn.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Add_new_configuration_files_from_a_WAR_file">
+ <title>Add new configuration files from a WAR file</title>
+ <para>
+ A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerConfigOwner</envar> has been added in order to notify the application that a given web application provides some configuration to the portal container, and this configuration file is the file <emphasis>WEB-INF/conf/configuration.xml</emphasis> available in the web application itself.
+ </para>
+ <para>
+ If your war file contains some configuration to add to the <envar>PortalContainer</envar> simply add the following lines in your <emphasis>web.xml</emphasis> file.
+ </para>
+
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
@@ -325,34 +325,34 @@
...
</web-app></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Creating_your_PortalContainers_from_a_WAR_file">
- <title>Creating your <emphasis>PortalContainers</emphasis> from a WAR file</title>
- <para>
- A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerCreator</envar> has been added in order to create the current portal containers that have been registered. We assume that all the web applications have already been loaded before calling <envar>PortalContainerCreator.contextInitialized.</envar>
- </para>
- <para>
- <note>
- <para>
- In GateIn, the <envar>PortalContainerCreator</envar> is already managed by the file <emphasis>starter.war/ear.</emphasis>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Creating_your_PortalContainers_from_a_WAR_file">
+ <title>Creating your <emphasis>PortalContainers</emphasis> from a WAR file</title>
+ <para>
+ A <envar>ServletContextListener</envar> called <envar>org.exoplatform.container.web.PortalContainerCreator</envar> has been added in order to create the current portal containers that have been registered. We assume that all the web applications have already been loaded before calling <envar>PortalContainerCreator.contextInitialized.</envar>
+ </para>
+ <para>
+ <note>
+ <para>
+ In GateIn, the <envar>PortalContainerCreator</envar> is already managed by the file <emphasis>starter.war/ear.</emphasis>
+ </para>
- </note>
+ </note>
- </para>
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Defining_a_PortalContainer_with_its_dependencies_and_its_settings">
- <title>Defining a <emphasis>PortalContainer</emphasis> with its dependencies and its settings</title>
- <para>
- Now we can define precisely a portal container and its dependencies and settings thanks to the <envar>PortalContainerDefinition</envar> that currently contains the name of the portal container, the name of the rest context, the name of the realm, the web application dependencies ordered by loading priority (i.e. the first dependency must be loaded at first and so on..) and the settings.
- </para>
- <para>
- To be able to define a <envar>PortalContainerDefinition</envar>, we need to ensure first of all that a <envar>PortalContainerConfig</envar> has been defined at the <envar>RootContainer</envar> level, see an example below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Defining_a_PortalContainer_with_its_dependencies_and_its_settings">
+ <title>Defining a <emphasis>PortalContainer</emphasis> with its dependencies and its settings</title>
+ <para>
+ Now we can define precisely a portal container and its dependencies and settings thanks to the <envar>PortalContainerDefinition</envar> that currently contains the name of the portal container, the name of the rest context, the name of the realm, the web application dependencies ordered by loading priority (i.e. the first dependency must be loaded at first and so on..) and the settings.
+ </para>
+ <para>
+ To be able to define a <envar>PortalContainerDefinition</envar>, we need to ensure first of all that a <envar>PortalContainerConfig</envar> has been defined at the <envar>RootContainer</envar> level, see an example below:
+ </para>
+
<programlisting language="XML" role="XML"> <component>
<!-- The full qualified name of the PortalContainerConfig -->
<type>org.exoplatform.container.definition.PortalContainerConfig</type>
@@ -433,87 +433,87 @@
</object-param>
</init-params>
</component></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_PortalContainerConfig">
- <title>Descriptions of the fields of <envar>PortalContainerConfig</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- default.portal.container (*)
- </entry>
- <entry>
- The name of the default portal container. This field is optional.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_PortalContainerConfig">
+ <title>Descriptions of the fields of <envar>PortalContainerConfig</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ default.portal.container (*)
+ </entry>
+ <entry>
+ The name of the default portal container. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- default.rest.context (*)
- </entry>
- <entry>
- The name of the default rest <envar>ServletContext</envar>. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ default.rest.context (*)
+ </entry>
+ <entry>
+ The name of the default rest <envar>ServletContext</envar>. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- default.realm.name (*)
- </entry>
- <entry>
- The name of the default realm. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ default.realm.name (*)
+ </entry>
+ <entry>
+ The name of the default realm. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- ignore.unregistered.webapp (*)
- </entry>
- <entry>
- Indicates whether the unregistered webapps have to be ignored. If a webapp has not been registered as a dependency of any portal container, the application will use the value of this parameter to know what to do:
- <itemizedlist>
- <listitem>
- <para>
- If it is set to <emphasis>false</emphasis>, this webapp will be considered by default as a dependency of all the portal containers.
- </para>
+ </row>
+ <row>
+ <entry>
+ ignore.unregistered.webapp (*)
+ </entry>
+ <entry>
+ Indicates whether the unregistered webapps have to be ignored. If a webapp has not been registered as a dependency of any portal container, the application will use the value of this parameter to know what to do:
+ <itemizedlist>
+ <listitem>
+ <para>
+ If it is set to <emphasis>false</emphasis>, this webapp will be considered by default as a dependency of all the portal containers.
+ </para>
- </listitem>
- <listitem>
- <para>
- If it is set to <emphasis>true</emphasis>, this webapp won't be considered by default as a dependency of any portal container, it will be simply ignored.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If it is set to <emphasis>true</emphasis>, this webapp won't be considered by default as a dependency of any portal container, it will be simply ignored.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- This field is optional and by default this parameter is set to <emphasis>false</emphasis>.
- </entry>
+ </itemizedlist>
+ This field is optional and by default this parameter is set to <emphasis>false</emphasis>.
+ </entry>
- </row>
- <row>
- <entry>
- default.portal.definition
- </entry>
- <entry>
- The definition of the default portal container. This field is optional. The expected type is <envar>org.exoplatform.container.definition.PortalContainerDefinition</envar> that is described below. Allow the parameters defined in this default <envar>PortalContainerDefinition</envar> will be the default values.
- </entry>
+ </row>
+ <row>
+ <entry>
+ default.portal.definition
+ </entry>
+ <entry>
+ The definition of the default portal container. This field is optional. The expected type is <envar>org.exoplatform.container.definition.PortalContainerDefinition</envar> that is described below. Allow the parameters defined in this default <envar>PortalContainerDefinition</envar> will be the default values.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- A new <envar>PortalContainerDefinition</envar> can be defined at the <envar>RootContainer</envar> level thanks to an external plugin, see an example below:
- </para>
-
+ </note>
+ <para>
+ A new <envar>PortalContainerDefinition</envar> can be defined at the <envar>RootContainer</envar> level thanks to an external plugin, see an example below:
+ </para>
+
<programlisting language="XML" role="XML"> <external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -608,403 +608,403 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_a_new_portal_container">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define a new portal container</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- name (*)
- </entry>
- <entry>
- The name of the portal container. This field is mandatory .
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_a_new_portal_container">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define a new portal container</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ name (*)
+ </entry>
+ <entry>
+ The name of the portal container. This field is mandatory .
+ </entry>
- </row>
- <row>
- <entry>
- restContextName (*)
- </entry>
- <entry>
- The name of the context name of the rest web application. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
- </entry>
+ </row>
+ <row>
+ <entry>
+ restContextName (*)
+ </entry>
+ <entry>
+ The name of the context name of the rest web application. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
+ </entry>
- </row>
- <row>
- <entry>
- realmName (*)
- </entry>
- <entry>
- The name of the realm. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
- </entry>
+ </row>
+ <row>
+ <entry>
+ realmName (*)
+ </entry>
+ <entry>
+ The name of the realm. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level.
+ </entry>
- </row>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- All the dependencies of the portal container ordered by loading priority. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level. The dependencies are in fact the list of the context names of the web applications from which the portal container depends. This field is optional. The dependency order is really crucial since it will be interpreted the same way by several components of the platform. All those components, will consider the 1st element in the list less important than the second element and so on. It is currently used to:
- <itemizedlist>
- <listitem>
- <para>
- Know the loading order of all the dependencies.
- </para>
+ </row>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ All the dependencies of the portal container ordered by loading priority. This field is optional. The default value will be defined at the <envar>PortalContainerConfig</envar> level. The dependencies are in fact the list of the context names of the web applications from which the portal container depends. This field is optional. The dependency order is really crucial since it will be interpreted the same way by several components of the platform. All those components, will consider the 1st element in the list less important than the second element and so on. It is currently used to:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Know the loading order of all the dependencies.
+ </para>
- </listitem>
- <listitem>
- <para>
- If we have several <envar>PortalContainerConfigOwner</envar> <itemizedlist>
- <listitem>
- <para>
- The <envar>ServletContext</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ServletContext</envar> (<emphasis>PortalContainer.getPortalContext()</emphasis>) to get a resource, it will try to get the resource in the <envar>ServletContext</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it cans find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If we have several <envar>PortalContainerConfigOwner</envar> <itemizedlist>
+ <listitem>
+ <para>
+ The <envar>ServletContext</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ServletContext</envar> (<emphasis>PortalContainer.getPortalContext()</emphasis>) to get a resource, it will try to get the resource in the <envar>ServletContext</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it cans find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
+ </para>
- </listitem>
- <listitem>
- <para>
- The <envar>ClassLoader</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ClassLoader</envar> (<emphasis>PortalContainer.getPortalClassLoader()</emphasis>) to get a resource, it will try to get the resource in the <envar>ClassLoader</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it can find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <envar>ClassLoader</envar> of all the <envar>PortalContainerConfigOwner</envar> will be unified, if we use the unified <envar>ClassLoader</envar> (<emphasis>PortalContainer.getPortalClassLoader()</emphasis>) to get a resource, it will try to get the resource in the <envar>ClassLoader</envar> of the most important <envar>PortalContainerConfigOwner</envar> (i.e. last in the dependency list) and if it can find it, it will try with the second most important <envar>PortalContainerConfigOwner</envar> and so on.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </para>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- settings
- </entry>
- <entry>
- A <envar>java.util.Map</envar> of internal parameters that we would like to tie the portal container. Those parameters could have any type of value. This field is optional. If some internal settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level.
- </entry>
+ </row>
+ <row>
+ <entry>
+ settings
+ </entry>
+ <entry>
+ A <envar>java.util.Map</envar> of internal parameters that we would like to tie the portal container. Those parameters could have any type of value. This field is optional. If some internal settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level.
+ </entry>
- </row>
- <row>
- <entry>
- externalSettingsPath
- </entry>
- <entry>
- The path of the external properties file to load as default settings to the portal container. This field is optional. If some external settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
- <orderedlist>
- <listitem>
- <para>
- The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
- <orderedlist>
- <listitem>
- <para>
- A file exists at <emphasis>${exo-conf-dir}/portal/${portalContainerName}/${externalSettingsPath}</emphasis>, we will load this file.
- </para>
+ </row>
+ <row>
+ <entry>
+ externalSettingsPath
+ </entry>
+ <entry>
+ The path of the external properties file to load as default settings to the portal container. This field is optional. If some external settings are defined at the <envar>PortalContainerConfig</envar> level, the two maps of settings will be merged. If a setting with the same name is defined in both maps, it will keep the value defined at the <envar>PortalContainerDefinition</envar> level. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
+ <orderedlist>
+ <listitem>
+ <para>
+ The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
+ <orderedlist>
+ <listitem>
+ <para>
+ A file exists at <emphasis>${exo-conf-dir}/portal/${portalContainerName}/${externalSettingsPath}</emphasis>, we will load this file.
+ </para>
- </listitem>
- <listitem>
- <para>
- No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </para>
+ </para>
- </listitem>
- <listitem>
- <para>
- The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_the_default_portal_container">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define the default portal container</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- name (*)
- </entry>
- <entry>
- The name of the portal container. This field is optional. The default portal name will be:
- <orderedlist>
- <listitem>
- <para>
- If this field is not empty, then the default value will be the value of this field.
- </para>
+ </table>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Defining_a_PortalContainer_with_its_dependencies_and_its_settings-Descriptions_of_the_fields_of_a_PortalContainerDefinition_when_it_is_used_to_define_the_default_portal_container">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinition</envar> when it is used to define the default portal container</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ name (*)
+ </entry>
+ <entry>
+ The name of the portal container. This field is optional. The default portal name will be:
+ <orderedlist>
+ <listitem>
+ <para>
+ If this field is not empty, then the default value will be the value of this field.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field is empty and the value of the parameter <emphasis>default.portal.container</emphasis> is not empty, then the default value will be the value of the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field is empty and the value of the parameter <emphasis>default.portal.container</emphasis> is not empty, then the default value will be the value of the parameter.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field and the parameter <emphasis>default.portal.container</emphasis> are both empty, the default value will be <emphasis>"portal".</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field and the parameter <emphasis>default.portal.container</emphasis> are both empty, the default value will be <emphasis>"portal".</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- restContextName (*)
- </entry>
- <entry>
- The name of the context name of the rest web application. This field is optional. The default value wil be:
- <orderedlist>
- <listitem>
- <para>
- If this field is not empty, then the default value will be the value of this field.
- </para>
+ </row>
+ <row>
+ <entry>
+ restContextName (*)
+ </entry>
+ <entry>
+ The name of the context name of the rest web application. This field is optional. The default value will be:
+ <orderedlist>
+ <listitem>
+ <para>
+ If this field is not empty, then the default value will be the value of this field.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field is empty and the value of the parameter <emphasis>default.rest.context</emphasis> is not empty, then the default value will be the value of the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field is empty and the value of the parameter <emphasis>default.rest.context</emphasis> is not empty, then the default value will be the value of the parameter.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field and the parameter <emphasis>default.rest.context</emphasis> are both empty, the default value will be <emphasis>"rest".</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field and the parameter <emphasis>default.rest.context</emphasis> are both empty, the default value will be <emphasis>"rest".</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- realmName (*)
- </entry>
- <entry>
- The name of the realm. This field is optional. The default value will be:
- <orderedlist>
- <listitem>
- <para>
- If this field is not empty, then the default value will be the value of this field.
- </para>
+ </row>
+ <row>
+ <entry>
+ realmName (*)
+ </entry>
+ <entry>
+ The name of the realm. This field is optional. The default value will be:
+ <orderedlist>
+ <listitem>
+ <para>
+ If this field is not empty, then the default value will be the value of this field.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field is empty and the value of the parameter <emphasis>default.realm.name</emphasis> is not empty, then the default value will be the value of the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field is empty and the value of the parameter <emphasis>default.realm.name</emphasis> is not empty, then the default value will be the value of the parameter.
+ </para>
- </listitem>
- <listitem>
- <para>
- If this field and the parameter <emphasis>default.realm.name</emphasis> are both empty, the default value will be <emphasis>"exo-domain".</emphasis>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ If this field and the parameter <emphasis>default.realm.name</emphasis> are both empty, the default value will be <emphasis>"exo-domain".</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- All the dependencies of the portal container ordered by loading priority. This field is optional. If this field has a non empty value, it will be the default list of dependencies.
- </entry>
+ </row>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ All the dependencies of the portal container ordered by loading priority. This field is optional. If this field has a non empty value, it will be the default list of dependencies.
+ </entry>
- </row>
- <row>
- <entry>
- settings
- </entry>
- <entry>
- A <envar>java.util.Map</envar> of internal parameters that we would like to tie the default portal container. Those parameters could have any type of value. This field is optional.
- </entry>
+ </row>
+ <row>
+ <entry>
+ settings
+ </entry>
+ <entry>
+ A <envar>java.util.Map</envar> of internal parameters that we would like to tie the default portal container. Those parameters could have any type of value. This field is optional.
+ </entry>
- </row>
- <row>
- <entry>
- externalSettingsPath
- </entry>
- <entry>
- The path of the external properties file to load as default settings to the default portal container. This field is optional. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
- <orderedlist>
- <listitem>
- <para>
- The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
- <orderedlist>
- <listitem>
- <para>
- A file exists at <emphasis>${exo-conf-dir}/portal/${externalSettingsPath}</emphasis>, we will load this file.
- </para>
+ </row>
+ <row>
+ <entry>
+ externalSettingsPath
+ </entry>
+ <entry>
+ The path of the external properties file to load as default settings to the default portal container. This field is optional. The external properties files can be either of type "properties" or of type "xml". The path will be interpreted as follows:
+ <orderedlist>
+ <listitem>
+ <para>
+ The path doesn't contain any prefix of type "classpath:", "jar:" or "file:", we assume that the file could be externalized so we apply the following rules:
+ <orderedlist>
+ <listitem>
+ <para>
+ A file exists at <emphasis>${exo-conf-dir}/portal/${externalSettingsPath}</emphasis>, we will load this file.
+ </para>
- </listitem>
- <listitem>
- <para>
- No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ No file exists at the previous path, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </para>
+ </para>
- </listitem>
- <listitem>
- <para>
- The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The path contains a prefix, we then assume that the path cans be interpreted by the <envar>ConfigurationManager</envar>.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </entry>
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- Internal and external settings are both optional, but if we give a non empty value for both the application will merge the settings. If the same setting name exists in both settings, we apply the following rules:
- </para>
- <orderedlist>
- <listitem>
- <para>
- The value of the external setting is <emphasis>null</emphasis>, we ignore the value.
- </para>
+ </note>
+ <para>
+ Internal and external settings are both optional, but if we give a non empty value for both the application will merge the settings. If the same setting name exists in both settings, we apply the following rules:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The value of the external setting is <emphasis>null</emphasis>, we ignore the value.
+ </para>
- </listitem>
- <listitem>
- <para>
- The value of the external setting is not <emphasis>null</emphasis> and the value of the internal setting is <emphasis>null</emphasis>, the final value will be the external setting value that is of type <envar>String</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The value of the external setting is not <emphasis>null</emphasis> and the value of the internal setting is <emphasis>null</emphasis>, the final value will be the external setting value that is of type <envar>String</envar>.
+ </para>
- </listitem>
- <listitem>
- <para>
- Both values are not <envar>null</envar>, we will have to convert the external setting value into the target type which is the type of the internal setting value, thanks to the static method <emphasis>valueOf(String)</emphasis>, the following sub-rules are then applied:
- </para>
- <orderedlist>
- <listitem>
- <para>
- The method cannot be found, the final value will be the external setting value that is of type <envar>String</envar>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Both values are not <envar>null</envar>, we will have to convert the external setting value into the target type which is the type of the internal setting value, thanks to the static method <emphasis>valueOf(String)</emphasis>, the following sub-rules are then applied:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The method cannot be found, the final value will be the external setting value that is of type <envar>String</envar>.
+ </para>
- </listitem>
- <listitem>
- <para>
- The method can be found and the external setting value is an empty <envar>String</envar>, we ignore the external setting value.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The method can be found and the external setting value is an empty <envar>String</envar>, we ignore the external setting value.
+ </para>
- </listitem>
- <listitem>
- <para>
- The method can be found and the external setting value is not an empty <envar>String</envar> but the method call fails, we ignore the external setting value.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The method can be found and the external setting value is not an empty <envar>String</envar> but the method call fails, we ignore the external setting value.
+ </para>
- </listitem>
- <listitem>
- <para>
- The method can be found and the external setting value is not an empty <envar>String</envar> and the method call succeeds, the final value will be the external setting value that is of type of the internal setting value.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The method can be found and the external setting value is not an empty <envar>String</envar> and the method call succeeds, the final value will be the external setting value that is of type of the internal setting value.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-PortalContainer_settings">
- <title><envar>PortalContainer</envar> settings</title>
- <para>
- We can inject the value of the portal container settings into the portal container configuration files thanks to the variables which name start with "<emphasis>portal.container.</emphasis>", so to get the value of a setting called "<emphasis>foo</emphasis>", just use the following syntax <emphasis>${portal.container.foo}</emphasis>. You can also use internal variables, such as:
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-PortalContainer_settings-Definition_of_the_internal_variables">
- <title>Definition of the internal variables</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- portal.container.name
- </entry>
- <entry>
- Gives the name of the current portal container.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-PortalContainer_settings">
+ <title><envar>PortalContainer</envar> settings</title>
+ <para>
+ We can inject the value of the portal container settings into the portal container configuration files thanks to the variables which name start with "<emphasis>portal.container.</emphasis>", so to get the value of a setting called "<emphasis>foo</emphasis>", just use the following syntax <emphasis>${portal.container.foo}</emphasis>. You can also use internal variables, such as:
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-PortalContainer_settings-Definition_of_the_internal_variables">
+ <title>Definition of the internal variables</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ portal.container.name
+ </entry>
+ <entry>
+ Gives the name of the current portal container.
+ </entry>
- </row>
- <row>
- <entry>
- portal.container.rest
- </entry>
- <entry>
- Gives the context name of the rest web application of the current portal container.
- </entry>
+ </row>
+ <row>
+ <entry>
+ portal.container.rest
+ </entry>
+ <entry>
+ Gives the context name of the rest web application of the current portal container.
+ </entry>
- </row>
- <row>
- <entry>
- portal.container.realm
- </entry>
- <entry>
- Gives the realm name of the current portal container.
- </entry>
+ </row>
+ <row>
+ <entry>
+ portal.container.realm
+ </entry>
+ <entry>
+ Gives the realm name of the current portal container.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- You can find below an example of how to use the variables:
- </para>
-
-<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+ </table>
+ <para>
+ You can find below an example of how to use the variables:
+ </para>
+
+<programlisting language="XML" role="XML"><configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.container.TestPortalContainer$MyComponent</type>
<init-params>
@@ -1034,38 +1034,38 @@
</init-params>
</component>
</configuration></programlisting>
- <para>
- In the properties file corresponding to the external settings, you can reuse variables previously defined (in the external settings or in the internal settings) to create a new variable. In this case, the prefix "<emphasis>portal.container.</emphasis>" is not needed, see an example below:
+ <para>
+ In the properties file corresponding to the external settings, you can reuse variables previously defined (in the external settings or in the internal settings) to create a new variable. In this case, the prefix "<emphasis>portal.container.</emphasis>" is not needed, see an example below:
<programlisting>my-var1=value 1
my-var2=value 2
complex-value=${my-var1}-${my-var2}</programlisting>
- </para>
- <para>
- In the external and internal settings, you can also use create variables based on value of System paramaters. The System parameters can either be defined at launch time or thanks to the <envar>PropertyConfigurator</envar> (see next section for more details). See an example below:
- </para>
-
+ </para>
+ <para>
+ In the external and internal settings, you can also use create variables based on value of System parameters. The System parameters can either be defined at launch time or thanks to the <envar>PropertyConfigurator</envar> (see next section for more details). See an example below:
+ </para>
+
<programlisting>temp-dir=${java.io.tmpdir}${file.separator}my-temp</programlisting>
- <para>
- However, for the internal settings, you can use System parameters only to define settings of type <envar>java.lang.String</envar>.
- </para>
- <para>
- It cans be also very useful to define a generic variable in the settings of the default portal container, the value of this variable will change according to the current portal container. See below an example:
+ <para>
+ However, for the internal settings, you can use System parameters only to define settings of type <envar>java.lang.String</envar>.
+ </para>
+ <para>
+ It cans be also very useful to define a generic variable in the settings of the default portal container, the value of this variable will change according to the current portal container. See below an example:
<programlisting>my-generic-var=value of the portal container "${name}"</programlisting>
- </para>
- <para>
- If this variable is defined at the default portal container level, the value of this variable for a portal container called <emphasis>"foo"</emphasis> will be <emphasis>value of the portal container "foo"</emphasis>.
- </para>
+ </para>
+ <para>
+ If this variable is defined at the default portal container level, the value of this variable for a portal container called <emphasis>"foo"</emphasis> will be <emphasis>value of the portal container "foo"</emphasis>.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer">
- <title>Adding dynamically settings and/or dependencies to a <envar>PortalContainer</envar></title>
- <para>
- It is possible to use <envar>component-plugin</envar> elements in order to dynamically change a PortalContainerDefinition. In the example below, we add the dependency <envar>foo</envar> to the default portal container and to the portal containers called <envar>foo1</envar> and <envar>foo2</envar>:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer">
+ <title>Adding dynamically settings and/or dependencies to a <envar>PortalContainer</envar></title>
+ <para>
+ It is possible to use <envar>component-plugin</envar> elements in order to dynamically change a PortalContainerDefinition. In the example below, we add the dependency <envar>foo</envar> to the default portal container and to the portal containers called <envar>foo1</envar> and <envar>foo2</envar>:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1102,127 +1102,127 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-Descriptions_of_the_fields_of_a_PortalContainerDefinitionChangePlugin">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinitionChangePlugin</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- apply.all (*)
- </entry>
- <entry>
- Indicates whether the changes have to be applied to all the portal containers or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-Descriptions_of_the_fields_of_a_PortalContainerDefinitionChangePlugin">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinitionChangePlugin</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ apply.all (*)
+ </entry>
+ <entry>
+ Indicates whether the changes have to be applied to all the portal containers or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- apply.default (*)
- </entry>
- <entry>
- Indicates whether the changes have to be applied to the default portal container or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
- </entry>
+ </row>
+ <row>
+ <entry>
+ apply.default (*)
+ </entry>
+ <entry>
+ Indicates whether the changes have to be applied to the default portal container or not. The default value of this field is <envar>false</envar>. This field is a <envar>ValueParam</envar> and is not mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- apply.specific (*)
- </entry>
- <entry>
- A set of specific portal container names to which we want to apply the changes. This field is a <envar>ValuesParam</envar> and is not mandatory.
- </entry>
+ </row>
+ <row>
+ <entry>
+ apply.specific (*)
+ </entry>
+ <entry>
+ A set of specific portal container names to which we want to apply the changes. This field is a <envar>ValuesParam</envar> and is not mandatory.
+ </entry>
- </row>
- <row>
- <entry>
- <envar>Rest of the expected parameters </envar>
- </entry>
- <entry>
- The rest of the expected parameters are <envar>ObjectParam</envar> of type <envar>PortalContainerDefinitionChange</envar>. Those parameters are in fact the list of changes that we want to apply to one or several portal containers. If the list of changes is empty, the component plugin will be ignored. The supported implementations of PortalContainerDefinitionChange are described later in this section.
- </entry>
+ </row>
+ <row>
+ <entry>
+ <envar>Rest of the expected parameters </envar>
+ </entry>
+ <entry>
+ The rest of the expected parameters are <envar>ObjectParam</envar> of type <envar>PortalContainerDefinitionChange</envar>. Those parameters are in fact the list of changes that we want to apply to one or several portal containers. If the list of changes is empty, the component plugin will be ignored. The supported implementations of PortalContainerDefinitionChange are described later in this section.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- To identify the portal containers to which the changes have to be applied, we use the following algorithm:
- </para>
- <orderedlist>
- <listitem>
- <para>
- The parameter <envar>apply.all</envar> has been set to <envar>true</envar>. The corresponding changes will be applied to all the portal containers. The other parameters will be ignored.
- </para>
+ </note>
+ <para>
+ To identify the portal containers to which the changes have to be applied, we use the following algorithm:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The parameter <envar>apply.all</envar> has been set to <envar>true</envar>. The corresponding changes will be applied to all the portal containers. The other parameters will be ignored.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the default portal container and the given list of specific portal containers.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>true</envar> and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the default portal container and the given list of specific portal containers.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is <envar>null</envar>. The corresponding changes will be applied to the default portal container only.
+ </para>
- </listitem>
- <listitem>
- <para>
- The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the given list of specific portal containers.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The parameter <envar>apply.default</envar> has been set to <envar>false</envar> or has not been set and the parameter <envar>apply.specific</envar> is not <envar>null</envar>. The corresponding changes will be applied to the given list of specific portal containers.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-The_existing_implementations_of_PortalContainerDefinitionChange">
- <title>The existing implementations of <envar>PortalContainerDefinitionChange</envar></title>
- <para>
- The modifications that can be applied to a <envar>PortalContainerDefinition</envar> must be a class of type <envar>PortalContainerDefinitionChange</envar>. The product proposes out of the box some implementations that we describe in the next sub sections.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependencies">
- <title><envar>AddDependencies</envar></title>
- <para>
- This modification adds a list of dependencies at the end of the list of dependencies defined into the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependencies</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependencies-Descriptions_of_the_fields_of_an_AddDependencies">
- <title>Descriptions of the fields of an <envar>AddDependencies</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </orderedlist>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Adding_dynamically_settings_andor_dependencies_to_a_PortalContainer-The_existing_implementations_of_PortalContainerDefinitionChange">
+ <title>The existing implementations of <envar>PortalContainerDefinitionChange</envar></title>
+ <para>
+ The modifications that can be applied to a <envar>PortalContainerDefinition</envar> must be a class of type <envar>PortalContainerDefinitionChange</envar>. The product proposes out of the box some implementations that we describe in the next sub sections.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependencies">
+ <title><envar>AddDependencies</envar></title>
+ <para>
+ This modification adds a list of dependencies at the end of the list of dependencies defined into the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependencies</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependencies-Descriptions_of_the_fields_of_an_AddDependencies">
+ <title>Descriptions of the fields of an <envar>AddDependencies</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add <envar>foo</envar> at the end of the dependency list of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add <envar>foo</envar> at the end of the dependency list of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1255,45 +1255,45 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesBefore">
- <title><envar>AddDependenciesBefore</envar></title>
- <para>
- This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesBefore</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesBefore-Descriptions_of_the_fields_of_an_AddDependenciesBefore">
- <title>Descriptions of the fields of an <envar>AddDependenciesBefore</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesBefore">
+ <title><envar>AddDependenciesBefore</envar></title>
+ <para>
+ This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesBefore</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesBefore-Descriptions_of_the_fields_of_an_AddDependenciesBefore">
+ <title>Descriptions of the fields of an <envar>AddDependenciesBefore</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
- <row>
- <entry>
- target
- </entry>
- <entry>
- The name of the dependency before which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in first position to the list.
- </entry>
+ </row>
+ <row>
+ <entry>
+ target
+ </entry>
+ <entry>
+ The name of the dependency before which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in first position to the list.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add <envar>foo</envar> before <envar>foo2</envar> in the dependency list of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add <envar>foo</envar> before <envar>foo2</envar> in the dependency list of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1330,45 +1330,45 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesAfter">
- <title><envar>AddDependenciesAfter</envar></title>
- <para>
- This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesAfter</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesAfter-Descriptions_of_the_fields_of_an_AddDependenciesAfter">
- <title>Descriptions of the fields of an <envar>AddDependenciesAfter</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- dependencies
- </entry>
- <entry>
- A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddDependenciesAfter">
+ <title><envar>AddDependenciesAfter</envar></title>
+ <para>
+ This modification adds a list of dependencies before a given target dependency defined into the list of dependencies of the <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesAfter</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddDependenciesAfter-Descriptions_of_the_fields_of_an_AddDependenciesAfter">
+ <title>Descriptions of the fields of an <envar>AddDependenciesAfter</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ dependencies
+ </entry>
+ <entry>
+ A list of <emphasis>String</emphasis> corresponding to the list of name of the dependencies to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
- <row>
- <entry>
- target
- </entry>
- <entry>
- The name of the dependency after which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in last position to the list.
- </entry>
+ </row>
+ <row>
+ <entry>
+ target
+ </entry>
+ <entry>
+ The name of the dependency after which we would like to add the new dependencies. If this field is <envar>null</envar> or the target dependency cannot be found in the list of dependencies defined into the <envar>PortalContainerDefinition</envar>, the new dependencies will be added in last position to the list.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add <envar>foo</envar> after <envar>foo2</envar> in the dependency list of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add <envar>foo</envar> after <envar>foo2</envar> in the dependency list of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1405,36 +1405,36 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddSettings">
- <title><envar>AddSettings</envar></title>
- <para>
- This modification adds new settings to a <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddSettings</emphasis>.
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddSettings-Descriptions_of_the_fields_of_an_AddSettings">
- <title>Descriptions of the fields of an <envar>AddSettings</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- settings
- </entry>
- <entry>
- A map of <emphasis><String, Object></emphasis> corresponding to the settings to add. If the value of this field is empty, the change will be ignored.
- </entry>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-The_existing_implementations_of_PortalContainerDefinitionChange-AddSettings">
+ <title><envar>AddSettings</envar></title>
+ <para>
+ This modification adds new settings to a <envar>PortalContainerDefinition</envar>. The full qualified name is <emphasis>org.exoplatform.container.definition.PortalContainerDefinitionChange$AddSettings</emphasis>.
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-AddSettings-Descriptions_of_the_fields_of_an_AddSettings">
+ <title>Descriptions of the fields of an <envar>AddSettings</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ settings
+ </entry>
+ <entry>
+ A map of <emphasis><String, Object></emphasis> corresponding to the settings to add. If the value of this field is empty, the change will be ignored.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- See an example below, that will add the settings <envar>string</envar> and <envar>stringX</envar> to the settings of the default portal container:
- </para>
-
+ </table>
+ <para>
+ See an example below, that will add the settings <envar>string</envar> and <envar>stringX</envar> to the settings of the default portal container:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1480,20 +1480,20 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Disable_dynamically_a_portal_container">
- <title>Disable dynamically a portal container</title>
- <para>
- It is possible to use <envar>component-plugin</envar> elements in order to dynamically disable one or several portal containers. In the example below, we disable the portal container named <envar>foo</envar>:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_concepts_for_the_PortalContainers-Disable_dynamically_a_portal_container">
+ <title>Disable dynamically a portal container</title>
+ <para>
+ It is possible to use <envar>component-plugin</envar> elements in order to dynamically disable one or several portal containers. In the example below, we disable the portal container named <envar>foo</envar>:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
<target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
@@ -1513,35 +1513,35 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Disable_dynamically_a_portal_container-Descriptions_of_the_fields_of_a_PortalContainerDefinitionDisablePlugin">
- <title>Descriptions of the fields of a <envar>PortalContainerDefinitionDisablePlugin</envar></title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- names (*)
- </entry>
- <entry>
- The list of the name of the portal containers to disable.
- </entry>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Disable_dynamically_a_portal_container-Descriptions_of_the_fields_of_a_PortalContainerDefinitionDisablePlugin">
+ <title>Descriptions of the fields of a <envar>PortalContainerDefinitionDisablePlugin</envar></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ names (*)
+ </entry>
+ <entry>
+ The list of the name of the portal containers to disable.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <note>
- <para>
- All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
- </para>
+ </table>
+ <note>
+ <para>
+ All the value of the parameters marked with a (*) can be defined thanks to System properties like any values in configuration files but also thanks to variables loaded by the <emphasis>PropertyConfigurator</emphasis>. For example in GateIn by default, it would be all the variables defined in the file <emphasis>configuration.properties</emphasis>.
+ </para>
- </note>
- <para>
- To prevent any accesses to a web application corresponding to <envar>PortalContainer</envar> that has been disabled, you need to make sure that the following Http Filter (or a sub class of it) has been added to your web.xml in first position as below:
- </para>
-
+ </note>
+ <para>
+ To prevent any accesses to a web application corresponding to <envar>PortalContainer</envar> that has been disabled, you need to make sure that the following Http Filter (or a sub class of it) has been added to your web.xml in first position as below:
+ </para>
+
<programlisting language="XML" role="XML"><filter>
<filter-name>PortalContainerFilter</filter-name>
<filter-class>org.exoplatform.container.web.PortalContainerFilter</filter-class>
@@ -1551,35 +1551,35 @@
<filter-name>PortalContainerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping></programlisting>
- <note>
- <para>
- It is only possible to disable a portal container when at least one PortalContainerDefinition has been registered.
- </para>
+ <note>
+ <para>
+ It is only possible to disable a portal container when at least one PortalContainerDefinition has been registered.
+ </para>
- </note>
+ </note>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-System_property_configuration">
- <title>System property configuration</title>
- <para>
- A new property configurator service has been developed for taking care of configuring system properties from the inline kernel configuration or from specified property files.
- </para>
- <para>
- The services is scoped at the root container level because it is used by all the services in the different portal containers in the application runtime.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-System_property_configuration-Properties_init_param">
- <title>Properties init param</title>
- <para>
- The properties init param takes a property declared to configure various properties.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-System_property_configuration">
+ <title>System property configuration</title>
+ <para>
+ A new property configurator service has been developed for taking care of configuring system properties from the inline kernel configuration or from specified property files.
+ </para>
+ <para>
+ The services is scoped at the root container level because it is used by all the services in the different portal containers in the application runtime.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-System_property_configuration-Properties_init_param">
+ <title>Properties init param</title>
+ <para>
+ The properties init param takes a property declared to configure various properties.
+ </para>
+
<programlisting language="XML" role="XML"><component>
<key>PropertyManagerConfigurator</key>
<type>org.exoplatform.container.PropertyConfigurator</type>
@@ -1591,14 +1591,14 @@
</init-params>
</component></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-System_property_configuration-Properties_URL_init_param">
- <title>Properties URL init param</title>
- <para>
- The properties URL init param allow to load an external file by specifying its URL. Both property and XML format are supported, see the javadoc of the <emphasis><envar>java.util.Properties</envar></emphasis> class for more information. When a property file is loaded the various property declarations are loaded in the order in which the properties are declared sequentially in the file.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-System_property_configuration-Properties_URL_init_param">
+ <title>Properties URL init param</title>
+ <para>
+ The properties URL init param allow to load an external file by specifying its URL. Both property and XML format are supported, see the javadoc of the <emphasis><envar>java.util.Properties</envar></emphasis> class for more information. When a property file is loaded the various property declarations are loaded in the order in which the properties are declared sequentially in the file.
+ </para>
+
<programlisting language="XML" role="XML"><component>
<key>PropertyManagerConfigurator</key>
<type>org.exoplatform.container.PropertyConfigurator</type>
@@ -1609,105 +1609,105 @@
</value-param>
</init-params>
</component></programlisting>
- <para>
- In the properties file corresponding to the external properties, you can reuse variables before defining to create a new variable. In this case, the prefix "<emphasis>portal.container.</emphasis>" is not needed, see an example below:
+ <para>
+ In the properties file corresponding to the external properties, you can reuse variables before defining to create a new variable. In this case, the prefix "<emphasis>portal.container.</emphasis>" is not needed, see an example below:
<programlisting>my-var1=value 1
my-var2=value 2
complex-value=${my-var1}-${my-var2}</programlisting>
- </para>
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-System_property_configuration-System_Property_configuration_of_the_properties_URL">
- <title>System Property configuration of the properties URL</title>
- <para>
- It is possible to replace the properties URL init param by a system property that overwrites it. The name of that property is <emphasis>exo.properties.url</emphasis>.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-System_property_configuration-System_Property_configuration_of_the_properties_URL">
+ <title>System Property configuration of the properties URL</title>
+ <para>
+ It is possible to replace the properties URL init param by a system property that overwrites it. The name of that property is <emphasis>exo.properties.url</emphasis>.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Variable_Syntaxes">
- <title>Variable Syntaxes</title>
- <para>
- All the variables that we described in the previous sections can be defined thanks to 2 possible syntaxes which are <emphasis>${variable-name}</emphasis> or <emphasis>${variable-name:default-value}</emphasis>. The first syntax doesn't define any default value so if the variable has not be set the value will be <emphasis>${variable-name}</emphasis> to indicate that it could not be resolved. The second syntax allows you to define the default value after the semi colon so if the variable has not be set the value will be the given default value.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Variable_Syntaxes">
+ <title>Variable Syntaxes</title>
+ <para>
+ All the variables that we described in the previous sections can be defined thanks to 2 possible syntaxes which are <emphasis>${variable-name}</emphasis> or <emphasis>${variable-name:default-value}</emphasis>. The first syntax doesn't define any default value so if the variable has not be set the value will be <emphasis>${variable-name}</emphasis> to indicate that it could not be resolved. The second syntax allows you to define the default value after the semi colon so if the variable has not be set the value will be the given default value.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Runtime_configuration_profiles">
- <title>Runtime configuration profiles</title>
- <para>
- The kernel configuration is able to handle configuration profiles at runtime (as opposed to packaging time).
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Runtime_configuration_profiles-Profiles_activation">
- <title>Profiles activation</title>
- <para>
- An active profile list is obtained during the boot of the root container and is composed of the system property <emphasis>exo.profiles</emphasis> sliced according the "," delimiter and also a server specific profile value (tomcat for tomcat, jboss for jboss, etc...).
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Runtime_configuration_profiles">
+ <title>Runtime configuration profiles</title>
+ <para>
+ The kernel configuration is able to handle configuration profiles at runtime (as opposed to packaging time).
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Runtime_configuration_profiles-Profiles_activation">
+ <title>Profiles activation</title>
+ <para>
+ An active profile list is obtained during the boot of the root container and is composed of the system property <emphasis>exo.profiles</emphasis> sliced according the "," delimiter and also a server specific profile value (tomcat for tomcat, jboss for jboss, etc...).
+ </para>
+
<programlisting># runs GateIn on Tomcat with the profiles tomcat and foo
sh gatein.sh -Dexo.profiles=foo
# runs GateIn on JBoss with the profiles jboss, foo and bar
sh run.sh -Dexo.profiles=foo,bar</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Runtime_configuration_profiles-Profiles_configuration">
- <title>Profiles configuration</title>
- <para>
- Profiles are configured in the configuration files of the eXo kernel.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_configuration-Profiles_definition">
- <title>Profiles definition</title>
- <para>
- Profile activation occurs at XML to configuration object unmarshalling time. It is based on an "profile" attribute that is present on some of the XML element of the configuration files. To enable this, the kernel configuration schema has been upgraded to kernel_1_1.xsd. The configuration is based on the following rules:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Any kernel element with the no <emphasis>profiles</emphasis> attribute will create a configuration object
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Runtime_configuration_profiles-Profiles_configuration">
+ <title>Profiles configuration</title>
+ <para>
+ Profiles are configured in the configuration files of the eXo kernel.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_configuration-Profiles_definition">
+ <title>Profiles definition</title>
+ <para>
+ Profile activation occurs at XML to configuration object unmarshalling time. It is based on an "profile" attribute that is present on some of the XML element of the configuration files. To enable this, the kernel configuration schema has been upgraded to kernel_1_2.xsd. The configuration is based on the following rules:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Any kernel element with the no <emphasis>profiles</emphasis> attribute will create a configuration object
+ </para>
- </listitem>
- <listitem>
- <para>
- Any kernel element having a <emphasis>profiles</emphasis> attribute containing at least one of the active profiles will create a configuration object
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Any kernel element having a <emphasis>profiles</emphasis> attribute containing at least one of the active profiles will create a configuration object
+ </para>
- </listitem>
- <listitem>
- <para>
- Any kernel element having a <emphasis>profiles</emphasis> attribute matching none of the active profile will not create a configuration object
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Any kernel element having a <emphasis>profiles</emphasis> attribute matching none of the active profile will not create a configuration object
+ </para>
- </listitem>
- <listitem>
- <para>
- Resolution of duplicates (such as two components with same type) is left up to the kernel
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Resolution of duplicates (such as two components with same type) is left up to the kernel
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_configuration-Profiles_capable_configuration_elements">
- <title>Profiles capable configuration elements</title>
- <para>
- A configuration element is <emphasis>profiles</emphasis> capable when it carries a profiles element.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Component_element">
- <title>Component element</title>
- <para>
- The component element declares a component when activated. It will shadow any element with the same key declared before in the same configuration file:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_configuration-Profiles_capable_configuration_elements">
+ <title>Profiles capable configuration elements</title>
+ <para>
+ A configuration element is <emphasis>profiles</emphasis> capable when it carries a profiles element.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Component_element">
+ <title>Component element</title>
+ <para>
+ The component element declares a component when activated. It will shadow any element with the same key declared before in the same configuration file:
+ </para>
+
<programlisting language="XML" role="XML"><component>
<key>Component</key>
<type>Component</type>
@@ -1718,14 +1718,14 @@
<type>FooComponent</type>
</component></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Component_plugin_element">
- <title>Component plugin element</title>
- <para>
- The component-plugin element is used to dynamically extend the configuration of a given component. Thanks to the profiles the component-plugins could be enabled or disabled:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Component_plugin_element">
+ <title>Component plugin element</title>
+ <para>
+ The component-plugin element is used to dynamically extend the configuration of a given component. Thanks to the profiles the component-plugins could be enabled or disabled:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<target-component>Component</target-component>
<component-plugin profiles="foo">
@@ -1741,26 +1741,26 @@
</component-plugin>
</external-component-plugins></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Import_element">
- <title>Import element</title>
- <para>
- The import element imports a referenced configuration file when activated:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Import_element">
+ <title>Import element</title>
+ <para>
+ The import element imports a referenced configuration file when activated:
+ </para>
+
<programlisting language="XML" role="XML"><import>empty</import>
<import profiles="foo">foo</import>
<import profiles="bar">bar</import></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Init_param_element">
- <title>Init param element</title>
- <para>
- The init param element configures the parameter argument of the construction of a component service:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Init_param_element">
+ <title>Init param element</title>
+ <para>
+ The init param element configures the parameter argument of the construction of a component service:
+ </para>
+
<programlisting language="XML" role="XML"><component>
<key>Component</key>
<type>ComponentImpl</type>
@@ -1780,14 +1780,14 @@
</init-params>
</component></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Value_collection_element">
- <title>Value collection element</title>
- <para>
- The value collection element configures one of the value of collection data:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Value_collection_element">
+ <title>Value collection element</title>
+ <para>
+ The value collection element configures one of the value of collection data:
+ </para>
+
<programlisting language="XML" role="XML"><object type="org.exoplatform.container.configuration.ConfigParam">
<field name="role">
<collection type="java.util.ArrayList">
@@ -1798,14 +1798,14 @@
</field>
</object></programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Field_configuration_element">
- <title>Field configuration element</title>
- <para>
- The field configuration element configures the field of an object:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Profiles_capable_configuration_elements-Field_configuration_element">
+ <title>Field configuration element</title>
+ <para>
+ The field configuration element configures the field of an object:
+ </para>
+
<programlisting language="XML" role="XML"><object-param>
<name>test.configuration</name>
<object type="org.exoplatform.container.configuration.ConfigParam">
@@ -1827,25 +1827,25 @@
</object>
</object-param></programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Component_request_life_cycle">
- <title>Component request life cycle</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Component_request_life_cycle-Component_request_life_cycle_contract">
- <title>Component request life cycle contract</title>
- <para>
- The component request life cycle is an interface that defines a contract for a component for being involved into a request:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Container_Configuration-Component_request_life_cycle">
+ <title>Component request life cycle</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Component_request_life_cycle-Component_request_life_cycle_contract">
+ <title>Component request life cycle contract</title>
+ <para>
+ The component request life cycle is an interface that defines a contract for a component for being involved into a request:
+ </para>
+
<programlisting language="Java" role="Java">public interface ComponentRequestLifecycle
{
/**
@@ -1860,23 +1860,23 @@
*/
void endRequest(ExoContainer container);
}</programlisting>
- <para>
- The container passed is the container to which the component is related. This contract is often used to setup a thread local based context that will be demarcated by a request.
- </para>
- <para>
- For instance in the GateIn portal context, a component request life cycle is triggered for user requests. Another example is the initial data import in GateIn that demarcates using callbacks made to that interface.
- </para>
+ <para>
+ The container passed is the container to which the component is related. This contract is often used to setup a thread local based context that will be demarcated by a request.
+ </para>
+ <para>
+ For instance in the GateIn portal context, a component request life cycle is triggered for user requests. Another example is the initial data import in GateIn that demarcates using callbacks made to that interface.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Component_request_life_cycle-Request_life_cycle">
- <title>Request life cycle</title>
- <para>
- The <envar>RequestLifeCycle</envar> class has several statics methods that are used to schedule the component request life cycle of components. Its main responsibility is to perform scheduling while respecting the constraint to execute the request life cycle of a component only once even if it can be scheduled several times.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Request_life_cycle-Scheduling_a_component_request_life_cycle">
- <title>Scheduling a component request life cycle</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Component_request_life_cycle-Request_life_cycle">
+ <title>Request life cycle</title>
+ <para>
+ The <envar>RequestLifeCycle</envar> class has several statics methods that are used to schedule the component request life cycle of components. Its main responsibility is to perform scheduling while respecting the constraint to execute the request life cycle of a component only once even if it can be scheduled several times.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Request_life_cycle-Scheduling_a_component_request_life_cycle">
+ <title>Scheduling a component request life cycle</title>
+
<programlisting language="Java" role="Java">RequestLifeCycle.begin(component);
try
{
@@ -1887,14 +1887,14 @@
RequestLifeCycle.end();
}</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Request_life_cycle-Scheduling_a_container_request_life_cycle">
- <title>Scheduling a container request life cycle</title>
- <para>
- Scheduling a container triggers the component request life cycle of all the components that implement the interface <envar>ComponentRequestLifeCycle</envar>. If one of the component has already been scheduled before and then that component will not be scheduled again. When the local value is true, then the looked components will be those of the container, when it is false then the scheduler will also look at the components in the ancestor containers.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Request_life_cycle-Scheduling_a_container_request_life_cycle">
+ <title>Scheduling a container request life cycle</title>
+ <para>
+ Scheduling a container triggers the component request life cycle of all the components that implement the interface <envar>ComponentRequestLifeCycle</envar>. If one of the component has already been scheduled before and then that component will not be scheduled again. When the local value is true, then the looked components will be those of the container, when it is false then the scheduler will also look at the components in the ancestor containers.
+ </para>
+
<programlisting language="Java" role="Java">RequestLifeCycle.begin(container, local);
try
{
@@ -1905,35 +1905,35 @@
RequestLifeCycle.end();
}</programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Component_request_life_cycle-When_request_life_cycle_is_triggered">
- <title>When request life cycle is triggered</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-When_request_life_cycle_is_triggered-Portal_request_life_cycle">
- <title>Portal request life cycle</title>
- <para>
- Each portal request triggers the life cycle of the associated portal container.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Component_request_life_cycle-When_request_life_cycle_is_triggered">
+ <title>When request life cycle is triggered</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-When_request_life_cycle_is_triggered-Portal_request_life_cycle">
+ <title>Portal request life cycle</title>
+ <para>
+ Each portal request triggers the life cycle of the associated portal container.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-When_request_life_cycle_is_triggered-JMX_request_Life_Cycle">
- <title>JMX request Life Cycle</title>
- <para>
- When a JMX bean is invoked, the request life cycle of the container to which it belongs it scheduled. Indeed JMX is an entry point of the system that may need component to have a request life cycle triggered.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-When_request_life_cycle_is_triggered-JMX_request_Life_Cycle">
+ <title>JMX request Life Cycle</title>
+ <para>
+ When a JMX bean is invoked, the request life cycle of the container to which it belongs it scheduled. Indeed JMX is an entry point of the system that may need component to have a request life cycle triggered.
+ </para>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/job-scheduler-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/job-scheduler-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/job-scheduler-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -164,8 +164,8 @@
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.scheduler.impl.QuartzSheduler</type>
@@ -393,8 +393,8 @@
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.scheduler.impl.QuartzSheduler</type>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/listener-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/listener-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/listener-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -8,7 +8,7 @@
<section id="sect-Reference_Guide_eXo_JCR_1.14-ListenerService-Asynchronous_Event_Broadcast">
<title>Asynchronous Event Broadcast</title>
<para>
- Basicaly, ListenerService used to store Listeners and broadcast events to them.
+ Basically, ListenerService used to store Listeners and broadcast events to them.
</para>
<para>
ListenerService event broadcasting works in next way - it takes a destination listeners and executes event on those listeners.
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-in-detail.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-in-detail.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-in-detail.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -55,8 +55,8 @@
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<key>com.laverdad.services.ArticleStatsService</key>
<type>com.laverdad.services.ArticleStatsServiceImpl</type>
@@ -64,7 +64,7 @@
</configuration></programlisting>
<note>
<para>
- You are correctly using the namespace of the configuration schema ( <uri>http://www.exoplaform.org/xml/ns/kernel_1_1.xsd</uri>). Most of the configuration schema is explained in this article, therefore you do not need to open and understand the schema. For backward compatibility it is not necessary to declare the schema.
+ You are correctly using the namespace of the configuration schema ( <uri>http://www.exoplaform.org/xml/ns/kernel_1_2.xsd</uri>). Most of the configuration schema is explained in this article, therefore you do not need to open and understand the schema. For backward compatibility it is not necessary to declare the schema.
</para>
<para>
When eXo kernel reads a configuration, it loads the file from the kernel jar using the classloader and does not use an internet connection to resolve the file.
@@ -354,7 +354,7 @@
private String referralMode = "follow";
...</programlisting>
<para>
- You see that the types (String, int) of the fields in the configuration correspond with the bean. A short glance in the kernel_1_0.xsd file let us discover more simple types:
+ You see that the types (String, int) of the fields in the configuration correspond with the bean. A short glance in the kernel_1_2.xsd file let us discover more simple types:
</para>
<itemizedlist>
<listitem>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/transaction-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/transaction-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/transaction-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,90 +4,111 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-TransactionService">
- <title>TransactionService</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-TransactionService-Base_information">
- <title>Base information</title>
- <para>
- TransactionServices provides access to the TransactionManager and the UserTransaction (See JTA specification for details).
- </para>
- <table id="tabl-Reference_Guide_eXo_JCR_1.14-Base_information-List_methods">
- <title>List methods</title>
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>
- getTransactionManager()
- </entry>
- <entry>
- Get used TransactionManager
- </entry>
+ <title>TransactionService</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-TransactionService-Base_information">
+ <title>Base information</title>
+ <para>
+ TransactionServices provides access to the TransactionManager and the UserTransaction (See JTA specification for details).
+ </para>
+ <table id="tabl-Reference_Guide_eXo_JCR_1.14-Base_information-List_methods">
+ <title>List methods</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ getTransactionManager()
+ </entry>
+ <entry>
+ Get used TransactionManager
+ </entry>
- </row>
- <row>
- <entry>
- getUserTransaction()
- </entry>
- <entry>
- Get UserTransaction on TransactionManager
- </entry>
+ </row>
+ <row>
+ <entry>
+ getUserTransaction()
+ </entry>
+ <entry>
+ Get UserTransaction on TransactionManager
+ </entry>
- </row>
- <row>
- <entry>
- getDefaultTimeout()
- </entry>
- <entry>
- Return default TimeOut
- </entry>
+ </row>
+ <row>
+ <entry>
+ getDefaultTimeout()
+ </entry>
+ <entry>
+ Return default TimeOut
+ </entry>
- </row>
- <row>
- <entry>
- setTransactionTimeout(int seconds)
- </entry>
- <entry>
- Set TimeOut in second
- </entry>
+ </row>
+ <row>
+ <entry>
+ setTransactionTimeout(int seconds)
+ </entry>
+ <entry>
+ Set TimeOut in second
+ </entry>
- </row>
- <row>
- <entry>
- enlistResource(XAResource xares)
- </entry>
- <entry>
- Enlist XA resource in TransactionManager
- </entry>
+ </row>
+ <row>
+ <entry>
+ enlistResource(XAResource xares)
+ </entry>
+ <entry>
+ Enlist XA resource in TransactionManager
+ </entry>
- </row>
- <row>
- <entry>
- delistResource(XAResource xares)
- </entry>
- <entry>
- Delist XA resource from TransactionManager
- </entry>
+ </row>
+ <row>
+ <entry>
+ delistResource(XAResource xares)
+ </entry>
+ <entry>
+ Delist XA resource from TransactionManager
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
+ </table>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-TransactionService-Existing_TransactionService_implementations">
- <title>Existing TransactionService implementations</title>
- <para>
- eXo JCR proposes out of the box several implementations, they all implement the abstract class <emphasis>org.exoplatform.services.transaction.impl.AbstractTransactionService</emphasis>. This main class implement the biggest part of all the methods proposed by the <emphasis>TransactionService</emphasis>. For each sub-class of <emphasis>AbstractTransactionService</emphasis>, you can set the transaction timeout by configuration using the value parameter <emphasis>timeout</emphasis> that is expressed in seconds.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Existing_TransactionService_implementations-Generic_TransactionService_based_on_the_TransactionManagerLookup_of_JBoss_Cache">
- <title>Generic TransactionService based on the TransactionManagerLookup of JBoss Cache</title>
- <para>
- If you intend to use JBoss Cache, you can use a generic TransactionService based on its TransactionManagerLookup which is able to automatically find the TransactionManager of several Application Servers thanks to a set of JNDI lookups. This generic TransactionService covers mainly the TransactionManager lookups, the UserTransaction is actually simply the TransactionManager instance that has been wrapped. See below an example of configuration:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-TransactionService-Existing_TransactionService_implementations">
+ <title>Existing TransactionService implementations</title>
+ <para>
+ eXo JCR proposes out of the box several implementations, they all implement the abstract class <emphasis>org.exoplatform.services.transaction.impl.AbstractTransactionService</emphasis>. This main class implement the biggest part of all the methods proposed by the <emphasis>TransactionService</emphasis>. For each sub-class of <emphasis>AbstractTransactionService</emphasis>, you can set the transaction timeout by configuration using the value parameter <emphasis>timeout</emphasis> that is expressed in seconds.
+ </para>
+
+<section>
+ <title>JOTM in standalone mode</title>
+
+ <para>To use JOTM as TransactionManager in standalone mode, simply add
+ the following component configuration:</para>
+
+ <programlisting> <component>
+ <key>org.exoplatform.services.transaction.TransactionService</key>
+ <type>org.exoplatform.services.transaction.impl.jotm.TransactionServiceJotmImpl</type>
+ <!-- Uncomment the lines below if you want to set default transaction timeout that is expressed in seconds -->
+ <!--init-params>
+ <value-param>
+ <name>timeout</name>
+ <value>60</value>
+ </value-param>
+ </init-params-->
+ </component></programlisting>
+ </section>
+
+ <section>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Existing_TransactionService_implementations-Generic_TransactionService_based_on_the_TransactionManagerLookup_of_JBoss_Cache">
+ <title>Generic TransactionService based on the TransactionManagerLookup of JBoss Cache</title>
+ <para>
+ If you intend to use JBoss Cache, you can use a generic TransactionService based on its TransactionManagerLookup which is able to automatically find the TransactionManager of several Application Servers thanks to a set of JNDI lookups. This generic TransactionService covers mainly the TransactionManager lookups, the UserTransaction is actually simply the TransactionManager instance that has been wrapped. See below an example of configuration:
+ </para>
+
<programlisting> <!-- Configuration of the TransactionManagerLookup -->
<component>
<key>org.jboss.cache.transaction.TransactionManagerLookup</key>
@@ -107,14 +128,104 @@
</component>
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Existing_TransactionService_implementations-A_very_specific_TransactionService_for_JBoss_AS">
- <title>A very specific TransactionService for JBoss AS</title>
- <para>
- If you intend to use JBoss AS with JBoss Cache and Infinispan, you can use a very specific TransactionService for JBoss AS. See below an example of configuration:
- </para>
-
+ </section>
+
+ <section>
+ <title>Specific GenericTransactionService for JBoss Cache and
+ Arjuna</title>
+
+ <para>If you intend to use JBoss Cache with Arjuna, you can use a more
+ specific GenericTransactionService, it is mostly interesting in case you
+ want to use the real UserTransaction. See below an example of
+ configuration:</para>
+
+ <programlisting> <!-- Configuration of the TransactionManagerLookup -->
+ <component>
+ <key>org.jboss.cache.transaction.TransactionManagerLookup</key>
+ <type>org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup</type>
+ </component>
+ <!-- Configuration of the TransactionService -->
+ <component>
+ <key>org.exoplatform.services.transaction.TransactionService</key>
+ <type>org.exoplatform.services.transaction.jbosscache.JBossTransactionsService</type>
+ <!-- Uncomment the lines below if you want to set default transaction timeout that is expressed in seconds -->
+ <!--init-params>
+ <value-param>
+ <name>timeout</name>
+ <value>60</value>
+ </value-param>
+ </init-params-->
+ </component></programlisting>
+ </section>
+
+<section>
+ <title>Generic TransactionService based on the TransactionManagerLookup
+ of Infinispan</title>
+
+ <para>If you intend to use Infinispan, you can use a generic
+ TransactionService based on its TransactionManagerLookup which is able
+ to automatically find the TransactionManager of several Application
+ Servers thanks to a set of JNDI lookups. This generic TransactionService
+ covers mainly the TransactionManager lookups, the UserTransaction is
+ actually simply the TransactionManager instance that has been wrapped.
+ See below an example of configuration:</para>
+
+ <programlisting> <!-- Configuration of the TransactionManagerLookup -->
+ <component>
+ <key>org.infinispan.transaction.lookup.TransactionManagerLookup</key>
+ <type>org.infinispan.transaction.lookup.GenericTransactionManagerLookup</type>
+ </component>
+ <!-- Configuration of the TransactionService -->
+ <component>
+ <key>org.exoplatform.services.transaction.TransactionService</key>
+ <type>org.exoplatform.services.transaction.infinispan.GenericTransactionService</type>
+ <!-- Uncomment the lines below if you want to set default transaction timeout that is expressed in seconds -->
+ <!--init-params>
+ <value-param>
+ <name>timeout</name>
+ <value>60</value>
+ </value-param>
+ </init-params-->
+ </component></programlisting>
+ </section>
+
+<section>
+ <title>Specific GenericTransactionService for Infinispan and
+ Arjuna</title>
+
+ <para>If you intend to use Infinispan with Arjuna, you can use a more
+ specific GenericTransactionService, it is mostly interesting in case you
+ want to use the real UserTransaction. See below an example of
+ configuration:</para>
+
+ <programlisting> <!-- Configuration of the TransactionManagerLookup -->
+ <component>
+ <key>org.infinispan.transaction.lookup.TransactionManagerLookup</key>
+ <type>org.exoplatform.services.transaction.infinispan.JBossStandaloneJTAManagerLookup</type>
+ </component>
+ <!-- Configuration of the TransactionService -->
+ <component>
+ <key>org.exoplatform.services.transaction.TransactionService</key>
+ <type>org.exoplatform.services.transaction.infinispan.JBossTransactionsService</type>
+ <!-- Uncomment the lines below if you want to set default transaction timeout that is expressed in seconds -->
+ <!--init-params>
+ <value-param>
+ <name>timeout</name>
+ <value>60</value>
+ </value-param>
+ </init-params-->
+ </component></programlisting>
+ </section>
+
+
+
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Existing_TransactionService_implementations-A_very_specific_TransactionService_for_JBoss_AS">
+ <title>A very specific TransactionService for JBoss AS</title>
+ <para>
+ If you intend to use JBoss AS with JBoss Cache and Infinispan, you can use a very specific TransactionService for JBoss AS. See below an example of configuration:
+ </para>
+
<programlisting> <component>
<key>org.exoplatform.services.transaction.TransactionService</key>
<type>org.exoplatform.services.transaction.impl.jboss.JBossTransactionService</type>
@@ -127,12 +238,10 @@
</init-params-->
</component></programlisting>
- </section>
-
+ </section>
+
- </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/understanding-listnerservice.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/understanding-listnerservice.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/understanding-listnerservice.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -89,7 +89,7 @@
...
}</programlisting>
<para>
- The boadcast() methods retrieve the name of the event and find the registered listeners with the same name and call the method onEvent() on each listener found.
+ The broadcast() methods retrieve the name of the event and find the registered listeners with the same name and call the method onEvent() on each listener found.
</para>
<para>
Each listener is a class that extends org.exoplatform.services.listener.Listener, as you can see below:
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,8 +4,26 @@
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide_eXo_JCR_1.14-eXoKernel">
- <title>eXoKernel</title>
- <!-- <xi:include href="kernel/kernel.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <!-- <xi:include href="kernel/exo-container.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <!-- <xi:include href="kernel/service-configuration-for-beginners.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <!-- <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" /> --> <!-- 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:inclu!
de href="kernel/rpc-service.xml" xmlns:xi="http://www.w3.org/2!
001/XInc
lude" /> -->
+ <title>eXoKernel</title>
+ <xi:include href="kernel/kernel.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="kernel/exo-container.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="kernel/service-configuration-for-beginners.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <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" />
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/framework-for-cross-domain-ajax.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/framework-for-cross-domain-ajax.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/framework-for-cross-domain-ajax.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id="WS.CrossDomainAJAX">
- <?dbhtml filename="ch-framework-for-cross-domain-ajax.html"?>
+<section>
<title>Framework for cross-domain AJAX</title>
@@ -22,7 +21,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/ajax.gif" />
+ <imagedata fileref="images/eXoJCR/ajax.gif" />
</imageobject>
</mediaobject>
@@ -52,7 +51,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/ajax-how-it-works.png" />
+ <imagedata fileref="images/eXoJCR/ajax-how-it-works.png" />
</imageobject>
</mediaobject>
</section>
@@ -92,12 +91,12 @@
<para>3). Declare xda.js in the main page.</para>
- <programlisting language="html"><script type="text/javascript" src="xda.js"></script></programlisting>
+ <programlisting language="HTML" role="HTML"><script type="text/javascript" src="xda.js"></script></programlisting>
<para>4). Create JS function which performs cross domain call as in the
following example:</para>
- <programlisting language="javascript"><script type="text/javascript">
+ <programlisting language="Java" role="Java"><script type="text/javascript">
function test(){
var facade = xdaInit();
facade.clientURI = "http://localhost/cross-domain-ajax/client/client.html";
@@ -115,6 +114,6 @@
<para>5). Use this function (here it is bound to a button's onclick
event).</para>
- <programlisting language="html"><button onclick='test()'>test cross-domain</button></programlisting>
+ <programlisting language="HTML" role="HTML"><button onclick='test()'>test cross-domain</button></programlisting>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/groovy-scripts-as-rest-services.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/groovy-scripts-as-rest-services.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/groovy-scripts-as-rest-services.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id="WS.GroovyScripts">
- <?dbhtml filename="ch-groovy-scripts-as-rest-services.html"?>
+<section>
<title>Groovy Scripts as REST Services</title>
@@ -54,7 +53,7 @@
org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoaderPlugin.
This is simple configuration example.</para>
- <programlisting language="xml"><external-component-plugins>
+ <programlisting language="XML" role="XML"><external-component-plugins>
<target-component>org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader</target-component>
<component-plugin>
<name>test</name>
@@ -124,7 +123,7 @@
source code. It has possibility inject component from Container in Groovy
Class constructor. Configuration example:</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<type>org.exoplatform.services.script.groovy.GroovyScriptInstantiator</type>
</component></programlisting>
</section>
@@ -132,7 +131,7 @@
<section>
<title>Deploying newly created Class as RESTful service</title>
- <para>To deploy script automatically at server statup time, its property
+ <para>To deploy script automatically at server startup time, its property
exo:autoload must be set as true.
org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader
check JCR workspaces which were specified in configuration and deploy all
@@ -140,7 +139,7 @@
<para>Example of configuration.</para>
- <programlisting language="xml"><component>
+ <programlisting language="XML" role="XML"><component>
<type>org.exoplatform.services.jcr.ext.script.groovy.GroovyScript2RestLoader</type>
<init-params>
<object-param>
@@ -173,11 +172,11 @@
previous section, then all "autoload" scripts deployed. In the first
section, we added script from file /home/andrew/JcrGroovyTest.groovy to
JCR node /script/groovy/JcrGroovyTest.groovy, repository repository,
- workspace production. In section "Load script via HTTP", it was refered
+ workspace production. In section "Load script via HTTP", it was referred
about load scripts via HTTP, there is an opportunity to manage the life
cycle of script.</para>
- <para>Undeploy script, which is alredy deployed:</para>
+ <para>Undeploy script, which is already deployed:</para>
<programlisting>andrew@ossl:~> curl -u root:exo \
-X GET \
@@ -208,7 +207,7 @@
-X GET \
http://localhost:8080/rest/script/groovy/autoload/repository/production/s...</programlisting>
- <para>and again more simpe variant:</para>
+ <para>and again more simple variant:</para>
<programlisting>andrew@ossl:~> curl -u root:exo \
-X GET \
@@ -243,12 +242,12 @@
<para>Now we are going to try simple example of Groovy RESTfull service.
There is one limitation, even if we use groovy, we should use Java style
code and decline to use dynamic types, but of course we can use it in
- private methods and feilds. Create file JcrGroovyTest.groovy, in this
+ private methods and fields. Create file JcrGroovyTest.groovy, in this
example I save it in my home directory /home/andrew/JcrGroovyTest.groovy.
Then, configure GroovyScript2RestLoaderPlugin as described in section Load
script at startup time.</para>
- <programlisting language="java">import javax.jcr.Node
+ <programlisting language="Java" role="Java">import javax.jcr.Node
import javax.jcr.Session
import javax.ws.rs.GET
import javax.ws.rs.Path
@@ -289,7 +288,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/groovy-console1.png" />
+ <imagedata fileref="images/eXoJCR/groovy-console1.png" />
</imageobject>
</mediaobject>
@@ -302,13 +301,13 @@
<programlisting>andrew@ossl:~> curl -u root:exo \
http://localhost:8080/rest/groovy/test/repository/production/test</programlisting>
- <para>Whe you try to execute this command, you should have exception,
+ <para>When you try to execute this command, you should have exception,
because JCR node '/test' is not referenceable and has not UUID. We can try
add mixin mix:referenceable. To do this, add one more method in script.
Open script from local source code /home/andrew/JcrGroovyTest.groovy, add
following code and save file.</para>
- <programlisting language="java">@POST
+ <programlisting language="Java" role="Java">@POST
@Path("{path:.*}")
public void addReferenceableMixin(@PathParam("repository") String repository,
@PathParam("workspace") String workspace,
@@ -340,7 +339,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/groovy-console2.png" />
+ <imagedata fileref="images/eXoJCR/groovy-console2.png" />
</imageobject>
</mediaobject>
@@ -351,7 +350,7 @@
-X POST \
http://localhost:8080/rest/groovy/test/repository/production/test</programlisting>
- <para>Method excution should be quiet, without output, traces, etc. Then
+ <para>Method execution should be quiet, without output, traces, etc. Then
we can try again get node UUID.</para>
<programlisting>andrew@ossl:~> curl -u root:exo \
@@ -367,7 +366,7 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/groovy-console3.png" />
+ <imagedata fileref="images/eXoJCR/groovy-console3.png" />
</imageobject>
</mediaobject>
</section>
@@ -383,4 +382,4 @@
<para>That is all.</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/introduction-to-rest.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/introduction-to-rest.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/introduction-to-rest.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id = "WS.Introduction">
- <?dbhtml filename="ch-introduction-to-rest.html"?>
+<section>
<title>Introduction to the Representational State Transfer (REST)</title>
@@ -209,4 +208,4 @@
communication-state between messages. Any state retained by the server
must be modeled as a resource..</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/overwrite-default-providers.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/overwrite-default-providers.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/overwrite-default-providers.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id="WS.OverwriteDefaultProviders">
- <?dbhtml filename="overwrite-default-providers.html"?>
+<section>
<title>OverwriteDefaultProviders</title>
@@ -176,7 +175,7 @@
<para>Create subclass of javax.ws.rs.core.Application with code as bellow
and add it to the eXo Container configuration.</para>
- <programlisting language="java">package org.exoplatform.test.jackson;
+ <programlisting language="Java" role="Java">package org.exoplatform.test.jackson;
import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
@@ -210,4 +209,4 @@
to/from Resource1. But it will not impact to other services in any kind.
</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/restservicelist-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/restservicelist-service.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/restservicelist-service.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,15 +1,14 @@
<?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">
-<chapter id="WS.RestServicesList">
- <?dbhtml filename="ch-ws-restserviceslist-service.html"?>
+<section>
<title>RestServicesList Service</title>
<section>
<title>Overview.</title>
- <para>RestServicesList service is intendet to provide information about
+ <para>RestServicesList service is intended to provide information about
rest services deployed to the application server.</para>
<itemizedlist>
@@ -45,7 +44,7 @@
<para>To get the list of services in HTML format use listHTML()
method:</para>
- <programlisting language="java">@GET
+ <programlisting language="Java" role="Java">@GET
@Produces({MediaType.TEXT_HTML})
public byte[] listHTML()
{
@@ -58,7 +57,7 @@
<para>f.e. curl -u root:exo http://localhost:8080/rest/ will return such
HTML code:</para>
- <programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ <programlisting language="XML" role="XML"><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>eXo JAXRS Implementation</title>
@@ -168,7 +167,7 @@
<para>To get the list of services in HTML format use listJSON()
method:</para>
- <programlisting language="java">@GET
+ <programlisting language="Java" role="Java">@GET
@Produces({MediaType.APPLICATION_JSON})
public RootResourcesList listJSON()
{
@@ -212,4 +211,4 @@
<para></para>
</section>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/ws.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/ws.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws/ws.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?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">
-<chapter id = "WS">
- <?dbhtml filename="ch-ws.html"?>
+<section id="WS.RestFramework">
<title>eXo Web Services</title>
@@ -12,8 +11,8 @@
<para>The Web Services module allows eXo technology to integrate with
external products and services.</para>
- <para>It's implementaion of API for RESTful Web Services with extensions,
+ <para>It's implementation of API for RESTful Web Services with extensions,
Servlet and cross-domain AJAX web-frameworks and JavaBean-JSON
transformer.</para>
</section>
-</chapter>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/ws.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<part>
- <?dbhtml filename="part-ws.html"?>
+<section>
<title>eXoWS</title>
@@ -14,7 +13,7 @@
<xi:include href="ws/overwrite-default-providers.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
-
+
<xi:include href="ws/restservicelist-service.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -24,4 +23,4 @@
<xi:include href="ws/framework-for-cross-domain-ajax.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
-</part>
+</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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,10 +4,14 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide_eXo_JCR_1.14-eXo_JCR">
- <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" /> --> <!-- <xi:include href="eXoJCR/ws.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> --> <xi:include href="eXoJCR/jcr-with-gatein.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="eXoJCR/faq.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <title><remark>eXo JCR</remark>
+ </title>
+ <xi:include href="eXoJCR/jcr.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <!--DOC NOTE, Kernel content ported to Advanced.xml/Advanced/*.xml
+ <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" />
+ <xi:include href="eXoJCR/ws.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="eXoJCR/jcr-with-gatein.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="eXoJCR/faq.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
</chapter>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/LDAP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/LDAP.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/LDAP.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -138,12 +138,13 @@
<colspec colname="6"></colspec>
<colspec colname="7"></colspec>
<colspec colname="8"></colspec>
- <spanspec nameend="8" namest="2" spanname="vspan"></spanspec> <thead>
+ <spanspec nameend="8" namest="2" spanname="vspan"></spanspec>
+ <thead>
<row>
<entry>
Directory Server
</entry>
- <entry spanname="vspan">
+ <entry spanname="vspan">
Value
</entry>
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-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -3,75 +3,90 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-<section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On">
- <title><remark>SSO - Single Sign On</remark>
- </title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-Overview">
- <title>Overview</title>
- <para>
- JBoss Enterprise Portal Platform provides an implementation of Single Sign On (<literal>SSO</literal>) as an integration and aggregation platform.
- </para>
- <para>
- When logging into the portal users can access many systems through portlets using a single identity. In many cases, however, the portal infrastructure must be integrated with other SSO enabled systems.
- </para>
- <para>
- There are many different Identity Management solutions available. In most cases each SSO framework provides a unique way to plug into a Java EE application.
- </para>
- <para>
- This section will cover the implementation of four different SSO plug-ins with JBoss Enterprise Portal Platform:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-CAS_Central_Authentication_Service" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-JOSSO_Java_Open_Single_Sign_On_Project" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-OpenSSO_The_Open_Web_SSO_project" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism" />
- </para>
-
- </listitem>
-
- </itemizedlist>
- <note>
- <title>Prerequisites</title>
- <para>
- In this tutorial, the SSO server is being installed in a Tomcat environment. Tomcat can be obtained from <ulink type="http" url="http://tomcat.apache.org">http://tomcat.apache.org</ulink>.
- </para>
-
- </note>
- <para>
- All the packages required for SSO setup can be found in a zip file located in the <filename>jboss-epp-<replaceable>VERSION</replaceable>/gatein-sso</filename> directory of the JBoss Enterprise Portal Platform binary package.
- </para>
- <para>
- In the following scenarios this directory will be referred to as <replaceable>PORTAL_SSO</replaceable>.
- </para>
- <warning>
- <para>
- Users are advised to not run any portal extensions that could override the data when manipulating the <filename>gatein.ear</filename> file directly.
- </para>
-
- </warning>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-Enabling_SSO_using_JBoss_SSO_Valve">
- <title>Enabling SSO using JBoss SSO Valve</title>
- <!-- Source Metadata
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On">
+ <title><remark>
+ SSO - Single Sign On
+ </remark></title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-Overview">
+ <title>Overview</title>
+
+ <para>
+ JBoss Enterprise Portal Platform provides an implementation of Single Sign On (<literal>SSO</literal>) as an integration and aggregation platform.
+ </para>
+
+ <para>
+ When logging into the portal users can access many systems through portlets using a single identity. In many cases, however, the portal infrastructure must be integrated with other SSO enabled systems.
+ </para>
+
+ <para>
+ There are many different Identity Management solutions available. In most cases each SSO framework provides a unique way to plug into a Java EE application.
+ </para>
+
+ <para>
+ This section will cover the implementation of four different SSO plug-ins with JBoss Enterprise Portal Platform:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-CAS_Central_Authentication_Service" />
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-JOSSO_Java_Open_Single_Sign_On_Project" />
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-OpenSSO_The_Open_Web_SSO_project" />
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism" />
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <title>Prerequisites</title>
+
+ <para>
+ In this tutorial, the SSO server is being installed in a Tomcat environment. Tomcat can be obtained from
+ <ulink type="http" url="http://tomcat.apache.org">
+ http://tomcat.apache.org
+ </ulink>
+ .
+ </para>
+ </note>
+
+ <para>
+ All the packages required for SSO setup can be found in a zip file located in the <filename>jboss-epp-<replaceable>VERSION</replaceable>/gatein-sso</filename> directory of the JBoss Enterprise Portal Platform binary package.
+ </para>
+
+ <para>
+ In the following scenarios this directory will be referred to as <replaceable>PORTAL_SSO</replaceable>.
+ </para>
+
+ <warning>
+ <para>
+ Users are advised to not run any portal extensions that could override the data when manipulating the <filename>gatein.ear</filename> file directly.
+ </para>
+
+ <para>
+ Remove <filename>JBOSS_HOME/server/PROFILE/deploy/gatein-sample-extension.ear</filename> and <filename>JBOSS_HOME/server/PROFILE/deploy/gatein-sample-portal.ear</filename> which are packaged by default with &PRODUCT;.
+ </para>
+ </warning>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-Enabling_SSO_using_JBoss_SSO_Valve">
+ <title>Enabling SSO using JBoss SSO Valve</title>
+<!-- Source Metadata
URL: https://issues.jboss.org/browse/JBQA-4530
Author [w/email]: Marek Posolda (mposolda(a)redhat.com)
@@ -80,119 +95,117 @@
URL: https://issues.jboss.org/browse/JBEPP-615
Author [w/email]: Marek Posolda (mposolda(a)redhat.com)
- --> <para>
- The JBoss SSO valve is useful to authenticate a user on one JBoss Enterprise Portal Platform node in a cluster and have that authentication automatically carry across to other nodes in the cluster.
- </para>
- <para>
- This authentication can also be used in any other web applications which may require authentication, <emphasis role="bold">provided that these applications use same roles as the main portal instance</emphasis>. Attempting to use an SSO authentication in an application that uses different roles may create authorization errors (<emphasis role="bold">403</emphasis> errors, for example).
- </para>
- <para>
- More info about the JBoss SSO valve can be found at <ulink type="http" url="http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Web_Platform/5/html/Ad..." />.
- </para>
- <para>
- To successfully implement SSO integration, do the following:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-SSO_Integration">
- <title>SSO Integration</title>
- <step>
- <para>
- Open the <filename>/<replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/jbossweb.sar/server.xml</filename> file and uncomment one of the two <parameter>Valve</parameter> entries:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- For a <emphasis>non-clustered</emphasis> implementation, uncomment:
- </para>
-
+ -->
+ <para>
+ The JBoss SSO valve is useful to authenticate a user on one JBoss Enterprise Portal Platform node in a cluster and have that authentication automatically carry across to other nodes in the cluster.
+ </para>
+
+ <para>
+ This authentication can also be used in any other web applications which may require authentication, <emphasis role="bold">provided that these applications use same roles as the main portal instance</emphasis>. Attempting to use an SSO authentication in an application that uses different roles may create authorization errors (<emphasis role="bold">403</emphasis> errors, for example).
+ </para>
+
+ <para>
+ More info about the JBoss SSO valve can be found at
+ <ulink type="http" url="http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Web_Platform/5/html/Ad..." />
+ .
+ </para>
+
+ <para>
+ To successfully implement SSO integration, do the following:
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-SSO_Integration">
+ <title>SSO Integration</title>
+
+ <step>
+ <para>
+ Open the <filename>/<replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/jbossweb.sar/server.xml</filename> file and uncomment one of the two <parameter>Valve</parameter> entries:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ For a <emphasis>non-clustered</emphasis> implementation, uncomment:
+ </para>
<programlisting language="XML" role="XML"><Valve className="org.apache.catalina.authenticator.SingleSignOn" />
</programlisting>
-
- </listitem>
- <listitem>
- <para>
- For a <emphasis>clustered</emphasis> implementation, uncomment:
- </para>
-
+ </listitem>
+
+ <listitem>
+ <para>
+ For a <emphasis>clustered</emphasis> implementation, uncomment:
+ </para>
<programlisting language="XML" role="XML"><Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" />
</programlisting>
-
- </listitem>
-
- </itemizedlist>
-
- </step>
- <step>
- <para>
- To integrate with the JBoss SSO valve, follow <emphasis role="bold">one</emphasis> of the procedures below to make the necessary configuration changes in the Java Authentication and Authorization Service (<emphasis role="bold">JAAS</emphasis>):
- </para>
- <itemizedlist>
- <listitem>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SSO_Integration-Call_the_JAAS_authentication_directly">
- <title>Call the JAAS authentication directly</title>
- <step>
- <para>
- Open the <filename>/<replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/login/jsp/login.jsp</filename> file.
- </para>
-
- </step>
- <step>
- <para>
- Change the line that reads:
- </para>
-
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>
+ To integrate with the JBoss SSO valve, follow <emphasis role="bold">one</emphasis> of the procedures below to make the necessary configuration changes in the Java Authentication and Authorization Service (<emphasis role="bold">JAAS</emphasis>):
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SSO_Integration-Call_the_JAAS_authentication_directly">
+ <title>Call the JAAS authentication directly</title>
+
+ <step>
+ <para>
+ Open the <filename>/<replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/login/jsp/login.jsp</filename> file.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Change the line that reads:
+ </para>
<programlisting language="XML" role="XML"><form name="loginForm" action="<%= contextPath + "/login"%>" method="post" style="margin: 0px;">
</programlisting>
- <para>
- to read:
- </para>
-
+ <para>
+ to read:
+ </para>
<programlisting language="XML" role="XML"><form name="loginForm" action="<%= contextPath + "/private/j_security_check"%>" method="post" style="margin: 0px;">
</programlisting>
-
- </step>
- <step>
- <para>
- Change the line that reads:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Change the line that reads:
+ </para>
<programlisting language="XML" role="XML"><td><input class="UserName" name="username" value="<%=username%>"/></td>
</programlisting>
- <para>
- to read:
- </para>
-
+ <para>
+ to read:
+ </para>
<programlisting language="XML" role="XML"><td><input class="UserName" name="j_username" value="<%=username%>"/></td>
</programlisting>
-
- </step>
- <step>
- <para>
- Change the line that reads:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Change the line that reads:
+ </para>
<programlisting language="XML" role="XML"><td><input class="Password" type="password" name="password" value=""/></td>
</programlisting>
- <para>
- to read:
- </para>
-
+ <para>
+ to read:
+ </para>
<programlisting language="XML" role="XML"><td><input class="Password" type="password" name="j_password" value=""/></td>
</programlisting>
-
- </step>
-
- </procedure>
-
-
- </listitem>
- <listitem>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SSO_Integration-Switch_to_BASIC_authentication">
- <title>Switch to <emphasis role="bold">BASIC</emphasis> authentication</title>
- <step>
- <para>
- Change the <parameter>auth-method</parameter> element in <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/web.xml</filename> from <parameter>FORM</parameter> to <parameter>BASIC</parameter>:
- </para>
-
+ </step>
+ </procedure>
+ </listitem>
+
+ <listitem>
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SSO_Integration-Switch_to_BASIC_authentication">
+ <title>Switch to <emphasis role="bold">BASIC</emphasis> authentication</title>
+
+ <step>
+ <para>
+ Change the <parameter>auth-method</parameter> element in <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/web.xml</filename> from <parameter>FORM</parameter> to <parameter>BASIC</parameter>:
+ </para>
<programlisting language="XML" role="XML"><login-config>
<auth-method>BASIC</auth-method>
<realm-name>gatein-domain</realm-name>
@@ -201,377 +214,426 @@
<form-error-page>/errorlogin</form-error-page>
</form-login-config>
</programlisting>
-
- </step>
-
- </procedure>
-
-
- </listitem>
-
- </itemizedlist>
-
- </step>
-
- </procedure>
-
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Testing_the_SSO_Valve">
- <title>Testing the SSO Valve</title>
- <para>
- Once the JBoss SSO Valve has been enabled, it can be tested with the following steps:
- </para>
-
- </formalpara>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Testing_the_SSO_Valve">
- <title>Testing the SSO Valve</title>
- <step>
- <para>
- Copy the <replaceable><PROFILE></replaceable> you enabled the valve in (<literal>all</literal>, for example) into two new profiles called <literal>node1</literal> and <literal>node2</literal>.
- </para>
-
- </step>
- <step>
- <para>
- Run an instance of JBoss Enterprise Portal Platform using the <literal>node1</literal> profile on a local machine:
- </para>
-
+ </step>
+ </procedure>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </procedure>
+
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Testing_the_SSO_Valve">
+ <title>Testing the SSO Valve</title>
+
+ <para>
+ Once the JBoss SSO Valve has been enabled, it can be tested with the following steps:
+ </para>
+ </formalpara>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Testing_the_SSO_Valve">
+ <title>Testing the SSO Valve</title>
+
+ <step>
+ <para>
+ Copy the <replaceable><PROFILE></replaceable> you enabled the valve in (<literal>all</literal>, for example) into two new profiles called <literal>node1</literal> and <literal>node2</literal>.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Run an instance of JBoss Enterprise Portal Platform using the <literal>node1</literal> profile on a local machine:
+ </para>
<programlisting>./run.sh -c node1 -Djboss.service.binding.set=ports-default -Dexo.profiles=cluster -Djboss.messaging.ServerPeerID=0 &
</programlisting>
-
- </step>
- <step>
- <para>
- Start another instance using the <literal>node2</literal> profile:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Start another instance using the <literal>node2</literal> profile:
+ </para>
<programlisting>./run.sh -c node2 -Djboss.service.binding.set=ports-01 -Dexo.profiles=cluster -Djboss.messaging.ServerPeerID=1 &
</programlisting>
-
- </step>
- <step>
- <para>
- Navigate to <ulink type="http" url="http://localhost:8080/portal/private/classic" /> and authenticate with the pre-configured user account "<systemitem>root</systemitem>" (password "<systemitem>gtn</systemitem>").
- </para>
-
- </step>
- <step>
- <para>
- Navigate to <ulink type="http" url="http://localhost:8180/portal/private/classic" />. You should be automatically authenticated as user <systemitem>root</systemitem> on this node as well.
- </para>
-
- </step>
-
- </procedure>
-
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Enabling_SSO_in_a_physical_cluster">
- <title>Enabling SSO in a physical cluster</title>
- <para>
- If you require SSO to work across a physical cluster of separate machines you will need to use the <parameter>cookieDomain</parameter> attribute of the SSO valve.
- </para>
-
- </formalpara>
- <procedure>
- <step>
- <para>
- Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/jbossweb.sar/server.xml</filename> file.
- </para>
-
- </step>
- <step>
- <para>
- Uncomment the line:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Navigate to
+ <ulink type="http" url="http://localhost:8080/portal/private/classic" />
+ and authenticate with the pre-configured user account "
+ <systemitem>
+ root
+ </systemitem>
+ " (password "
+ <systemitem>
+ gtn
+ </systemitem>
+ ").
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Navigate to
+ <ulink type="http" url="http://localhost:8180/portal/private/classic" />
+ . You should be automatically authenticated as user
+ <systemitem>
+ root
+ </systemitem>
+ on this node as well.
+ </para>
+ </step>
+ </procedure>
+
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Enabling_SSO_in_a_physical_cluster">
+ <title>Enabling SSO in a physical cluster</title>
+
+ <para>
+ If you require SSO to work across a physical cluster of separate machines you will need to use the <parameter>cookieDomain</parameter> attribute of the SSO valve.
+ </para>
+ </formalpara>
+
+ <procedure>
+ <step>
+ <para>
+ Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/jbossweb.sar/server.xml</filename> file.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Uncomment the line:
+ </para>
<programlisting language="XML" role="XML"><!--
<Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" />
-->
</programlisting>
-
- </step>
- <step>
- <para>
- And edit it to match the following:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ And edit it to match the following:
+ </para>
<programlisting language="XML" role="XML"><Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" cookieDomain="yourdomain.com" />
</programlisting>
- <para>
- (Where <literal>yourdomain.com</literal> is the domain used in your cluster. For example; <ulink type="http" url="http://machine1.yourdomain.com:8080/portal/private/classic" /> and <ulink type="http" url="http://machine2.yourdomain.com:8080/portal/private/classic" />)
- </para>
-
- </step>
- <step>
- <para>
- Repeat the process in the other nodes in the cluster.
- </para>
-
- </step>
-
- </procedure>
-
- <para>
- This will ensure the <literal>JSESSIONIDSSO</literal> cookie is used in the correct domain, allowing the SSO authentication to occur.
- </para>
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Enabling_SSO_with_Other_Web_Applications">
- <title>Enabling SSO with Other Web Applications</title>
- <para>
- As mentioned earlier, in order to use SSO authentication between JBoss Enterprise Portal Platform instances and other web applications, the roles defined in the web application must match those used in the portal instance.
- </para>
-
- </formalpara>
- <para>
- As an example, to use the SSO Valve to authenticate a user in both a portal instance and the JMX Console, the following actions would be required:
- </para>
- <procedure>
- <title></title>
- <step>
- <para>
- Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/jmx-console.war/WEB-INF/web.xml</filename> file and edit it as follows:
- </para>
- <substeps>
- <step>
- <para>
- Change the <parameter><role-name></parameter> entry in the <parameter><auth-constraint></parameter> element (line <literal>110</literal>) from <literal>JBossAdmin</literal> to <literal>users</literal>:
- </para>
-
+ <para>
+ (Where <literal>yourdomain.com</literal> is the domain used in your cluster. For example;
+ <ulink type="http" url="http://machine1.yourdomain.com:8080/portal/private/classic" />
+ and
+ <ulink type="http" url="http://machine2.yourdomain.com:8080/portal/private/classic" />
+ )
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Repeat the process in the other nodes in the cluster.
+ </para>
+ </step>
+ </procedure>
+
+ <para>
+ This will ensure the <literal>JSESSIONIDSSO</literal> cookie is used in the correct domain, allowing the SSO authentication to occur.
+ </para>
+
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Enabling_SSO_with_Other_Web_Applications">
+ <title>Enabling SSO with Other Web Applications</title>
+
+ <para>
+ As mentioned earlier, in order to use SSO authentication between JBoss Enterprise Portal Platform instances and other web applications, the roles defined in the web application must match those used in the portal instance.
+ </para>
+ </formalpara>
+
+ <para>
+ As an example, to use the SSO Valve to authenticate a user in both a portal instance and the JMX Console, the following actions would be required:
+ </para>
+
+ <procedure>
+ <title></title>
+
+ <step>
+ <para>
+ Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/jmx-console.war/WEB-INF/web.xml</filename> file and edit it as follows:
+ </para>
+
+ <substeps>
+ <step>
+ <para>
+ Change the <parameter><role-name></parameter> entry in the <parameter><auth-constraint></parameter> element (line <literal>110</literal>) from <literal>JBossAdmin</literal> to <literal>users</literal>:
+ </para>
<programlisting language="XML" role="XML"><auth-constraint>
<!--<role-name>JBossAdmin</role-name>-->
<role-name>users</role-name>
</auth-constraint></programlisting>
-
- </step>
- <step>
- <para>
- Change the <parameter><role-name></parameter> entry in the <parameter><security-role></parameter> element (line <literal>120</literal>) from <literal>JBossAdmin</literal> to <literal>users</literal>
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Change the <parameter><role-name></parameter> entry in the <parameter><security-role></parameter> element (line <literal>120</literal>) from <literal>JBossAdmin</literal> to <literal>users</literal>
+ </para>
<programlisting language="XML" role="XML"><security-role>
<!--<role-name>JBossAdmin</role-name>-->
<role-name>users</role-name>
</security-role></programlisting>
-
- </step>
-
- </substeps>
-
- </step>
-
- </procedure>
-
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Testing_SSO_With_Other_Web_Applications">
- <title>Testing SSO With Other Web Applications</title>
- <para>
- To test that SSO authentication is enabled from portal instances to other web applications (in this case, the JMX Console), do the following:
- </para>
-
- </formalpara>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Test_SSO_Between_Portal_and_JMX_Console">
- <title>Test SSO Between Portal and JMX Console</title>
- <step>
- <para>
- Start a portal instance on one node:
- </para>
-
+ </step>
+ </substeps>
+ </step>
+ </procedure>
+
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Testing_SSO_With_Other_Web_Applications">
+ <title>Testing SSO With Other Web Applications</title>
+
+ <para>
+ To test that SSO authentication is enabled from portal instances to other web applications (in this case, the JMX Console), do the following:
+ </para>
+ </formalpara>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Test_SSO_Between_Portal_and_JMX_Console">
+ <title>Test SSO Between Portal and JMX Console</title>
+
+ <step>
+ <para>
+ Start a portal instance on one node:
+ </para>
<programlisting>./run.sh -c node1 -Djboss.service.binding.set=ports-default -Dexo.profiles=cluster -Djboss.messaging.ServerPeerID=0 &
</programlisting>
-
- </step>
- <step>
- <para>
- Navigate to <ulink type="http" url="http://localhost:8080/portal/private/classic" /> and authenticate with the pre-configured user account "<systemitem>root</systemitem>" (password "<systemitem>gtn</systemitem>").
- </para>
-
- </step>
- <step>
- <para>
- Navigate to <ulink type="http" url="http://localhost:8080/jmx-console" />. You should be automatically authenticated into the JMX Console.
- </para>
-
- </step>
-
- </procedure>
-
- <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Using_SSO_to_Authenticate_From_the_Public_Page">
- <title>Using SSO to Authenticate From the Public Page</title>
- <para>
- The previous configuration changes in this section are useful if a user is using a private URL (<ulink type="http" url="http://localhost:8080/portal/private/classic" />, for example) to log in to the portal instance.
- </para>
-
- </formalpara>
- <para>
- Further changes are needed however, if SSO authentication is required to work with the <guilabel>Sign In</guilabel> button on the front page of the portal (<ulink type="http" url="http://localhost:8080/portal/public/classic" />).
- </para>
- <para>
- To enable this functionality, the <guilabel>Sign In</guilabel> link must redirect to the <filename>login.jsp</filename> file edited earlier to call the JAAS authentication directly.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Redirect_to_Use_SSO_Valve_Authentication">
- <title>Redirect to Use SSO Valve Authentication</title>
- <step>
- <para>
- Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file and edit the line:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Navigate to
+ <ulink type="http" url="http://localhost:8080/portal/private/classic" />
+ and authenticate with the pre-configured user account "
+ <systemitem>
+ root
+ </systemitem>
+ " (password "
+ <systemitem>
+ gtn
+ </systemitem>
+ ").
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Navigate to
+ <ulink type="http" url="http://localhost:8080/jmx-console" />
+ . You should be automatically authenticated into the JMX Console.
+ </para>
+ </step>
+ </procedure>
+
+ <formalpara id="form-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Using_SSO_to_Authenticate_From_the_Public_Page">
+ <title>Using SSO to Authenticate From the Public Page</title>
+
+ <para>
+ The previous configuration changes in this section are useful if a user is using a private URL (
+ <ulink type="http" url="http://localhost:8080/portal/private/classic" />
+ , for example) to log in to the portal instance.
+ </para>
+ </formalpara>
+
+ <para>
+ Further changes are needed however, if SSO authentication is required to work with the
+ <guilabel>
+ Sign In
+ </guilabel>
+ button on the front page of the portal (
+ <ulink type="http" url="http://localhost:8080/portal/public/classic" />
+ ).
+ </para>
+
+ <para>
+ To enable this functionality, the
+ <guilabel>
+ Sign In
+ </guilabel>
+ link must redirect to the <filename>login.jsp</filename> file edited earlier to call the JAAS authentication directly.
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-Enabling_SSO_using_JBoss_SSO_Valve-Redirect_to_Use_SSO_Valve_Authentication">
+ <title>Redirect to Use SSO Valve Authentication</title>
+
+ <step>
+ <para>
+ Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file and edit the line:
+ </para>
<programlisting language="Java" role="java"><a class="Login" onclick="$signInAction"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
</programlisting>
- <para>
- To read:
- </para>
-
+ <para>
+ To read:
+ </para>
<programlisting language="Java" role="java"><a class="Login" href="/portal/private/classic"><%=_ctx.appRes("UILoginForm.label.Signin")%></a>
</programlisting>
-
- </step>
- <step>
- <para>
- Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file and change the line:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Open the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file and change the line:
+ </para>
<programlisting language="Java" role="java"><a onclick="$signInAction"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
</programlisting>
- <para>
- To read:
- </para>
-
+ <para>
+ To read:
+ </para>
<programlisting language="Java" role="java"><a href="/portal/private/classic"><%=_ctx.appRes("UILogoPortlet.action.signin")%></a>
</programlisting>
-
- </step>
-
- </procedure>
-
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-CAS_Central_Authentication_Service">
- <title>CAS - Central Authentication Service</title>
- <para>
- This Single Sign On plugin enables seamless integration between JBoss Enterprise Portal Platform and the Central Authentication Service (<emphasis role="bold">CAS</emphasis>) Single Sign On Framework. Details about CAS can be found <ulink url="http://www.ja-sig.org/products/cas/">here</ulink>.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-CAS_server">
- <title>CAS server</title>
- <step>
- <para>
- Set up the server to authenticate against the portal login module.
- </para>
-
- </step>
- <step>
- <para>
- Downloaded CAS from <ulink type="http" url="http://www.jasig.org/cas/download">http://www.jasig.org/cas/download</ulink>.
- </para>
-
- </step>
- <step>
- <para>
- Extract the downloaded file into a suitable location. This location will be referred to as <replaceable>CAS_DIR</replaceable> in the following example.
- </para>
-
- </step>
-
- </procedure>
-
- <para>
- The simplest way to configure the web archive is to make the necessary changes directly into the CAS codebase.
- </para>
- <note>
- <para>
- To perform the final build step and complete these instructions you will need the Apache Maven 2. Download it from <ulink type="http" url="http://maven.apache.org/download.html">here</ulink>.
- </para>
-
- </note>
- <para>
- The CAS Server Plugin makes secure callbacks to a RESTful service installed on the remote JBoss Enterprise Portal Platform server to authenticate a user.
- </para>
- <para>
- In order for the plugin to function correctly, it needs to be properly configured to connect to this service. This configuration is controlled by the <filename>cas.war/WEB-INF/deployerConfigContext.xml </filename> file.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-Modifying_CAS_server">
- <title>Modifying CAS server</title>
- <step>
- <para>
- Open <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp/src/main/webapp/WEB-INF/deployerConfigContext.xml</filename>
- </para>
-
- </step>
- <step>
- <para>
- Replace this code:
- </para>
-
+ </step>
+ </procedure>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-CAS_Central_Authentication_Service">
+ <title>Central Authentication Service</title>
+
+ <para>
+ This Single Sign On plugin enables seamless integration between JBoss Enterprise Portal Platform and the Central Authentication Service (<emphasis role="bold">CAS</emphasis>) Single Sign On Framework. Details about CAS can be found
+ <ulink url="http://www.ja-sig.org/products/cas/">
+ here
+ </ulink>
+ .
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-CAS_server">
+ <title>CAS server</title>
+
+ <step>
+ <para>
+ Set up the server to authenticate against the portal login module.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Downloaded CAS from
+ <ulink type="http" url="http://www.jasig.org/cas/download">
+ http://www.jasig.org/cas/download
+ </ulink>
+ .
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Extract the downloaded file into a suitable location. This location will be referred to as <replaceable>CAS_DIR</replaceable> in the following example.
+ </para>
+ </step>
+ </procedure>
+
+ <para>
+ The simplest way to configure the web archive is to make the necessary changes directly into the CAS codebase.
+ </para>
+
+ <note>
+ <para>
+ To perform the final build step and complete these instructions you will need the Apache Maven 2. Download it from
+ <ulink type="http" url="http://maven.apache.org/download.html">
+ here
+ </ulink>
+ .
+ </para>
+ </note>
+
+ <para>
+ Change the default authentication handler with the one provided by epp.
+ </para>
+
+ <para>
+ The CAS Server Plugin makes secure callbacks to a RESTful service installed on the remote JBoss Enterprise Portal Platform server to authenticate a user.
+ </para>
+
+ <para>
+ In order for the plugin to function correctly, it needs to be properly configured to connect to this service. This configuration is controlled by the <filename>cas.war/WEB-INF/deployerConfigContext.xml </filename> file.
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-Modifying_CAS_server">
+ <title>Modifying CAS server</title>
+
+ <step>
+ <para>
+ Open <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp/src/main/webapp/WEB-INF/deployerConfigContext.xml</filename>
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Replace this code:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default102.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- with:
- </para>
-
+ <para>
+ with the following (ensure you set the host, port and context with the values corresponding to your portal). Also available in <filename>GATEIN_SSO_HOME/cas/plugin/WEB-INF/deployerConfigContext.xml</filename>.):
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default103.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- Make sure to set the <emphasis>host</emphasis>, <emphasis>port</emphasis> and <emphasis>context</emphasis> with the values corresponding to your portal (also available in <filename><replaceable>PORTAL_SSO</replaceable>/cas/plugin/WEB-INF/deployerConfigContext.xml</filename>).
- </para>
-
- </step>
- <step>
- <para>
- Copy <filename><replaceable>PORTAL_SSO</replaceable>/cas/plugin/WEB-INF/lib/sso-cas-plugin-<VERSION>.jar</filename> and <filename><replaceable>PORTAL_SSO</replaceable>/cas/plugin/WEB-INF/lib/commons-httpclient-<VERSION>.jar</filename> into the <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp/src/main/webapp/WEB-INF/lib</filename> created directory.
- </para>
-
- </step>
- <step>
- <para>
- If you have not already done so, download an instance of Tomcat and extract it into a suitable location (which will be called <filename>TOMCAT_HOME</filename> for these instructions).
- </para>
-
- </step>
- <step>
- <para>
- Edit <filename>TOMCAT_HOME/conf/server.xml</filename> and change the 8080 port to 8888 to avoid a conflict with the default JBoss Enterprise Portal Platform .
- </para>
- <note>
- <para>
- If JBoss Enterprise Portal Platform is running on the same machine as Tomcat other ports will need to be changed in addition to 8080 in order to avoid conflicts. They can be changed to any free port. For example; you can change the admin port from 8005 to 8805 and the AJP port from 8009 to 8809.
- </para>
-
- </note>
-
- </step>
- <step>
- <para>
- Navigate locally to the <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp</filename> directory and execute the following command:
- </para>
-
+ <para>
+ Make sure to set the <emphasis>host</emphasis>, <emphasis>port</emphasis> and <emphasis>context</emphasis> with the values corresponding to your portal (also available in <filename><replaceable>PORTAL_SSO</replaceable>/cas/plugin/WEB-INF/deployerConfigContext.xml</filename>).
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Copy <filename><replaceable>PORTAL_SSO</replaceable>/cas/plugin/WEB-INF/lib/sso-cas-plugin-<VERSION>.jar</filename> and <filename><replaceable>PORTAL_SSO</replaceable>/cas/plugin/WEB-INF/lib/commons-httpclient-<VERSION>.jar</filename> into the <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp/src/main/webapp/WEB-INF/lib</filename> created directory.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ If you have not already done so, download an instance of Tomcat and extract it into a suitable location (which will be called <filename>TOMCAT_HOME</filename> for these instructions).
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit <filename>TOMCAT_HOME/conf/server.xml</filename> and change the 8080 port to 8888 to avoid a conflict with the default JBoss Enterprise Portal Platform .
+ </para>
+
+ <note>
+ <para>
+ If JBoss Enterprise Portal Platform is running on the same machine as Tomcat other ports will need to be changed in addition to 8080 in order to avoid conflicts. They can be changed to any free port. For example; you can change the admin port from 8005 to 8805 and the AJP port from 8009 to 8809.
+ </para>
+ </note>
+ </step>
+
+ <step>
+ <para>
+ Navigate locally to the <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp</filename> directory and execute the following command:
+ </para>
<programlisting>mvn install
</programlisting>
-
- </step>
- <step>
- <para>
- Copy the <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp/target/cas.war</filename> file into the <filename>TOMCAT_HOME/webapps</filename> directory.
- </para>
- <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:
+ </step>
+
+ <step>
+ <para>
+ Copy the <filename><replaceable>CAS_DIR</replaceable>/cas-server-webapp/target/cas.war</filename> file into the <filename>TOMCAT_HOME/webapps</filename> directory.
+ </para>
+
+ <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> --> <mediaobject>
- <imageobject>
- <imagedata fileref="images/AuthenticationAndIdentity/SSO/cas.png" format="PNG" scale="100" width="444" />
- </imageobject>
-
- </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>
-
+ </note> -->
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/AuthenticationAndIdentity/SSO/cas.png" format="PNG" scale="100" width="444" />
+ </imageobject>
+ </mediaobject>
+ </step>
+ </procedure>
+<!-- Added in gatein commit r7620 -->
+ <note>
+ <remark>
+ Added in gatein commit r7620
+ </remark>
+
+ <para>
+ 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"
@@ -580,808 +642,1085 @@
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
p:followServiceRedirects="true"/>
</programlisting>
-
- </note>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-Setup_the_CAS_client">
- <title>Setup the CAS client</title>
- <step>
- <para>
- Copy all the libraries from the <filename><replaceable>PORTAL_SSO</replaceable>/cas/gatein.ear/lib</filename> directory into the <filename>JBOSS_HOME/server/default/deploy/gatein.ear/lib</filename>) directory.
- </para>
-
- </step>
- <step>
- <para>
- Edit the <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> and uncomment this section:
- </para>
-
+ </note>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-Setup_the_CAS_client">
+ <title>Setup the CAS client</title>
+
+ <step>
+ <para>
+ Copy all the libraries from the <filename><replaceable>PORTAL_SSO</replaceable>/cas/gatein.ear/lib</filename> directory into the <filename>JBOSS_HOME/server/default/deploy/gatein.ear/lib</filename>) directory.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit the <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> and uncomment this section:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default105.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- There's a line comment already in this source file to assist you.
- </para>
-
- </step>
- <step>
- <para>
- The installation can be tested at this point (assuming the CAS server on Tomcat is running):
- </para>
- <procedure>
- <step>
- <para>
- Start (or restart) JBoss Enterprise Portal Platform and direct your web browser to <ulink type="http" url="http://localhost:8888/cas">http://localhost:8888/cas</ulink>.
- </para>
-
- </step>
- <step>
- <para>
- Login with the username <literal>root</literal> and the password <literal>gtn</literal> (or any other account created through the portal).
- </para>
-
- </step>
-
- </procedure>
-
-
- </step>
-
- </procedure>
-
- <para>
- To utilize the Central Authentication Service, JBoss Enterprise Portal Platform needs to redirect all user authentication to the CAS server.
- </para>
- <para>
- Information about where the CAS is hosted must be properly configured within the JBoss Enterprise Portal Platform instance. The required configuration is done by modifying three files.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-Redirect_to_CAS">
- <title>Redirect to CAS</title>
- <step>
- <para>
- Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file as follows:
- </para>
-
+ <para>
+ There's a line comment already in this source file to assist you.
+ </para>
+
+ <para>
+ In Tomcat, edit <filename>GATEIN_HOME/conf/jaas.conf</filename>, uncomment on this section and comment other parts:
+ </para>
+<programlisting>org.gatein.sso.agent.login.SSOLoginModule required;
+org.exoplatform.services.security.j2ee.TomcatLoginModule required
+portalContainerName=portal
+realmName=gatein-domain;
+</programlisting>
+ </step>
+
+ <step>
+ <para>
+ The installation can be tested at this point (assuming the CAS server on Tomcat is running):
+ </para>
+
+ <procedure>
+ <step>
+ <para>
+ Start (or restart) JBoss Enterprise Portal Platform and direct your web browser to
+ <ulink type="http" url="http://localhost:8888/cas">
+ http://localhost:8888/cas
+ </ulink>
+ .
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Login with the username <literal>root</literal> and the password <literal>gtn</literal> (or any other account created through the portal).
+ </para>
+ </step>
+ </procedure>
+ </step>
+ </procedure>
+
+ <para>
+ To utilize the Central Authentication Service, JBoss Enterprise Portal Platform needs to redirect all user authentication to the CAS server.
+ </para>
+
+ <para>
+ Information about where the CAS is hosted must be properly configured within the JBoss Enterprise Portal Platform instance. The required configuration is done by modifying three files.
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-CAS_Central_Authentication_Service-Redirect_to_CAS">
+ <title>Redirect to CAS</title>
+
+ <step>
+ <para>
+ Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file as follows:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default106.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file as follows:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file as follows:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default107.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Replace the entire contents of <filename>gatein.ear/02portal.war/login/jsp/login.jsp</filename> with:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Replace the entire contents of <filename>gatein.ear/02portal.war/login/jsp/login.jsp</filename> with:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default108.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <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>
-
+ </step>
+
+ <step>
+ <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>
- <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>
-
+ </step>
+
+ <step>
+ <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>
-
- </procedure>
-
- <para>
- Once these changes have been made, all links to the user authentication pages will redirect to the CAS centralized authentication form and CAS can be used as an SSO implementation in your portal.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-JOSSO_Java_Open_Single_Sign_On_Project">
- <title>JOSSO - Java Open Single Sign-On Project</title>
- <para>
- This Single Sign On plugin enables seamless integration between JBoss Enterprise Portal Platform and the Java Open Single Sign-On Project (<emphasis role="bold">JOSSO</emphasis>) Single Sign On Framework. Details about JOSSO can be found at <ulink url="http://www.josso.org">www.josso.org</ulink>.
- </para>
- <para>
- This section details setting up the JOSSO server to authenticate against the JBoss Enterprise Portal Platform login module.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-JOSSO_server">
- <title>JOSSO server</title>
- <step>
- <para>
- Download JOSSO from <ulink type="http" url="http://sourceforge.net/projects/josso/files/">http://sourceforge.net/projects/josso/files/</ulink>.
- </para>
- <note>
- <para>
- Use the package that embeds Apache Tomcat. The integration was tested with JOSSO-1.8.1.
- </para>
-
- </note>
-
- </step>
- <step>
- <para>
- Extract the package into what will be called <filename>JOSSO_HOME</filename> in this example.
- </para>
-
- </step>
-
- </procedure>
-
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-Modifying_JOSSO_server">
- <title>Modifying JOSSO server</title>
- <step>
- <para>
- Copy the files from <filename><replaceable>PORTAL_SSO</replaceable>/josso/plugin</filename> into the <filename>JOSSO_HOME</filename> directory created in the last step.
- </para>
- <para>
- This action should replace or add the following files to the <filename>JOSSO_HOME/webapps/josso/WEB-INF/lib</filename> directory:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <filename>JOSSO_HOME/lib/josso-gateway-config.xml</filename>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <filename>JOSSO_HOME/lib/josso-gateway-gatein-stores.xml</filename>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <filename>JOSSO_HOME/webapps/josso/WEB-INF/classes/gatein.properties</filename>
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </step>
- <step>
- <para>
- Edit <filename>TOMCAT_HOME/conf/server.xml</filename> file and change the 8080 port to 8888 to avoid a conflict with the default JBoss Enterprise Portal Platform port.
- <note>
- <title>Port Conflicts</title>
- <para>
- If JBoss Enterprise Portal Platform is running on the same machine as Tomcat, other ports need to be changed in addition to 8080 in order to avoid port conflicts. They can be changed to any free port. For example, you can change admin port from 8005 to 8805, and AJP port from 8009 to 8809.
- </para>
-
- </note>
-
- </para>
-
- </step>
- <step>
- <para>
- Tomcat should now start and allow access to <ulink type="http" url="http://localhost:8888/josso/signon/login.do">http://localhost:8888/josso/signon/login.do</ulink> but at this stage login will not be available.
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/AuthenticationAndIdentity/SSO/opensso.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
-
- </step>
-
- </procedure>
-
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-Setup_the_JOSSO_client">
- <title>Setup the JOSSO client</title>
- <step>
- <para>
- Copy the library files from <filename><replaceable>PORTAL_SSO</replaceable>/josso/gatein.ear/lib</filename> into <filename>gatein.ear/lib</filename>
- </para>
-
- </step>
- <step>
- <para>
- Copy the <filename><replaceable>PORTAL_SSO</replaceable>/josso/gatein.ear/02portal.war/WEB-INF/classes/josso-agent-config.xml</filename> file into the <filename>gatein.ear/02portal.war/WEB-INF/classes</filename> directory.
- </para>
-
- </step>
- <step>
- <para>
- Edit <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> and uncomment this section:
- </para>
-
+ </step>
+ </procedure>
+
+ <para>
+ Once these changes have been made, all links to the user authentication pages will redirect to the CAS centralized authentication form and CAS can be used as an SSO implementation in your portal.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-JOSSO_Java_Open_Single_Sign_On_Project">
+ <title>Java Open Single Sign-On Project</title>
+
+ <para>
+ This Single Sign On plugin enables seamless integration between JBoss Enterprise Portal Platform and the Java Open Single Sign-On Project (<emphasis role="bold">JOSSO</emphasis>) Single Sign On Framework. Details about JOSSO can be found at
+ <ulink url="http://www.josso.org">
+ www.josso.org
+ </ulink>
+ .
+ </para>
+
+ <para>
+ This section details setting up the JOSSO server to authenticate against the JBoss Enterprise Portal Platform login module.
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-JOSSO_server">
+ <title>JOSSO server</title>
+
+ <step>
+ <para>
+ Download JOSSO from
+ <ulink type="http" url="http://sourceforge.net/projects/josso/files/">
+ http://sourceforge.net/projects/josso/files/
+ </ulink>
+ .
+ </para>
+
+ <note>
+ <para>
+ Use the package that embeds Apache Tomcat. The integration was tested with JOSSO-1.8.1.
+ </para>
+ </note>
+ </step>
+
+ <step>
+ <para>
+ Extract the package into what will be called <filename>JOSSO_HOME</filename> in this example.
+ </para>
+
+ <warning>
+ <title>JOSSO Versions</title>
+
+ <para>
+ The steps described later are only correct in case of JOSSO v.1.8.1.
+ </para>
+ </warning>
+ </step>
+ </procedure>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-Modifying_JOSSO_server">
+ <title>Modifying JOSSO server</title>
+
+ <step>
+ <para>
+ Copy the files from <filename><replaceable>PORTAL_SSO</replaceable>/josso/plugin</filename> into the <filename>JOSSO_HOME</filename> directory created in the last step.
+ </para>
+
+ <para>
+ This action should replace or add the following files to the <filename>JOSSO_HOME/webapps/josso/WEB-INF/lib</filename> directory:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>JOSSO_HOME/lib/josso-gateway-config.xml</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>JOSSO_HOME/lib/josso-gateway-gatein-stores.xml</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>JOSSO_HOME/webapps/josso/WEB-INF/classes/gatein.properties</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>
+ Edit <filename>TOMCAT_HOME/conf/server.xml</filename> file and change the 8080 port to 8888 to avoid a conflict with the default JBoss Enterprise Portal Platform port.
+ <note>
+ <title>Port Conflicts</title>
+
+ <para>
+ If JBoss Enterprise Portal Platform is running on the same machine as Tomcat, other ports need to be changed in addition to 8080 in order to avoid port conflicts. They can be changed to any free port. For example, you can change admin port from 8005 to 8805, and AJP port from 8009 to 8809.
+ </para>
+ </note>
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Tomcat will start and allow access to
+ <ulink type="http" url="http://localhost:8888/josso/signon/login.do">
+ http://localhost:8888/josso/signon/login.do
+ </ulink>
+ but at this stage login will not be available.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/AuthenticationAndIdentity/SSO/opensso.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+ </step>
+ </procedure>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-Setup_the_JOSSO_client">
+ <title>Setup the JOSSO client</title>
+
+ <step>
+ <para>
+ Copy the library files from <filename><replaceable>PORTAL_SSO</replaceable>/josso/gatein.ear/lib</filename> into <filename>gatein.ear/lib</filename>
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Copy the <filename><replaceable>PORTAL_SSO</replaceable>/josso/gatein.ear/02portal.war/WEB-INF/classes/josso-agent-config.xml</filename> file into the <filename>gatein.ear/02portal.war/WEB-INF/classes</filename> directory.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> and uncomment this section:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default111.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- The installation can be tested at this point.
- </para>
- <procedure>
- <step>
- <para>
- Start (or restart) JBoss Enterprise Portal Platform, and (assuming the JOSSO server on Tomcat is running) direct your browser to <ulink type="http" url="http://localhost:8888/josso/signon/login.do">http://localhost:8888/josso/signon/login.do</ulink>.
- </para>
-
- </step>
- <step>
- <para>
- Login with the username <literal>root</literal> and the password <literal>gtn</literal> or any account created through the portal.
- </para>
-
- </step>
-
- </procedure>
-
-
- </step>
-
- </procedure>
-
- <para>
- The next part of the process is to redirect all user authentication to the JOSSO server.
- </para>
- <para>
- Information about where the JOSSO server is hosted must be properly configured within the JBoss Enterprise Portal Platform instance. The required configuration is done by modifying four files:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-Setup_the_portal_to_redirect_to_JOSSO">
- <title>Setup the portal to redirect to JOSSO</title>
- <step>
- <para>
- In the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file modify the 'Sign In' link as follows:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ The installation can be tested at this point.
+ </para>
+
+ <procedure>
+ <step>
+ <para>
+ Start (or restart) JBoss Enterprise Portal Platform, and (assuming the JOSSO server on Tomcat is running) direct your browser to
+ <ulink type="http" url="http://localhost:8888/josso/signon/login.do">
+ http://localhost:8888/josso/signon/login.do
+ </ulink>
+ .
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Login with the username <literal>root</literal> and the password <literal>gtn</literal> or any account created through the portal.
+ </para>
+ </step>
+ </procedure>
+ </step>
+ </procedure>
+
+ <para>
+ The next part of the process is to redirect all user authentication to the JOSSO server.
+ </para>
+
+ <para>
+ Information about where the JOSSO server is hosted must be properly configured within the JBoss Enterprise Portal Platform instance. The required configuration is done by modifying four files:
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-JOSSO_Java_Open_Single_Sign_On_Project-Setup_the_portal_to_redirect_to_JOSSO">
+ <title>Setup the portal to redirect to JOSSO</title>
+
+ <step>
+ <para>
+ In the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file modify the 'Sign In' link as follows:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default112.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename>gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file as follows:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename>gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file as follows:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default113.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Replace the entire contents of <filename>gatein.ear/02portal.war/login/jsp/login.jsp</filename> with:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Replace the entire contents of <filename>gatein.ear/02portal.war/login/jsp/login.jsp</filename> with:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default114.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <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>
-
+ </step>
+
+ <step>
+ <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>
-
+ </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>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default116.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Remove the <literal>PortalLoginController</literal> servlet declaration and mapping in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>
- </para>
-
- </step>
-
- </procedure>
-
- <para>
- From now on, all links redirecting to the user authentication pages will redirect to the JOSSO centralized authentication form.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-OpenSSO_The_Open_Web_SSO_project">
- <title>OpenSSO - The Open Web SSO project</title>
- <para>
- This section details the setting up of OpenSSO server to authenticate against the JBoss Enterprise Portal Platform login module.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Obtaining_OpenSSO">
- <title>Obtaining OpenSSO</title>
- <step>
- <para>
- OpenSSO must be purchased from <ulink type="http" url="http://www.oracle.com/technetwork/middleware/id-mgmt/overview/index.html">Oracle</ulink>.
- </para>
-
- </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> -->
- </procedure>
-
- <para>
- To configure the web server as required, it is simpler to directly modify the source files.
- </para>
- <para>
- The first step is to add the JBoss Enterprise Portal Platform Authentication Plugin.
- </para>
- <para>
- The plugin makes secure callbacks to a RESTful service installed on the remote JBoss Enterprise Portal Platform server to authenticate a user.
- </para>
- <para>
- In order for the plugin to function correctly, it needs to be properly configured to connect to this service. This configuration is done via the <filename>opensso.war/config/auth/default/AuthenticationPlugin.xml</filename> file.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Modifying_OpenSSO_server">
- <title>Modifying OpenSSO server</title>
- <step>
- <para>
- Obtain a copy of Tomcat and extract it into a suitable location. This location will be referred to as <filename>TOMCAT_HOME</filename> in this example.
- </para>
-
- </step>
- <step>
- <para>
- Edit <filename>TOMCAT_HOME/conf/server.xml</filename> and change the 8080 port to 8888 to avoid a conflict with the default JBoss Enterprise Portal Platform port.
- <note>
- <para>
- If JBoss Enterprise Portal Platform is running on the same machine as Tomcat, other ports need to be changed in addition to 8080 in order to avoid port conflicts. They can be changed to any free port. For example, you can change the admin port from 8005 to 8805 and the AJP port from 8009 to 8809.
- </para>
-
- </note>
-
- </para>
-
- </step>
- <step>
- <para>
- Ensure the <filename>TOMCAT_HOME/webapps/opensso/config/auth/default/AuthenticationPlugin.xml</filename> file matches the following:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Remove the <literal>PortalLoginController</literal> servlet declaration and mapping in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>
+ </para>
+ </step>
+ </procedure>
+
+ <para>
+ From now on, all links redirecting to the user authentication pages will redirect to the JOSSO centralized authentication form.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-OpenSSO_The_Open_Web_SSO_project">
+ <title>OpenSSO</title>
+
+ <para>
+ This section details the setting up of OpenSSO server to authenticate against the JBoss Enterprise Portal Platform login module.
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Obtaining_OpenSSO">
+ <title>Obtaining OpenSSO</title>
+
+ <step>
+ <para>
+ OpenSSO must be purchased from
+ <ulink type="http" url="http://www.oracle.com/technetwork/middleware/id-mgmt/overview/index.html">
+ Oracle
+ </ulink>
+ .
+ </para>
+ </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>
+ </procedure>
+
+ <para>
+ To configure the web server as required, it is simpler to directly modify the source files.
+ </para>
+
+ <para>
+ The first step is to add the JBoss Enterprise Portal Platform Authentication Plugin.
+ </para>
+
+ <para>
+ The plugin makes secure callbacks to a RESTful service installed on the remote JBoss Enterprise Portal Platform server to authenticate a user.
+ </para>
+
+ <para>
+ In order for the plugin to function correctly, it needs to be properly configured to connect to this service. This configuration is done via the <filename>opensso.war/config/auth/default/AuthenticationPlugin.xml</filename> file.
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Modifying_OpenSSO_server">
+ <title>Modifying OpenSSO server</title>
+
+ <step>
+ <para>
+ Obtain a copy of Tomcat and extract it into a suitable location. This location will be referred to as <filename>TOMCAT_HOME</filename> in this example.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit <filename>TOMCAT_HOME/conf/server.xml</filename> and change the 8080 port to 8888 to avoid a conflict with the default JBoss Enterprise Portal Platform port.
+ <note>
+ <para>
+ If JBoss Enterprise Portal Platform is running on the same machine as Tomcat, other ports need to be changed in addition to 8080 in order to avoid port conflicts. They can be changed to any free port. For example, you can change the admin port from 8005 to 8805 and the AJP port from 8009 to 8809.
+ </para>
+ </note>
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Ensure the <filename>TOMCAT_HOME/webapps/opensso/config/auth/default/AuthenticationPlugin.xml</filename> file matches the following:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default117.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Copy the following files;
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/lib/sso-opensso-plugin-<VERSION>.jar</filename>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/lib/commons-httpclient-<VERSION>.jar</filename>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/lib/commons-logging-<VERSION>.jar</filename>
- </para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- ...into the Tomcat directory at <filename>TOMCAT_HOME/webapps/opensso/WEB-INF/lib</filename>.
- </para>
-
- </step>
- <step>
- <para>
- Copy the <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/classes/gatein.properties</filename> file into the <filename>TOMCAT_HOME/webapps/opensso/WEB-INF/classes</filename> directory.
- </para>
-
- </step>
- <step>
- <para>
- Tomcat should start and be able to access <ulink type="http" url="http://localhost:8888/opensso/UI/Login?realm=gatein">http://localhost:8888/opensso/UI/Login?realm=gatein</ulink>.
- </para>
- <mediaobject>
- <imageobject role="html">
- <imagedata align="center" fileref="images/AuthenticationAndIdentity/SSO/opensso-shot.png" format="PNG" scale="110" width="444" />
- </imageobject>
- <imageobject role="fo">
- <imagedata align="center" contentwidth="150mm" fileref="images/AuthenticationAndIdentity/SSO/opensso-shot.png" format="PNG" width="444" />
- </imageobject>
-
- </mediaobject>
- <note>
- <para>
- Login will not be available at this point.
- </para>
-
- </note>
-
- </step>
-
- </procedure>
-
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Configure_the_gatein_realm">
- <title>Configure the "gatein" realm</title>
- <step>
- <para>
- Direct your browser to <ulink type="http" url="http://localhost:8888/opensso">http://localhost:8888/opensso</ulink>
- </para>
-
- </step>
- <step>
- <para>
- Create a default configuration.
- </para>
-
- </step>
- <step>
- <para>
- Login as <literal>admin</literal>.
- </para>
- <important>
- <para>
- Go to the "<emphasis role="bold">Configuration</emphasis>" tab then to "<emphasis role="bold">Authentication</emphasis>".
- </para>
- <para>
- Follow the link to "<emphasis role="bold">Core</emphasis>" and add a new value with the class name "<literal>org.gatein.sso.opensso.plugin.AuthenticationPlugin</literal>".
- </para>
- <para>
- If this is not done <literal>AuthenticationPlugin</literal> is not available among other OpenSSO authentication modules.
- </para>
-
- </important>
-
- </step>
- <step>
- <para>
- Go to the "<emphasis role="bold">Access control</emphasis>" tab and create new realm called "<literal>gatein</literal>".
- </para>
-
- </step>
- <step>
- <procedure>
- <step>
- <para>
- Go to the new "<literal>gatein</literal>" realm and click on the "<emphasis role="bold">Authentication</emphasis>" tab.
- </para>
-
- </step>
- <step>
- <para>
- Click on "<emphasis role="bold">ldapService</emphasis>" (at the bottom in the "Authentication chaining" section).
- </para>
-
- </step>
- <step>
- <para>
- Change the selection from "<literal>Datastore</literal>", which is the default module in the authentication chain, to "<literal>AuthenticationPlugin</literal>".
- </para>
-
- </step>
-
- </procedure>
-
- <para>
- These changes enable authentication of the "<literal>gatein</literal>" realm using the <literal>GateIn REST</literal> service instead of the OpenSSO LDAP server.
- </para>
-
- </step>
- <step>
- <para>
- Go to "<emphasis role="bold">Advanced properties</emphasis>" and change <literal>UserProfile</literal> from "<parameter>Required</parameter>" to "<parameter>Dynamic</parameter>" to ensure all new users are automatically created in the OpenSSO datastore after successful authentication.
- </para>
-
- </step>
- <step>
- <para>
- Increase the user privileges to allow REST access with the following procedure:
- </para>
- <procedure>
- <step>
- <para>
- Go to "<emphasis role="bold">Access control</emphasis>", then <emphasis role="bold">Top level realm</emphasis>, then click on the "<emphasis role="bold">Privileges</emphasis>" tab and go to "<emphasis role="bold">All authenticated users</emphasis>".
- </para>
-
- </step>
- <step>
- <para>
- Check the last two checkboxes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Read and write access only for policy properties
- </para>
-
- </listitem>
- <listitem>
- <para>
- Read and write access to all realm and policy properties
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </step>
-
- </procedure>
-
-
- </step>
- <step>
- <para>
- Repeat step 7 for the '<literal>gatein</literal>' realm as well.
- </para>
-
- </step>
-
- </procedure>
-
- <!-- <para>
-TODO: The above OpenSSO manual configuration could be replaced by configuration files prepared in advance
-</para> --> <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Setup_the_OpenSSO_client">
- <title>Setup the OpenSSO client</title>
- <step>
- <para>
- Copy all libraries from the <filename><replaceable>PORTAL_SSO</replaceable>/opensso/gatein.ear/lib</filename> directory into the <filename>JBOSS_HOME/server/default/deploy/gatein.ear/lib</filename> directory.
- </para>
- <para>
- Alternatively, in a Tomcat environment, copy the libraries into the <filename>GATEIN_HOME/lib</filename> directory.
- </para>
-
- </step>
- <step>
- <para>
- Edit the <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> and uncomment this section:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Copy the following files into the Tomcat directory at <filename>TOMCAT_HOME/webapps/opensso/WEB-INF/lib</filename>:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/lib/sso-opensso-plugin-<VERSION>.jar</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/lib/commons-httpclient-<VERSION>.jar</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/lib/commons-logging-<VERSION>.jar</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>
+ Copy the <filename><replaceable>PORTAL_SSO</replaceable>/opensso/plugin/WEB-INF/classes/gatein.properties</filename> file into the <filename>TOMCAT_HOME/webapps/opensso/WEB-INF/classes</filename> directory.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Tomcat should start and be able to access
+ <ulink type="http" url="http://localhost:8888/opensso/UI/Login?realm=gatein">
+ http://localhost:8888/opensso/UI/Login?realm=gatein
+ </ulink>
+ .
+ </para>
+
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata align="center" fileref="images/AuthenticationAndIdentity/SSO/opensso-shot.png" format="PNG" scale="110" width="444" />
+ </imageobject>
+
+ <imageobject role="fo">
+ <imagedata align="center" contentwidth="150mm" fileref="images/AuthenticationAndIdentity/SSO/opensso-shot.png" format="PNG" width="444" />
+ </imageobject>
+ </mediaobject>
+
+ <note>
+ <para>
+ Login will not be available at this point.
+ </para>
+ </note>
+ </step>
+ </procedure>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Configure_the_gatein_realm">
+ <title>Configure the "gatein" realm</title>
+
+ <step>
+ <para>
+ Direct your browser to
+ <ulink type="http" url="http://localhost:8888/opensso">
+ http://localhost:8888/opensso
+ </ulink>
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Create a default configuration.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Login as <literal>admin</literal>.
+ </para>
+
+ <important>
+ <para>
+ Go to the "<emphasis role="bold">Configuration</emphasis>" tab then to "<emphasis role="bold">Authentication</emphasis>".
+ </para>
+
+ <para>
+ Follow the link to "<emphasis role="bold">Core</emphasis>" and add a new value with the class name "<literal>org.gatein.sso.opensso.plugin.AuthenticationPlugin</literal>".
+ </para>
+
+ <para>
+ If this is not done <literal>AuthenticationPlugin</literal> is not available among other OpenSSO authentication modules.
+ </para>
+ </important>
+ </step>
+
+ <step>
+ <para>
+ Go to the "<emphasis role="bold">Access control</emphasis>" tab and create new realm called "<literal>gatein</literal>".
+ </para>
+ </step>
+
+ <step>
+ <substeps>
+ <step>
+ <para>
+ Go to the new "<literal>gatein</literal>" realm and click on the "<emphasis role="bold">Authentication</emphasis>" tab.
+ </para>
+ </step>
+ <step>
+ <para>
+ Click on "<emphasis role="bold">ldapService</emphasis>" (at the bottom in the "Authentication chaining" section).
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Change the selection from "<literal>Datastore</literal>", which is the default module in the authentication chain, to "<literal>AuthenticationPlugin</literal>".
+ </para>
+ </step>
+ </substeps>
+ <para>
+ These changes enable authentication of the "<literal>gatein</literal>" realm using the <literal>GateIn REST</literal> service instead of the OpenSSO LDAP server.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Go to "<emphasis role="bold">Advanced properties</emphasis>" and change <literal>UserProfile</literal> from "<parameter>Required</parameter>" to "<parameter>Dynamic</parameter>" to ensure all new users are automatically created in the OpenSSO datastore after successful authentication.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Increase the user privileges to allow REST access with the following procedure:
+ </para>
+ <substeps>
+ <step>
+ <para>
+ Go to "<emphasis role="bold">Access control</emphasis>", then <emphasis role="bold">Top level realm</emphasis>, then click on the "<emphasis role="bold">Privileges</emphasis>" tab and go to "<emphasis role="bold">All authenticated users</emphasis>".
+ </para>
+ </step>
+ <step>
+ <para>
+ Check the last two checkboxes:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Read and write access only for policy properties
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Read and write access to all realm and policy properties
+ </para>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </substeps>
+ </step>
+
+ <step>
+ <para>
+ Repeat step 7 for the '<literal>gatein</literal>' realm as well.
+ </para>
+ </step>
+ </procedure>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Setup_the_OpenSSO_client">
+ <title>Setup the OpenSSO client</title>
+
+ <step>
+ <para>
+ Copy all libraries from the <filename><replaceable>PORTAL_SSO</replaceable>/opensso/gatein.ear/lib</filename> directory into the <filename>JBOSS_HOME/server/default/deploy/gatein.ear/lib</filename> directory.
+ </para>
+
+ <para>
+ Alternatively, in a Tomcat environment, copy the libraries into the <filename>GATEIN_HOME/lib</filename> directory.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit the <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> and uncomment this section:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default118.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Test the installation:
- </para>
- <procedure>
- <step>
- <para>
- Access JBoss Enterprise Portal Platform by going to <ulink type="http" url="http://localhost:8888/opensso/UI/Login?realm=gatein">http://localhost:8888/opensso/UI/Login?realm=gatein</ulink> (assuming that the OpenSSO server using Tomcat is still running).
- </para>
-
- </step>
- <step>
- <para>
- Login with the username <literal>root</literal> and the password <literal>gtn</literal> or any account created through the portal.
- </para>
-
- </step>
-
- </procedure>
-
-
- </step>
-
- </procedure>
-
- <para>
- The next part of the process is to redirect all user authentication to the OpenSSO server.
- </para>
- <para>
- Information about where the OpenSSO server is hosted must be properly configured within the Enterprise Portal Platform instance. The required configuration is done by modifying three files:
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Setup_the_portal_to_redirect_to_OpenSSO">
- <title>Setup the portal to redirect to OpenSSO</title>
- <step>
- <para>
- Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file as follows:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ If you are running &PRODUCT; in Tomcat, edit $GATEIN_HOME/conf/jaas.conf, uncomment on this section and comment other parts:
+ </para>
+<programlisting>org.gatein.sso.agent.login.SSOLoginModule required;
+org.exoplatform.services.security.j2ee.TomcatLoginModule required
+portalContainerName=portal
+realmName=gatein-domain;
+</programlisting>
+ </step>
+
+ <step>
+ <para>
+ Test the installation:
+ </para>
+
+ <procedure>
+ <step>
+ <para>
+ Access JBoss Enterprise Portal Platform by going to
+ <ulink type="http" url="http://localhost:8888/opensso/UI/Login?realm=gatein">
+ http://localhost:8888/opensso/UI/Login?realm=gatein
+ </ulink>
+ (assuming that the OpenSSO server using Tomcat is still running).
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Login with the username <literal>root</literal> and the password <literal>gtn</literal> or any account created through the portal.
+ </para>
+ </step>
+ </procedure>
+ </step>
+ </procedure>
+
+ <para>
+ The next part of the process is to redirect all user authentication to the OpenSSO server.
+ </para>
+
+ <para>
+ Information about where the OpenSSO server is hosted must be properly configured within the Enterprise Portal Platform instance. The required configuration is done by modifying three files:
+ </para>
+
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-OpenSSO_The_Open_Web_SSO_project-Setup_the_portal_to_redirect_to_OpenSSO">
+ <title>Setup the portal to redirect to OpenSSO</title>
+
+ <step>
+ <para>
+ Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtml</filename> file as follows:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default119.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename>gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file as follows:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Modify the '<emphasis role="bold">Sign In</emphasis>' link in the <filename>gatein.ear/web.war/groovy/portal/webui/component/UILogoPortlet.gtmpl</filename> file as follows:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default120.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Replace the entire contents of <filename>gatein.ear/02portal.war/login/jsp/login.jsp</filename> with:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Replace the entire contents of <filename>gatein.ear/02portal.war/login/jsp/login.jsp</filename> with:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default121.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <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>
-
+ </step>
+
+ <step>
+ <para>
+ Add the following Filters to the top of the filter chain in <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename>:
+ </para>
<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>
-
+ </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>
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default123.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- </step>
-
- </procedure>
-
- <para>
- From now on, all links redirecting to the user authentication pages will redirect to the OpenSSO centralized authentication form.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism">
- <title>SPNEGO - Simple and Protected GSSAPI Negotiation Mechanism</title>
- <para>
- The Simple and Protected GSSAPI Negotiation Mechanism (<emphasis role="bold">SPNEGO</emphasis>) uses desktop credentials provided during a desktop login to transparently authenticate a portal user through a web browser.
- </para>
- <para>
- For illustrative purposes; a typical use case would be:
- </para>
- <procedure>
- <step>
- <para>
- A user logs into their desktop computer with a login that is governed by an Active Directory domain.
- </para>
-
- </step>
- <step>
- <para>
- The user then launches a web browser to access a web application (that uses JBoss Negotiation) hosted on JBoss Enterprise Portal Platform.
- </para>
-
- </step>
- <step>
- <para>
- The browser transfers the desktop credentials to the web application.
- </para>
-
- </step>
- <step>
- <para>
- JBoss EAP/AS uses background GSS messages with the Active Directory (or any Kerberos Server) to validate the user.
- </para>
-
- </step>
- <step>
- <para>
- The user experiences a seamless single sign on (SSO) into the web application.
- </para>
-
- </step>
-
- </procedure>
-
- <para>
- JBoss Enterprise Portal Platform uses JBoss Negotiation to enable SPNEGO-based desktop SSO.
- </para>
- <para>
- The following procedure outlines how to integrate SPNEGO with the JBoss Enterprise Portal Platform.
- </para>
- <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism-SPNEGO_Configuration">
- <title>SPNEGO Configuration</title>
- <step>
- <para>
- Activate the Host authentication. Add the following host login module to the <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/conf/login-config.xml</filename>:
- </para>
-
+ </step>-->
+ </procedure>
+
+ <para>
+ From now on, all links redirecting to the user authentication pages will redirect to the OpenSSO centralized authentication form.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-SSO_Single_Sign_On-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism">
+ <title>SPNEGO - Simple and Protected GSSAPI Negotiation Mechanism</title>
+
+ <para>
+ The Simple and Protected GSSAPI Negotiation Mechanism (<emphasis role="bold">SPNEGO</emphasis>) uses desktop credentials provided during a desktop login to transparently authenticate a portal user through a web browser.
+ </para>
+
+ <para>
+ For illustrative purposes; a typical use case would be:
+ </para>
+
+ <procedure>
+ <step>
+ <para>
+ A user logs into their desktop computer with a login that is governed by an Active Directory domain.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ The user then launches a web browser to access a web application (that uses JBoss Negotiation) hosted on JBoss Enterprise Portal Platform.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ The browser transfers the desktop credentials to the web application.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ JBoss EAP/AS uses background GSS messages with the Active Directory (or any Kerberos Server) to validate the user.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ The user experiences a seamless single sign on (SSO) into the web application.
+ </para>
+ </step>
+ </procedure>
+
+ <para>
+ JBoss Enterprise Portal Platform uses JBoss Negotiation to enable SPNEGO-based desktop SSO.
+ </para>
+
+ <para>
+ The following procedure outlines how to integrate SPNEGO with the JBoss Enterprise Portal Platform.
+ </para>
+ <note>
+ <title>SPNEGO Basics</title>
+ <para>
+ The procedure below only describes the basic steps to configure the SPNEGO server. If you are already familiar with SPNEGO, you can jump to the
+ <xref linkend="proc-Reference_Guide_eXo_JCR_1.14-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism-Advanced_SPNEGO_Configuration" />
+ to see how to integrate SPNEGO with JBoss Enterprise Portal Platform.
+ </para>
+ </note>
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism-SPNEGO_Basics">
+ <title>SPNEGO Basics</title>
+ <step>
+ <para>
+ Correct the setup of network on the machine. For example, if you are using the "server.local.network" domain as your machine where Kerberos and &PRODUCT; are localed, add the line containing the machine's IP address to the <emphasis role="bold">/etc/host </emphasis> file.
+ </para>
+<programlisting>
+192.168.1.88 server.local.network
+ </programlisting>
+ <note>
+ <para>
+ It is not recommended you use loopback addresses.
+ </para>
+ </note>
+ </step>
+
+ <step>
+ <para>
+ Install Kerberos with these packages: krb5-admin-server, krb5-kdc, krb5-config, krb5-user, krb5-clients, and krb5-rsh-server.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit the Kerberos configuration file at <emphasis role="bold">/etc/krb5.config</emphasis>, including:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Uncomment on these lines:
+ </para>
+<programlisting>
+default_tgs_enctypes = des3-hmac-sha1
+default_tkt_enctypes = des3-hmac-sha1
+permitted_enctypes = des3-hmac-sha1
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add <emphasis role="bold">local.network</emphasis> as a default realm and it is also added to the list of realms and remove the remains of realms. The content looks like:
+ </para>
+<programlisting>
+[libdefaults]
+ default_realm = LOCAL.NETWORK
+
+# The following krb5.conf variables are only for MIT Kerberos.
+ krb4_config = /etc/krb.conf
+ krb4_realms = /etc/krb.realms
+ kdc_timesync = 1
+ ccache_type = 4
+ forwardable = true
+ proxiable = true
+
+# The following encryption type specification will be used by MIT Kerberos
+# if uncommented. In general, the defaults in the MIT Kerberos code are
+# correct and overriding these specifications only serves to disable new
+# encryption types as they are added, creating interoperability problems.
+#
+# Thie only time when you might need to uncomment these lines and change
+# the enctypes is if you have local software that will break on ticket
+# caches containing ticket encryption types it doesn't know about (such as
+# old versions of Sun Java).
+
+ default_tgs_enctypes = des3-hmac-sha1
+ default_tkt_enctypes = des3-hmac-sha1
+ permitted_enctypes = des3-hmac-sha1
+
+# The following libdefaults parameters are only for Heimdal Kerberos.
+ v4_instance_resolve = false
+ v4_name_convert = {
+ host = {
+ rcmd = host
+ ftp = ftp
+ }
+ plain = {
+ something = something-else
+ }
+ }
+ fcc-mit-ticketflags = true
+
+[realms]
+ LOCAL.NETWORK = {
+ kdc = server.local.network
+ admin_server = server.local.network
+ }
+
+[domain_realm]
+ .local.network = LOCAL.NETWORK
+ local.network = LOCAL.NETWORK
+
+[login]
+ krb4_convert = true
+ krb4_get_tickets = false
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>
+ Edit the KDC configuraton file at <emphasis role="bold">/etc/krb5kdc/kdc.conf</emphasis> that looks like.
+ </para>
+<programlisting>
+[kdcdefaults]
+ kdc_ports = 750,88
+
+[realms]
+ LOCAL.NETWORK = {
+ database_name = /home/gatein/krb5kdc/principal
+ admin_keytab = FILE:/home/gatein/krb5kdc/kadm5.keytab
+ acl_file = /home/gatein/krb5kdc/kadm5.acl
+ key_stash_file = /home/gatein/krb5kdc/stash
+ kdc_ports = 750,88
+ max_life = 10h 0m 0s
+ max_renewable_life = 7d 0h 0m 0s
+ master_key_type = des3-hmac-sha1
+ supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
+ default_principal_flags = +preauth
+ }
+
+[logging]
+ kdc = FILE:/home/gatein/krb5logs/kdc.log
+ admin_server = FILE:/home/gatein/krb5logs/kadmin.log
+</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Create krb5kdc and krb5logs directory for Kerberos database as shown in the configuration file above.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Next, create a KDC database using the following command.
+ </para>
+<programlisting>
+sudo krb5_newrealm
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start the KDC and Kerberos admin servers using these commands:
+ </para>
+<programlisting>
+sudo /etc/init.d/krb5-kdc restart
+sudo /etc/init.d/krb-admin-server restart
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>
+ Add Principals and create Keys.
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Start an interactive 'kadmin' session and create the necessary Principals.
+ </para>
+<programlisting>
+sudo kadmin.local
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add the JBoss Enterprise Portal Platform machine and keytab file that need to be authenticated.
+ </para>
+<programlisting>
+addprinc -randkey HTTP/server.local.network(a)LOCAL.NETWORK
+ktadd HTTP/server.local.network(a)LOCAL.NETWORK
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Add the default JBoss Enterprise Portal Platform user accounts and enter the password for each created user that will be authenticated.
+ </para>
+<programlisting>
+addprinc john
+addprinc demo
+addprinc root
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>
+ Test your changed setup by using the command.
+ </para>
+<programlisting>
+kinit -A demo
+</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If the setup works well, you are required to enter the password created for this user in Step 5.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you want to login with another user, use this command.
+ </para>
+<programlisting>
+kdestroy
+</programlisting>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </procedure>
+ <procedure id="proc-Reference_Guide_eXo_JCR_1.14-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism-Advanced_SPNEGO_Configuration">
+ <title>Advanced SPNEGO Configuration</title>
+ <step>
+ <para>
+ Activate the Host authentication. Add the following host login module to the <filename>jboss-as/server/<replaceable>PROFILE</replaceable>/conf/login-config.xml</filename>:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default124.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The '<literal>keyTab</literal>' value should point to the keytab file that was generated by the <literal>kadmin</literal> Kerberos tool. See the <ulink type="http" url="http://community.jboss.org/wiki/SettingupyourKerberosDevelopmentEnvironment">Setting up your Kerberos Development Environment</ulink> guide for more details.
- </para>
-
- </step>
- <step>
- <para>
- Extend the core authentication mechanisms to support SPNEGO. Under <filename>deployers/jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml</filename>, add a '<literal>SPNEGO</literal>' authenticators property
- </para>
-
+ <para>
+ The '<literal>keyTab</literal>' value should point to the keytab file that was generated by the <literal>kadmin</literal> Kerberos tool. See the
+ <xref linkend="proc-Reference_Guide_eXo_JCR_1.14-SPNEGO_Simple_and_Protected_GSSAPI_Negotiation_Mechanism-SPNEGO_Basics"/> for more details.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Extend the core authentication mechanisms to support SPNEGO. Under <filename>deployers/jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml</filename>, add a '<literal>SPNEGO</literal>' authenticators property
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default125.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Add the Gatein SSO module binaries by adding <filename><replaceable>PORTAL_SSO</replaceable>/spnego/gatein.ear/lib/sso-agent.jar</filename> and <filename><replaceable>PORTAL_SSO</replaceable>/spnego/gatein.ear/lib/spnego-<replaceable>VERSION</replaceable>-epp-GA.jar</filename> to <filename>deploy/gatein.ear/lib</filename>.
- </para>
-
- </step>
- <step>
- <para>
- Modifying <filename>deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> to match the following:
- </para>
-
+ </step>
+
+ <step>
+ <para>
+ Add the Gatein SSO module binaries by adding <filename><replaceable>PORTAL_SSO</replaceable>/spnego/gatein.ear/lib/sso-agent.jar</filename> and <filename><replaceable>PORTAL_SSO</replaceable>/spnego/gatein.ear/lib/spnego-<replaceable>VERSION</replaceable>-epp-GA.jar</filename> to <filename>deploy/gatein.ear/lib</filename>.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Modifying <filename>deploy/gatein.ear/META-INF/gatein-jboss-beans.xml</filename> to match the following:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default126.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This activates the SPNEGO <literal>LoginModule</literal> for use with JBoss Enterprise Portal Platform.
- </para>
-
- </step>
- <step>
- <para>
- Modify <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename> to match:
- </para>
-
+ <para>
+ This activates the SPNEGO <literal>LoginModule</literal> for use with JBoss Enterprise Portal Platform.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Modify <filename>gatein.ear/02portal.war/WEB-INF/web.xml</filename> to match:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default127.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This integrates SPNEGO support into the Portal web archive by switching authentication mechanism from the default "<literal>FORM</literal>"-based to "<literal>SPNEGO</literal>"-based authentication.
- </para>
-
- </step>
- <step>
- <para>
- Add the following filters to the top of the Filter chain in the <filename>web.xml</filename> file:
- </para>
-
+ <para>
+ This integrates SPNEGO support into the Portal web archive by switching authentication mechanism from the default "<literal>FORM</literal>"-based to "<literal>SPNEGO</literal>"-based authentication.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Add the following filters to the top of the Filter chain in the <filename>web.xml</filename> file:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_SSO/default128.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This integrates request pre-processing needed for SPNEGO.
- </para>
-
- </step>
- <step>
- <para>
- Edit the '<emphasis role="bold">Sign In</emphasis>' link in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtmpl</filename> to match the following:
- </para>
-
+ <para>
+ This integrates request pre-processing needed for SPNEGO.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Edit the '<emphasis role="bold">Sign In</emphasis>' link in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/web.war/groovy/groovy/webui/component/UIBannerPortlet.gtmpl</filename> to match the following:
+ </para>
<programlisting language="Java" role="Java"><xi:include href="../../extras/Authentication_Identity_SSO/default129.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- This modifies the Portal's '<emphasis role="bold">Sign In</emphasis>' link to perform SPNEGO authentication.
- </para>
-
- </step>
- <step>
- <para>
- Start the JBoss Enterprise Portal Platform;
- </para>
-
+ <para>
+ This modifies the Portal's '<emphasis role="bold">Sign In</emphasis>' link to perform SPNEGO authentication.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Start the JBoss Enterprise Portal Platform;
+ </para>
<programlisting language="Java" role="Java"><xi:include href="../../extras/Authentication_Identity_SSO/default130.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The <replaceable>PROFILE</replaceable> parameter in the above command should be replaced with the server profile modified with the above configuration.
- </para>
-
- </step>
- <step>
- <para>
- Login to Kerberos:
- </para>
-
+ <para>
+ The <replaceable>PROFILE</replaceable> parameter in the above command should be replaced with the server profile modified with the above configuration.
+ </para>
+ </step>
+
+ <step>
+ <para>
+ Login to Kerberos:
+ </para>
<programlisting>kinit -A demo
</programlisting>
-
- </step>
-
- </procedure>
-
- <para>
- Clicking the 'Sign In' link on the JBoss Enterprise Portal Platform should automatically sign the 'demo' user into the portal.
- </para>
-
- </section>
-
-
-</section>
-
-
+ </step>
+ </procedure>
+
+ <para>
+ Clicking the 'Sign In' link on the JBoss Enterprise Portal Platform should automatically sign the 'demo' user into the portal.
+ </para>
+ </section>
+
+ <section>
+ <title>Clients</title>
+ <para>After performing all configurations above, you need to enable the <emphasis role="bold">Negotiate authentication </emphasis> of Firefox in clients so that clients can be authenticated by JBoss Enterprise Portal Platform as follows:
+ </para>
+ <procedure>
+ <step>
+ <para>
+ Start Firefox, then enter the command: <emphasis role="bold">about:config </emphasis> into the address field.
+ </para>
+ </step>
+ <step>
+ <para>
+ Enter <emphasis role="bold">network.negotiate-auth</emphasis> and set the value as below:
+ </para>
+<programlisting>
+network.negotiate-auth.allow-proxies = true
+network.negotiate-auth.delegation-uris = .local.network
+network.negotiate-auth.gsslib (no-value)
+network.negotiate-auth.trusted-uris = .local.network
+network.negotiate-auth.using-native-gsslib = true
+</programlisting>
+ </step>
+ </procedure>
+ </section>
+ </section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -3,75 +3,110 @@
<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-<section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration">
- <title>Advanced Gadget Administration</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration-Virtual_servers_for_gadget_rendering">
- <title>Virtual servers for gadget rendering</title>
- <para>
- JBoss Enterprise Portal Platform recommends using two virtual hosts for security. If the gadget is running on a different domain than the container, it is unable to interfere with the portal by modifying code or cookies.
- </para>
- <para>
- An example would be hosting the portal from <emphasis role="bold">http://www.sample.com</emphasis> and the gadgets from <emphasis role="bold">http://www.samplemodules.com</emphasis>.
- </para>
- <para>
- To do this, configure the <emphasis>gadgets.hostName</emphasis>parameter in the <filename>server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/portal/application-registry-configuration.xml</filename>file. The value is the <emphasis role="bold">path/to/gadgetServer</emphasis>in <literal>GadgetRegistryService.xml</literal>:
- </para>
-
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration">
+ <title>Advanced Gadget Administration</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration-Virtual_servers_for_gadget_rendering">
+ <title>Virtual servers for gadget rendering</title>
+
+ <para>
+ JBoss Enterprise Portal Platform recommends using two virtual hosts for security. If the gadget is running on a different domain than the container, it is unable to interfere with the portal by modifying code or cookies.
+ </para>
+
+ <para>
+ An example would be hosting the portal from <emphasis role="bold">http://www.sample.com</emphasis> and the gadgets from <emphasis role="bold">http://www.samplemodules.com</emphasis>.
+ </para>
+
+ <para>
+ To do this, configure the <emphasis>gadgets.hostName</emphasis>parameter in the <filename>server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/portal/application-registry-configuration.xml</filename>file. The value is the <emphasis role="bold">path/to/gadgetServer</emphasis>in <literal>GadgetRegistryService.xml</literal>:
+ </para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Gadget_Development_SetupGadgetServer/default139.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" />
</programlisting>
- <para>
- It is also possible to have multiple rendering servers. This helps to balance the rendering load across multiple servers.
- </para>
- <para>
- When deploying on the same server ensure the gadget initiates before anything that calls it (for example; the webapp <literal>eXoGadgets</literal>which uses <literal>org.exoplatform.application.gadget.GadgetRegister</literal>).
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration-Configuration">
- <title>Configuration</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Security_key">
- <title>Security key</title>
- <para>
- A specific file called <emphasis role="bold">key.txt</emphasis>has to be generated for each installation of JBoss Enterprise Portal Platform to be secure. This file contains a secret key used to encrypt the security token used for authenticating the user.
- </para>
- <para>
- In Linux systems this file can be generated with:
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Gadget_Development_SetupGadgetServer/default140.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <para>
+ It is also possible to have multiple rendering servers. This helps to balance the rendering load across multiple servers.
+ </para>
+
+ <para>
+ When deploying on the same server, ensure the gadget initiates before anything that calls it (for example; the webapp <literal>eXoGadgets</literal>which uses <literal>org.exoplatform.application.gadget.GadgetRegister</literal>).
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration-Configuration">
+ <title>Configuration</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Security_key">
+ <title>Security key</title>
+
+ <para>
+ In JBoss Enterprise Portal Platform, the gadget container uses three security files for authentication and authorization of gadgets:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>key.txt</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>oauthkey.pem</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>oauthkey_pub.pem</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ By default, they are located in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/conf/gatein/gadgets</filename> directory are configured by system variables in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><JBOSS_HOME></replaceable>/conf/gatein/configuration.properties</filename> file.
+ </para>
+
+ <para>
+ If you use other security files you must change the variables below to reference them:
+ </para>
+<programlisting>
+gatein.gadgets.securitytokenkeyfile=${gatein.conf.dir}/gadgets/key.txt
+gatein.gadgets.signingkeyfile=${gatein.conf.dir}/gadgets/oauthkey.pem
</programlisting>
- <para>
- This <filename>key.txt</filename>file should be placed in the <filename>/conf/gatein/gadgets</filename>folder of your profile.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Gadget_proxy_and_concat_configuration">
- <title>Gadget proxy and concat configuration</title>
- <para>
- These servers have to be on the same domain as the gadget server. You can configure the container in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/eXoGadgetServer.war:/WEB-INF/classes/containers/default/container.js</filename>.
- </para>
-
+ <para>
+ The <filename>key.txt</filename> file contains a secret key used to encrypt the security token used for user authentication.
+ </para>
+ <para>
+ When starting JBoss Enterprise Portal Platform, the <filename>key.txt</filename> file is read (as designated by the path set at <parameter>gatein.gadgets.securitytokenkeyfile</parameter>).
+ </para>
+ <para>
+ If the <filename>key.txt</filename> file is not found, JBoss Enterprise Portal Platform automatically generates a new file and saves it to the <parameter>gatein.gadgets.securitytokenkeyfile</parameter> path.
+ </para>
+
+ <para>
+ The <filename>oauthkey.pem</filename> and <filename>oauthkey_pub.pem</filename> files are a key pair of RSA cryptography standard.
+ </para>
+ <para>
+ The <filename>oauthkey.pem</filename> file is known as a private key while <filename>oauthkey_pub.pem</filename> is a public key. They are the default keys of the gadget container which OAuth gadgets will use to authorize with external service providers.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Gadget_proxy_and_concat_configuration">
+ <title>Gadget proxy and concat configuration</title>
+
+ <para>
+ These servers have to be on the same domain as the gadget server. You can configure the container in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/eXoGadgetServer.war:/WEB-INF/classes/containers/default/container.js</filename>.
+ </para>
<programlisting language="Java" role="Java"><xi:include href="../../extras/Gadget_Development_SetupGadgetServer/default141.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" />
</programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Proxy">
- <title>Proxy</title>
- <para>
- To allow external gadgets when the server is behind a proxy, add the following code to the beginning of the JVM:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Proxy">
+ <title>Proxy</title>
+
+ <para>
+ To allow external gadgets when the server is behind a proxy, add the following code to the beginning of the JVM:
+ </para>
<programlisting language="Java" role="Java">-Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber -Dhttp.proxyUser=someUserName -Dhttp.proxyPassword=somePassword</programlisting>
-
- </section>
-
-
- </section>
-
-
-</section>
-
-
+ </section>
+ </section>
+ </section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/NavigationController.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/NavigationController.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/NavigationController.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -4,82 +4,82 @@
%BOOK_ENTITIES;
]>
<chapter id="chap-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_">
- <title>Navigation Controller </title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Description">
- <title>Description</title>
- <para>
- The navigation controller is a major enhancement of JBoss Enterprise Portal Platform that has several goals:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Provide non ambiguous URLs for portal managed resources such as navigation. Previously different resources were possible for a single URL, even worse, the set of resources available for an URL was depending on one's private navigation (groups and dashboard)
- </para>
+ <title>Navigation Controller </title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Description">
+ <title>Description</title>
+ <para>
+ The navigation controller is a major enhancement of JBoss Enterprise Portal Platform that has several goals:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Provide non ambiguous URLs for portal managed resources such as navigation. Previously different resources were possible for a single URL, even worse, the set of resources available for an URL was depending on one's private navigation (groups and dashboard)
+ </para>
- </listitem>
- <listitem>
- <para>
- Decouple the <literal>http</literal> request from the portal request. Previously both were tightly coupled, for instance the URL for a site had to begin with <uri>/public/{sitename}</uri> or <uri>/private/{sitename}</uri>. The navigation controller provides a flexible and configurable mapping.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Decouple the <literal>http</literal> request from the portal request. Previously both were tightly coupled, for instance the URL for a site had to begin with <uri>/public/{sitename}</uri> or <uri>/private/{sitename}</uri>. The navigation controller provides a flexible and configurable mapping.
+ </para>
- </listitem>
- <listitem>
- <para>
- Provide more friendly URL and give a degree of freedom for portal administrators by letting them configure how <literal>http</literal> request should look.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Provide more friendly URL and give a degree of freedom for portal administrators by letting them configure how <literal>http</literal> request should look.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Controller_in_Action">
- <title>Controller in Action</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_in_Action-Controller">
- <title>Controller</title>
- <para>
- The <application>WebAppController</application> is the component of JBoss Enterprise Portal Platform that process <literal>http</literal> invocations and transforms them into a portal request. It has been improved with the addition of a request mapping engine (<emphasis role="bold">controller</emphasis>) whose role is to make the decoupling of the <literal>http</literal> request and create a portal request.
- </para>
- <para>
- The mapping engine makes two essential tasks:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Create a Map<QualifiedName, String> from an incoming <literal>http</literal> request
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Controller_in_Action">
+ <title>Controller in Action</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_in_Action-Controller">
+ <title>Controller</title>
+ <para>
+ The <application>WebAppController</application> is the component of JBoss Enterprise Portal Platform that process <literal>http</literal> invocations and transforms them into a portal request. It has been improved with the addition of a request mapping engine (<emphasis role="bold">controller</emphasis>) whose role is to make the decoupling of the <literal>http</literal> request and create a portal request.
+ </para>
+ <para>
+ The mapping engine makes two essential tasks:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Create a Map<QualifiedName, String> from an incoming <literal>http</literal> request
+ </para>
- </listitem>
- <listitem>
- <para>
- Render a Map<QualifiedName, String> as an <literal>http</literal> URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Render a Map<QualifiedName, String> as an <literal>http</literal> URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- The goal of the controller (mapping engine) is to <emphasis role="bold">decouple</emphasis> the request processed by JBoss Enterprise Portal Platform from the incoming <literal>HTTP</literal> request.
- </para>
- <para>
- Indeed a request contain data that determines how the request will be processed and such data can be encoded in various places in the request such as the request path or a query parameter. The controller allows JBoss Enterprise Portal Platform route a request according to a set of parameters (a map) instead of the servlet request.
- </para>
- <para>
- The controller configuration is declarative in an XML file, allowing easy reconfiguration of the routing table and it is processed into an internal data structure that is used to perform resolution (routing or rendering)
- </para>
+ </itemizedlist>
+ <para>
+ The goal of the controller (mapping engine) is to <emphasis role="bold">decouple</emphasis> the request processed by JBoss Enterprise Portal Platform from the incoming <literal>HTTP</literal> request.
+ </para>
+ <para>
+ Indeed a request contain data that determines how the request will be processed and such data can be encoded in various places in the request such as the request path or a query parameter. The controller allows JBoss Enterprise Portal Platform route a request according to a set of parameters (a map) instead of the servlet request.
+ </para>
+ <para>
+ The controller configuration is declarative in an XML file, allowing easy reconfiguration of the routing table and it is processed into an internal data structure that is used to perform resolution (routing or rendering)
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_in_Action-Building_Controller">
- <title>Building Controller</title>
- <para>
- The controller configuration that contains the routing rules is loaded from a file named <filename>controller.xml</filename> that is retrieved in the JBoss Enterprise Portal Platform configuration directory. Its location is determined by the <parameter>gatein.controller.config</parameter> property.
- </para>
- <para>
- <application>WebAppController</application> loads and initializes the mapping engine
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_in_Action-Building_Controller">
+ <title>Building Controller</title>
+ <para>
+ The controller configuration that contains the routing rules is loaded from a file named <filename>controller.xml</filename> that is retrieved in the JBoss Enterprise Portal Platform configuration directory. Its location is determined by the <parameter>gatein.controller.config</parameter> property.
+ </para>
+ <para>
+ <application>WebAppController</application> loads and initializes the mapping engine
+ </para>
+
<programlisting language="XML">
<!-- conf/portal/controller-configuration.xml of portal.war -->
<component>
@@ -92,104 +92,104 @@
</init-params>
</component>
</programlisting>
- <para>
- JBoss Enterprise Portal Platform's extension project can define their own routing table, because of the extension mechanism.
- </para>
- <para>
- The <filename>controller.xml</filename> can be changed and reloaded at runtime, this helps the testing of different configurations easily (configuration loading operations) and provide more insight into the routing engine (the <literal>findRoutes</literal> operation). see <emphasis role="bold">Rebuiding controller</emphasis> for more detail
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">ReBuilding controller</emphasis>
- </para>
+ <para>
+ JBoss Enterprise Portal Platform's extension project can define their own routing table, because of the extension mechanism.
+ </para>
+ <para>
+ The <filename>controller.xml</filename> can be changed and reloaded at runtime, this helps the testing of different configurations easily (configuration loading operations) and provide more insight into the routing engine (the <literal>findRoutes</literal> operation). see <emphasis role="bold">Rebuiding controller</emphasis> for more detail
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">ReBuilding controller</emphasis>
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- The <application>WebAppController</application> is annotated with <code>@Managed</code> annotations and is bound under the <code>view=portal,service=controller</code> JMX name and under the "portalcontroller" REST name.
- </para>
- <para>
- It provides the following attributes and operations
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Attribute configurationPath : the read only the configuration path of the controller xml file
- </para>
+ </itemizedlist>
+ <para>
+ The <application>WebAppController</application> is annotated with <code>@Managed</code> annotations and is bound under the <code>view=portal,service=controller</code> JMX name and under the "portalcontroller" REST name.
+ </para>
+ <para>
+ It provides the following attributes and operations
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Attribute configurationPath : the read only the configuration path of the controller xml file
+ </para>
- </listitem>
- <listitem>
- <para>
- Operation loadConfiguration : load a new configuration file from a specified xml path
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Operation loadConfiguration : load a new configuration file from a specified xml path
+ </para>
- </listitem>
- <listitem>
- <para>
- Operation reloadConfiguration : reload the configuration file
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Operation reloadConfiguration : reload the configuration file
+ </para>
- </listitem>
- <listitem>
- <para>
- Operation findRoutes : route the request argument through the controller and returns a list of all parameter map resolution. The argument is a request uri such as "/groups/:platform:administrators/administration/registry". It returns a string representation (<code>List<Map></code>) of the matched routes.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Operation findRoutes : route the request argument through the controller and returns a list of all parameter map resolution. The argument is a request uri such as "/groups/:platform:administrators/administration/registry". It returns a string representation (<code>List<Map></code>) of the matched routes.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_in_Action-Controller_Configuration_controller.xml">
- <title>Controller Configuration (controller.xml)</title>
- <para>
- Most of the controller configuration cares about defining rules (Routing table - contains routes object) that will drive the resolution. Routes are processed during the controller initialization to give a tree of node. Each node
- </para>
- <itemizedlist>
- <listitem>
- <para>
- is related to its parent with a matching rule that can either be an <emphasis role="bold">exact string matching</emphasis> or a <emphasis role="bold">regular expression matching</emphasis>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_in_Action-Controller_Configuration_controller.xml">
+ <title>Controller Configuration (controller.xml)</title>
+ <para>
+ Most of the controller configuration cares about defining rules (Routing table - contains routes object) that will drive the resolution. Routes are processed during the controller initialization to give a tree of node. Each node
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ is related to its parent with a matching rule that can either be an <emphasis role="bold">exact string matching</emphasis> or a <emphasis role="bold">regular expression matching</emphasis>
+ </para>
- </listitem>
- <listitem>
- <para>
- is associated with a set of parameters
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ is associated with a set of parameters
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- A parameter is defined by a qualified name and there are three kind of parameters
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-_Route_parameters_">
- <title> <emphasis role="bold">Route parameters</emphasis> </title>
- <para>
- Route parameters defines a fixed value associate with a qualified name.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Routing: route parameters allow the controller to distinguish branches easily and route the request accordingly.
- </para>
+ </itemizedlist>
+ <para>
+ A parameter is defined by a qualified name and there are three kind of parameters
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-_Route_parameters_">
+ <title> <emphasis role="bold">Route parameters</emphasis> </title>
+ <para>
+ Route parameters defines a fixed value associate with a qualified name.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Routing: route parameters allow the controller to distinguish branches easily and route the request accordingly.
+ </para>
- </listitem>
- <listitem>
- <para>
- Rendering: selection occurs when always.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Rendering: selection occurs when always.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting language="XML">
<route path="/foo">
<route-param qname="gtn:handler">
@@ -197,81 +197,81 @@
</route-param>
</route>
</programlisting>
- <para>
- This configuration matches the request path "/foo" to the map (gtn:handler=portal). Conversely it renders the (gtn:handler=portal) map as the "/foo" URL. In this example we see two concepts
- </para>
- <itemizedlist>
- <listitem>
- <para>
- exact path matching ("/foo")
- </para>
+ <para>
+ This configuration matches the request path "/foo" to the map (gtn:handler=portal). Conversely it renders the (gtn:handler=portal) map as the "/foo" URL. In this example we see two concepts
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ exact path matching ("/foo")
+ </para>
- </listitem>
- <listitem>
- <para>
- route parameters ("gtn:handler")
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ route parameters ("gtn:handler")
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-_Path_parameters_Regular_expression_support_">
- <title> <emphasis role="bold">Path parameters - <emphasis role="italic">Regular expression support</emphasis> </emphasis> </title>
- <para>
- Path parameters allow to associate a portion of the request path with a parameter. Such parameter will match any non empty portion of text except the <emphasis role="bold">/</emphasis> character (that is the [^/]+ regular expression) otherwise they can be associated with a regular expression for matching specific patterns. Path parameters are mandatory for matching since they are part of the request path, however it is allowed to write regular expression matching an empty value.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Routing: route is accepted if the regular expression is matched.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-_Path_parameters_Regular_expression_support_">
+ <title> <emphasis role="bold">Path parameters - <emphasis role="italic">Regular expression support</emphasis> </emphasis> </title>
+ <para>
+ Path parameters allow to associate a portion of the request path with a parameter. Such parameter will match any non empty portion of text except the <emphasis role="bold">/</emphasis> character (that is the [^/]+ regular expression) otherwise they can be associated with a regular expression for matching specific patterns. Path parameters are mandatory for matching since they are part of the request path, however it is allowed to write regular expression matching an empty value.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Routing: route is accepted if the regular expression is matched.
+ </para>
- </listitem>
- <listitem>
- <para>
- Rendering: selection occurs when the regular expression matches the parameter.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Rendering: selection occurs when the regular expression matches the parameter.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Encoding</emphasis>
- </para>
- <para>
- Path parameters may contain '/' character which is a reserved char for URI path. This case is specially handled by the navigation controller by using a special character to replace '/' literals. By default the character is the semi colon <emphasis role="bold">:</emphasis> and can be changed to other possible values (see controller XML schema for possible values) to give a greater amount of flexibility.
- </para>
- <para>
- This encoding is applied only when the encoding performed for parameter having a mode set to the <code>default-form</code> value, for instance it does not happen for navigation node URI (for which <emphasis role="bold">/</emphasis> are encoded literally). The separator escape char can still be used but under it's percent escaped form, so by default a path parameter value containing <emphasis role="bold">:</emphasis> would be encoded as <code>%3A</code> and conversely the <code>%3A</code> value will be decoded as <emphasis role="bold">:</emphasis>.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Encoding</emphasis>
+ </para>
+ <para>
+ Path parameters may contain '/' character which is a reserved char for URI path. This case is specially handled by the navigation controller by using a special character to replace '/' literals. By default the character is the semi colon <emphasis role="bold">:</emphasis> and can be changed to other possible values (see controller XML schema for possible values) to give a greater amount of flexibility.
+ </para>
+ <para>
+ This encoding is applied only when the encoding performed for parameter having a mode set to the <code>default-form</code> value, for instance it does not happen for navigation node URI (for which <emphasis role="bold">/</emphasis> are encoded literally). The separator escape char can still be used but under it's percent escaped form, so by default a path parameter value containing <emphasis role="bold">:</emphasis> would be encoded as <code>%3A</code> and conversely the <code>%3A</code> value will be decoded as <emphasis role="bold">:</emphasis>.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting language="XML">
<route path="/{gtn:path}">
</route>
</programlisting>
- <para>
- No pattern defined, used the default one [^/]+
- </para>
-
+ <para>
+ No pattern defined, used the default one [^/]+
+ </para>
+
<programlisting>
Routing and Rendering
Path "/foo" <--> the map (gtn:path=foo)
Path "/foo:bar" <--> the map (gtn:path=foo/bar)
</programlisting>
- <para>
- If the request path contains another "/" char it will not work,default encoding mode is : <emphasis role="bold">default-form</emphasis>. For example:"/foo/bar" --> not matched, return empty parameter map
- </para>
- <para>
- However this could be solved with the following configuration:
- </para>
-
+ <para>
+ If the request path contains another "/" char it will not work,default encoding mode is : <emphasis role="bold">default-form</emphasis>. For example:"/foo/bar" --> not matched, return empty parameter map
+ </para>
+ <para>
+ However this could be solved with the following configuration:
+ </para>
+
<programlisting language="XML">
<route path="/{gtn:path}">
<path-param encoding="preserve-path" qname="gtn:path">
@@ -279,116 +279,116 @@
</path-param>
</route>
</programlisting>
- <orderedlist>
- <listitem>
- <para>
- The .* declaration allows to match any char sequence.
- </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ The .* declaration allows to match any char sequence.
+ </para>
- </listitem>
- <listitem>
- <para>
- The <emphasis role="italic">preserve-path</emphasis> <emphasis role="bold">encoding</emphasis> tells the engine that the "/" chars should be handled by the path parameter itself as they have a special meaning for the router. Without this special encoding, "/" would be rendered as the ":<emphasis role="italic">" character and conversely the ":</emphasis>" character would be matched as the "/" character.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <emphasis role="italic">preserve-path</emphasis> <emphasis role="bold">encoding</emphasis> tells the engine that the "/" chars should be handled by the path parameter itself as they have a special meaning for the router. Without this special encoding, "/" would be rendered as the ":<emphasis role="italic">" character and conversely the ":</emphasis>" character would be matched as the "/" character.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-Request_parameters">
- <title>Request parameters</title>
- <para>
- Request parameters are matched from the request parameters (GET or POST). The match can be optional as their representation in the request allows it.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Routing
- </para>
- <itemizedlist>
- <listitem>
- <para>
- route is accepted when a required parameter is present and matched in the request.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-Request_parameters">
+ <title>Request parameters</title>
+ <para>
+ Request parameters are matched from the request parameters (GET or POST). The match can be optional as their representation in the request allows it.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Routing
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ route is accepted when a required parameter is present and matched in the request.
+ </para>
- </listitem>
- <listitem>
- <para>
- route is accepted when an optional parameter is absent or matched in the request.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ route is accepted when an optional parameter is absent or matched in the request.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
- <listitem>
- <para>
- Rendering:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- selection occurs for required parameters when is the parameter is present and matched in the map.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Rendering:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ selection occurs for required parameters when is the parameter is present and matched in the map.
+ </para>
- </listitem>
- <listitem>
- <para>
- selection occurs for optional parameters when is the parameter is absent or matched in the map.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ selection occurs for optional parameters when is the parameter is absent or matched in the map.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting language="XML">
<route path="/">
<request-param name="path" qname="gtn:path"/>
</route>
</programlisting>
- <para>
- Request parameters are declared by a <code>request-param</code> element and by default will match any value. A request like "/?path=foo" is mapped to the (gtn:path=foo) map. The <code>name</code> attribute of the <code>request-param</code> tag defines the request parameter value. This element accepts more configuration
- </para>
- <itemizedlist>
- <listitem>
- <para>
- a <code>value</code> or a <code>pattern</code> element a child element to match a constant or a pattern
- </para>
+ <para>
+ Request parameters are declared by a <code>request-param</code> element and by default will match any value. A request like "/?path=foo" is mapped to the (gtn:path=foo) map. The <code>name</code> attribute of the <code>request-param</code> tag defines the request parameter value. This element accepts more configuration
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ a <code>value</code> or a <code>pattern</code> element a child element to match a constant or a pattern
+ </para>
- </listitem>
- <listitem>
- <para>
- a <code>control-mode</code> attribute with the value <code>optional</code> or <code>required</code> to indicate if matching is mandatory or not
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ a <code>control-mode</code> attribute with the value <code>optional</code> or <code>required</code> to indicate if matching is mandatory or not
+ </para>
- </listitem>
- <listitem>
- <para>
- a <code>value-mapping</code> attribute with the possible values <code>canonical</code>, <code>never-empty</code>, <code>never-null</code> can be used to filter filter values after matching is done. For instance a parameter configured with <code>value-mapping="never-empty"</code> and matching the empty string value will not put the empty string in the map.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ a <code>value-mapping</code> attribute with the possible values <code>canonical</code>, <code>never-empty</code>, <code>never-null</code> can be used to filter filter values after matching is done. For instance a parameter configured with <code>value-mapping="never-empty"</code> and matching the empty string value will not put the empty string in the map.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-Route_precedence">
- <title>Route precedence</title>
- <para>
- The order of route declaration is important as it influence how rules are matched. Sometimes the same request could be matched by several routes and the routing table is ambiguous.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-Route_precedence">
+ <title>Route precedence</title>
+ <para>
+ The order of route declaration is important as it influence how rules are matched. Sometimes the same request could be matched by several routes and the routing table is ambiguous.
+ </para>
+
<programlisting language="XML">
<route path="/foo">
<route-param qname="gtn:handler">
@@ -401,33 +401,33 @@
</path-param>
</route>
</programlisting>
- <para>
- In that case, the request path "/foo" will always be matched by the first rule before the second rule. This can be misleading since the map (gtn:path=foo) would be rendered as "/foo" as well and would not be matched by the first rule. Such ambiguit can happen, it can be desirable or not.
- </para>
+ <para>
+ In that case, the request path "/foo" will always be matched by the first rule before the second rule. This can be misleading since the map (gtn:path=foo) would be rendered as "/foo" as well and would not be matched by the first rule. Such ambiguity can happen, it can be desirable or not.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-Route_nesting">
- <title>Route nesting</title>
- <para>
- Route nesting is possible and often desirable as it helps to
- </para>
- <itemizedlist>
- <listitem>
- <para>
- factor common parameters in a common rule
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Controller_Configuration_controller.xml-Route_nesting">
+ <title>Route nesting</title>
+ <para>
+ Route nesting is possible and often desirable as it helps to
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ factor common parameters in a common rule
+ </para>
- </listitem>
- <listitem>
- <para>
- perform more efficient matching as the match of the common rule is done once for all the sub routes
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ perform more efficient matching as the match of the common rule is done once for all the sub routes
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="XML">
<route path="/foo">
<route-param qname="gtn:handler">
@@ -445,231 +445,231 @@
</route>
</route>
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- The request path "/foo/bar" is mapped to the (gtn:handler=portal,gtn:path=bar) map
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The request path "/foo/bar" is mapped to the (gtn:handler=portal,gtn:path=bar) map
+ </para>
- </listitem>
- <listitem>
- <para>
- The request path "/foo/juu" is mapped to the (gtn:handler=portal,gtn:path=juu) map
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The request path "/foo/juu" is mapped to the (gtn:handler=portal,gtn:path=juu) map
+ </para>
- </listitem>
- <listitem>
- <para>
- The request path "/foo" is not mapped as non leaf routes do not perform matches.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The request path "/foo" is not mapped as non leaf routes do not perform matches.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework">
- <title>Integrate to JBoss Enterprise Portal Platform WebUI framework</title>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Routing">
- <title>Routing</title>
- <para>
- JBoss Enterprise Portal Platform defines a set of parameters in its routing table, for each client request, the mapping engine processes the request path and return the defined parameters with their values as a Map<QualifiedName, String>
- </para>
- <para>
- <emphasis role="bold">gtn:handler</emphasis>
- </para>
- <para>
- The gtn:handler names is one of the most important qualified name as it determines which handler will take care of the request processing just after the controller has determined the parameter map. The handler value is used to make a lookup in the handler map of the controller. An handler is a class that extends the <code>WebRequestHandler</code> class and implements the <code>execute(ControllerContext)</code> method. Several handlers are available by default:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- portal : process aggregated portal requests
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework">
+ <title>Integrate to JBoss Enterprise Portal Platform WebUI framework</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Routing">
+ <title>Routing</title>
+ <para>
+ JBoss Enterprise Portal Platform defines a set of parameters in its routing table, for each client request, the mapping engine processes the request path and return the defined parameters with their values as a Map<QualifiedName, String>
+ </para>
+ <para>
+ <emphasis role="bold">gtn:handler</emphasis>
+ </para>
+ <para>
+ The gtn:handler names is one of the most important qualified name as it determines which handler will take care of the request processing just after the controller has determined the parameter map. The handler value is used to make a lookup in the handler map of the controller. An handler is a class that extends the <code>WebRequestHandler</code> class and implements the <code>execute(ControllerContext)</code> method. Several handlers are available by default:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ portal : process aggregated portal requests
+ </para>
- </listitem>
- <listitem>
- <para>
- upload / download : process file upload and file download
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ upload / download : process file upload and file download
+ </para>
- </listitem>
- <listitem>
- <para>
- legacy : handle legacy URL redirection (see <emphasis role="bold">Legacy handler</emphasis> section)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ legacy : handle legacy URL redirection (see <emphasis role="bold">Legacy handler</emphasis> section)
+ </para>
- </listitem>
- <listitem>
- <para>
- default : <literal>http</literal> redirection to the default portal of the container
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ default : <literal>http</literal> redirection to the default portal of the container
+ </para>
- </listitem>
- <listitem>
- <para>
- staticResource: serve static resources like image, css or javascript... files in portal.war (see <emphasis role="bold">Static Resource Handler</emphasis> section)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ staticResource: serve static resources like image, css or javascript... files in portal.war (see <emphasis role="bold">Static Resource Handler</emphasis> section)
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">gtn:sitetype / gtn:sitename / gtn:path</emphasis>
- </para>
- <para>
- Those qualified names drives a request for the portal handler. They are used to determine which site to show and which path to resolve against a navigation. For instance the (gtn:sitetype=portal,gtn:sitename=classic,gtn:path=home) instruct the portal handler to show the home page of the classic portal site.
- </para>
- <para>
- <emphasis role="bold">gtn:lang</emphasis>
- </para>
- <para>
- The language in the URL for the portal handler. This is a new feature offered, now language can be specified on URL. that mean user can bookmark that URL (with the information about language) or he can changed language simply by modifying the URL address
- </para>
- <para>
- <emphasis role="bold">gtn:componentid / gtn:action / gtn:objectid</emphasis>
- </para>
- <para>
- The webui parameters used by the portal handler for managing webui component URLs for portal applications (and not for portlet applications).
- </para>
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">gtn:sitetype / gtn:sitename / gtn:path</emphasis>
+ </para>
+ <para>
+ Those qualified names drives a request for the portal handler. They are used to determine which site to show and which path to resolve against a navigation. For instance the (gtn:sitetype=portal,gtn:sitename=classic,gtn:path=home) instruct the portal handler to show the home page of the classic portal site.
+ </para>
+ <para>
+ <emphasis role="bold">gtn:lang</emphasis>
+ </para>
+ <para>
+ The language in the URL for the portal handler. This is a new feature offered, now language can be specified on URL. that mean user can bookmark that URL (with the information about language) or he can changed language simply by modifying the URL address
+ </para>
+ <para>
+ <emphasis role="bold">gtn:componentid / gtn:action / gtn:objectid</emphasis>
+ </para>
+ <para>
+ The webui parameters used by the portal handler for managing webui component URLs for portal applications (and not for portlet applications).
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Rendering">
- <title>Rendering</title>
- <para>
- The <emphasis role="bold">controller</emphasis> is designed to render a Map<QualifiedName, String> as an <literal>http</literal> URL according to its routing table. But to integrate it for using easily in WebUI Framework of JBoss Enterprise Portal Platform, we need some more components
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-_PortalURL_">
- <title> <emphasis role="bold">PortalURL</emphasis> </title>
- <para>
- <code>PortalURL</code> play a similar role at the portal level, its main role is to abstract the creation of an URL for a resource managed by the portal.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Integrate_to_JBoss_Enterprise_Portal_Platform_WebUI_framework-Rendering">
+ <title>Rendering</title>
+ <para>
+ The <emphasis role="bold">controller</emphasis> is designed to render a Map<QualifiedName, String> as an <literal>http</literal> URL according to its routing table. But to integrate it for using easily in WebUI Framework of JBoss Enterprise Portal Platform, we need some more components
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-_PortalURL_">
+ <title> <emphasis role="bold">PortalURL</emphasis> </title>
+ <para>
+ <code>PortalURL</code> play a similar role at the portal level, its main role is to abstract the creation of an URL for a resource managed by the portal.
+ </para>
+
<programlisting language="Java">
public abstract class PortalURL<R, U extends PortalURL<U>>
{
...
}
</programlisting>
- <para>
- The <code>PortalURL</code> declaration may seem a bit strange at first sight with two generic types <code>U</code> and <code>R</code> and the circular recursion of the <code>U</code> generic parameter, but it's because most of the time you will not use the <code>PortalURL</code> object but instead subclasses.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The <code>R</code> generic type represents the type of the resource managed by the portal
- </para>
+ <para>
+ The <code>PortalURL</code> declaration may seem a bit strange at first sight with two generic types <code>U</code> and <code>R</code> and the circular recursion of the <code>U</code> generic parameter, but it's because most of the time you will not use the <code>PortalURL</code> object but instead subclasses.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <code>R</code> generic type represents the type of the resource managed by the portal
+ </para>
- </listitem>
- <listitem>
- <para>
- The <code>U</code> generic type is also described as <emphasis role="bold">self bound generic type</emphasis>. This design pattern allows a class to return subtypes of itself in the class declaring the generic type. Java Enums are based on this principle (<code>class Enum<E extends Enum<E>></code>)
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <code>U</code> generic type is also described as <emphasis role="bold">self bound generic type</emphasis>. This design pattern allows a class to return subtypes of itself in the class declaring the generic type. Java Enums are based on this principle (<code>class Enum<E extends Enum<E>></code>)
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- A portal URL has various methods but certainly the most important method is the <code>toString()</code> method that generates an URL representing that will target the resource associated with the URL. The remaining methods are getter and setter for mutating the URL configuration, those options will affect the URL representation when it is generated.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- resource : the mandatory resource associated with the URL
- </para>
+ </itemizedlist>
+ <para>
+ A portal URL has various methods but certainly the most important method is the <code>toString()</code> method that generates an URL representing that will target the resource associated with the URL. The remaining methods are getter and setter for mutating the URL configuration, those options will affect the URL representation when it is generated.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ resource : the mandatory resource associated with the URL
+ </para>
- </listitem>
- <listitem>
- <para>
- locale : the optional locale used in the URL allowing the creation of bookmarkable URL containing a language
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ locale : the optional locale used in the URL allowing the creation of bookmarkable URL containing a language
+ </para>
- </listitem>
- <listitem>
- <para>
- confirm : the optional confirm message displayed by the portal in the context of the portal UI
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ confirm : the optional confirm message displayed by the portal in the context of the portal UI
+ </para>
- </listitem>
- <listitem>
- <para>
- ajax : the optional ajax option allowing an ajax invocation of the URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ ajax : the optional ajax option allowing an ajax invocation of the URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Obtaining a PortalURL</emphasis>
- </para>
- <para>
- <code>PortalURL</code> objects are obtained from <code>RequestContext</code> instance such as the <code>PortalRequestContext</code> or the PortletRequestContext. Usually those are obtained thanks to <code>getCurrentInstance</code> method of the <code>RequestContext</code> class:
- </para>
-
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Obtaining a PortalURL</emphasis>
+ </para>
+ <para>
+ <code>PortalURL</code> objects are obtained from <code>RequestContext</code> instance such as the <code>PortalRequestContext</code> or the PortletRequestContext. Usually those are obtained thanks to <code>getCurrentInstance</code> method of the <code>RequestContext</code> class:
+ </para>
+
<programlisting language="Java">
RequestContext ctx = RequestContext.getCurrentInstance();
</programlisting>
- <para>
- <code>PortalURL</code> are created via to the <code>createURL</code> method that takes as input a resource type. A resource type is usually a constant and is a type safe object that allow to retrieve <code>PortalURL</code> subclasses:
- </para>
-
+ <para>
+ <code>PortalURL</code> are created via to the <code>createURL</code> method that takes as input a resource type. A resource type is usually a constant and is a type safe object that allow to retrieve <code>PortalURL</code> subclasses:
+ </para>
+
<programlisting language="Java">
RequestContext ctx = RequestContext.getCurrentInstance();
PortalURL<R, U> URL = ctx.createURL(type);
</programlisting>
- <para>
- In reality you will use a concrete type constant and have instead more concrete code like:
- </para>
-
+ <para>
+ In reality you will use a concrete type constant and have instead more concrete code like:
+ </para>
+
<programlisting language="Java">
RequestContext ctx = RequestContext.getCurrentInstance();
NodeURL URL = ctx.createURL(NodeURL.TYPE);
</programlisting>
- <note>
- <para>
- The <code>NodeURL.TYPE</code> is actually declared as <code>new ResourceType<NavigationResource, NodeURL>()</code> that can be described as a <emphasis role="bold">type literal</emphasis> object emulated by a Java anonymous inner class. Such literal were introduced by Neil Gafter as Super Type Token and popularized by Google Guice as Type Literal. It's an interesting way to create a literal representing a kind of Java type.
- </para>
+ <note>
+ <para>
+ The <code>NodeURL.TYPE</code> is actually declared as <code>new ResourceType<NavigationResource, NodeURL>()</code> that can be described as a <emphasis role="bold">type literal</emphasis> object emulated by a Java anonymous inner class. Such literal were introduced by Neil Gafter as Super Type Token and popularized by Google Guice as Type Literal. It's an interesting way to create a literal representing a kind of Java type.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-_Node_URL_">
- <title> <emphasis role="bold">Node URL</emphasis> </title>
- <para>
- The class <code>NodeURL</code> is one of the subclass of <code>PortalURL</code> that is specialized for navigation node resources:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-_Node_URL_">
+ <title> <emphasis role="bold">Node URL</emphasis> </title>
+ <para>
+ The class <code>NodeURL</code> is one of the subclass of <code>PortalURL</code> that is specialized for navigation node resources:
+ </para>
+
<programlisting language="Java">
public class NodeURL extends PortalURL<NavigationResource, NodeURL>
{
...
}
</programlisting>
- <para>
- The good news is that the NodeURL does not carry any generic type of its super class, which means that a NodeURL is type safe and one does not have to worry about generic types.
- </para>
- <para>
- Using a NodeURL is pretty straightforward:
- </para>
-
+ <para>
+ The good news is that the NodeURL does not carry any generic type of its super class, which means that a NodeURL is type safe and one does not have to worry about generic types.
+ </para>
+ <para>
+ Using a NodeURL is pretty straightforward:
+ </para>
+
<programlisting language="Java">
NodeURL URL = RequestContext.getCurrentInstance().createURL(NodeURL.TYPE);
URL.setResource(new NavigationResource("portal", "classic, "home"));
String s = URL.toString();
</programlisting>
- <para>
- The <code>NodeURL</code> subclass contains specialized setter to make its usage even easier:
- </para>
-
+ <para>
+ The <code>NodeURL</code> subclass contains specialized setter to make its usage even easier:
+ </para>
+
<programlisting language="Java">
UserNode node = ...;
NodeURL URL = RequestContext.getCurrentInstance().createURL(NodeURL.TYPE);
@@ -677,98 +677,98 @@
String s = URL.toString();
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-_Component_URL_">
- <title> <emphasis role="bold">Component URL</emphasis> </title>
- <para>
- The <code>ComponentURL</code> subclass is another specialization of <code>PortalURL</code> that allows the creation of WebUI components URLs. <code>ComponentURL</code> is commonly used to trigger WebUI events from client side:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-_Component_URL_">
+ <title> <emphasis role="bold">Component URL</emphasis> </title>
+ <para>
+ The <code>ComponentURL</code> subclass is another specialization of <code>PortalURL</code> that allows the creation of WebUI components URLs. <code>ComponentURL</code> is commonly used to trigger WebUI events from client side:
+ </para>
+
<programlisting>
<% def componentURL = uicomponent.event(...); /*or uicomponent.URL(...) */ %>
<a href=$componentURL>Click me</a>
</programlisting>
- <para>
- Normally you should not have to deal with it as the WebUI framework has already an abstraction for managing URL known as <code>URLBuilder</code>. The <code>URLBuilder</code> implementation delegates URL creation to <code>ComponentURL</code> objects.
- </para>
+ <para>
+ Normally you should not have to deal with it as the WebUI framework has already an abstraction for managing URL known as <code>URLBuilder</code>. The <code>URLBuilder</code> implementation delegates URL creation to <code>ComponentURL</code> objects.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-Portlet_URLs">
- <title>Portlet URLs</title>
- <para>
- Portlet URLs API implementation delegates to the portal <code>ComponentURL</code> (via the portlet container SPI). It is possible to control the language in the URL from a <code>PortletURL</code> object by setting a property named <code>gtn:lang</code>:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- when the property value is set to a value returned by <code>Locale#toString()</code> method for locale objects having a non null language value and a null variant value, the URL generated by the <code>PortletURL#toString()</code> method will contain the locale in the URL.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-Portlet_URLs">
+ <title>Portlet URLs</title>
+ <para>
+ Portlet URLs API implementation delegates to the portal <code>ComponentURL</code> (via the portlet container SPI). It is possible to control the language in the URL from a <code>PortletURL</code> object by setting a property named <code>gtn:lang</code>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ when the property value is set to a value returned by <code>Locale#toString()</code> method for locale objects having a non null language value and a null variant value, the URL generated by the <code>PortletURL#toString()</code> method will contain the locale in the URL.
+ </para>
- </listitem>
- <listitem>
- <para>
- when the property value is set to an empty string, the generated URL will not contain a language. If the incoming URL was carrying a language, this language will be erased.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ when the property value is set to an empty string, the generated URL will not contain a language. If the incoming URL was carrying a language, this language will be erased.
+ </para>
- </listitem>
- <listitem>
- <para>
- when the property value is not set, it will not affect the generated URL.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ when the property value is not set, it will not affect the generated URL.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="Java">
PortletURL URL = resp.createRenderURL();
URL.setProperty("gtn:lang", "fr");
writer.print("<a href='" + URL + "'>French</a>");
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-Webui_URLBuilder_">
- <title>Webui <code>URLBuilder</code> </title>
- <para>
- This internal API for creating URL works as before and delegates to the <code>PortletURL</code> API when the framework is executed in a portlet and to a <code>ComponentURL</code> API when the framework is executed in the portal context. The API has been modified to take in account the language in URL with two properties on the builder:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- locale : a locale for setting on the URL
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-Webui_URLBuilder_">
+ <title>Webui <code>URLBuilder</code> </title>
+ <para>
+ This internal API for creating URL works as before and delegates to the <code>PortletURL</code> API when the framework is executed in a portlet and to a <code>ComponentURL</code> API when the framework is executed in the portal context. The API has been modified to take in account the language in URL with two properties on the builder:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ locale : a locale for setting on the URL
+ </para>
- </listitem>
- <listitem>
- <para>
- removeLocale : a boolean for removing the locale present on the URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ removeLocale : a boolean for removing the locale present on the URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-Groovy_Templates">
- <title>Groovy Templates</title>
- <para>
- Within a Groovy template the mechanism is the same, however a splash of integration has been done to make creation of NodeURL simpler. A closure is bound under the <code>nodeurl</code> name and is available for invocation anytime. It will simply create a NodeURL object and return it:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Rendering-Groovy_Templates">
+ <title>Groovy Templates</title>
+ <para>
+ Within a Groovy template the mechanism is the same, however a splash of integration has been done to make creation of NodeURL simpler. A closure is bound under the <code>nodeurl</code> name and is available for invocation anytime. It will simply create a NodeURL object and return it:
+ </para>
+
<programlisting language="Java">
UserNode node = ...;
NodeURL URL = nodeurl();
URL.setNode(node);
String s = URL.toString();
</programlisting>
- <para>
- The closure <code>nodeurl</code> is bound to Groovy template in <code>WebuiBindingContext</code>
- </para>
-
+ <para>
+ The closure <code>nodeurl</code> is bound to Groovy template in <code>WebuiBindingContext</code>
+ </para>
+
<programlisting language="Java">
// Closure nodeurl()
put("nodeurl", new Closure(this)
@@ -781,122 +781,122 @@
});
</programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x">
- <title>Changes and migration from JBoss Enterprise Portal Platform 3.1.x</title>
- <para>
- The navigation controller implies a migration of the client code that is coupled to several internal APIs of JBoss Enterprise Portal Platform. As far as we know the major impact is related to anything dealing with URL:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Creation of an URL representing a resource managed by the portal: navigation node or ui component.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Navigation_Controller_-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x">
+ <title>Changes and migration from JBoss Enterprise Portal Platform 3.1.x</title>
+ <para>
+ The navigation controller implies a migration of the client code that is coupled to several internal APIs of JBoss Enterprise Portal Platform. As far as we know the major impact is related to anything dealing with URL:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Creation of an URL representing a resource managed by the portal: navigation node or ui component.
+ </para>
- </listitem>
- <listitem>
- <para>
- Using <literal>http</literal> request related information
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Using <literal>http</literal> request related information
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- There are also changes in the configuration, because there is a change of how things are internally.
- </para>
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Migration_of_navigation_node_URL">
- <title>Migration of navigation node URL</title>
- <para>
- <emphasis role="bold">Using free form node</emphasis>
- </para>
- <para>
- Previously code for creating navigation node was like:
- </para>
-
+ </itemizedlist>
+ <para>
+ There are also changes in the configuration, because there is a change of how things are internally.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Migration_of_navigation_node_URL">
+ <title>Migration of navigation node URL</title>
+ <para>
+ <emphasis role="bold">Using free form node</emphasis>
+ </para>
+ <para>
+ Previously code for creating navigation node was like:
+ </para>
+
<programlisting language="Java">
String uri = Util.getPortalRequestContext().getPortalURI() + "home";
</programlisting>
- <para>
- The new code will look like
- </para>
-
+ <para>
+ The new code will look like
+ </para>
+
<programlisting language="Java">
PortalURL nodeURL = nodeurl();
NavigationResource resource = new NavigationResource(SiteType.PORTAL, pcontext.getPortalOwner(), "home");
String uri = nodeURL.setResource(resource).toString();
</programlisting>
- <para>
- <emphasis role="bold">Using UserNode object</emphasis>
- </para>
-
+ <para>
+ <emphasis role="bold">Using UserNode object</emphasis>
+ </para>
+
<programlisting language="Java">
UserNode node = ...;
String uri = Util.getPortalRequestContext().getPortalURI() + node.getURI()";
</programlisting>
- <para>
- The new code will look like
- </para>
-
+ <para>
+ The new code will look like
+ </para>
+
<programlisting language="Java">
UserNode node = ...;
PortalURL nodeURL = nodeurl();
String uri = nodeURL.setNode(node).toString();
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Security_changes">
- <title>Security changes</title>
- <para>
- Security configuration change in order to keep with the flexibility added by the navigation controller. In particular the authentication does not depend anymore on path specified in <code>web.xml</code> but instead rely on the security mandated by the underlying resource. Here are the noticeable changes for security
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Authentication is now triggered on the /login URL when it does not have a username or a password specified. Therefore the URL <code>/login?initialURI=/classic/home</code> is (more or less) equivalent to <code>/private/classic/home</code>
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Security_changes">
+ <title>Security changes</title>
+ <para>
+ Security configuration change in order to keep with the flexibility added by the navigation controller. In particular the authentication does not depend anymore on path specified in <code>web.xml</code> but instead rely on the security mandated by the underlying resource. Here are the noticeable changes for security
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Authentication is now triggered on the /login URL when it does not have a username or a password specified. Therefore the URL <code>/login?initialURI=/classic/home</code> is (more or less) equivalent to <code>/private/classic/home</code>
+ </para>
- </listitem>
- <listitem>
- <para>
- When a resource cannot be viewed due to security constraint
- </para>
- <itemizedlist>
- <listitem>
- <para>
- If the user is not logged, the authentication will be triggered
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ When a resource cannot be viewed due to security constraint
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If the user is not logged, the authentication will be triggered
+ </para>
- </listitem>
- <listitem>
- <para>
- Otherwise a special page (the usual one) will be displayed instead
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Otherwise a special page (the usual one) will be displayed instead
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Default_handler">
- <title>Default handler</title>
- <para>
- Redirection to the default portal used to be done by the <code>index.jsp</code> JSP page. This is not the case anymore, the index.jsp has been removed and the welcome file in <code>web.xml</code> was removed too. Instead a specific handler in the routing table has been configured, the sole role of this handler is to redirect the request to default portal when no other request has been matched previously:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Default_handler">
+ <title>Default handler</title>
+ <para>
+ Redirection to the default portal used to be done by the <code>index.jsp</code> JSP page. This is not the case anymore, the index.jsp has been removed and the welcome file in <code>web.xml</code> was removed too. Instead a specific handler in the routing table has been configured, the sole role of this handler is to redirect the request to default portal when no other request has been matched previously:
+ </para>
+
<programlisting language="XML">
<controller>
...
@@ -908,40 +908,40 @@
</controller>
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Legacy_handler">
- <title>Legacy handler</title>
- <para>
- Legacy URLs such as <code>/public/...</code> and <code>/private/...</code> are now emulated to determine the best resource with the same resolution algorithm than before but instead of displaying the page, will make an <literal>http</literal> 302 redirection to the correct URL. This handler is present in the controller configuration. There is a noticeable difference between the two routes
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The public redirection attempt to find a node with the legacy resolution algorithm without authentication, which means that secured nodes will not be resolved and the redirection of a secured node will likely redirect to another page. For instance resolving the URL /public/classic/administration/registry path will likely resolve to another node if the user is not authenticated and is not part of the platform administrator group.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Legacy_handler">
+ <title>Legacy handler</title>
+ <para>
+ Legacy URLs such as <code>/public/...</code> and <code>/private/...</code> are now emulated to determine the best resource with the same resolution algorithm than before but instead of displaying the page, will make an <literal>http</literal> 302 redirection to the correct URL. This handler is present in the controller configuration. There is a noticeable difference between the two routes
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The public redirection attempt to find a node with the legacy resolution algorithm without authentication, which means that secured nodes will not be resolved and the redirection of a secured node will likely redirect to another page. For instance resolving the URL /public/classic/administration/registry path will likely resolve to another node if the user is not authenticated and is not part of the platform administrator group.
+ </para>
- </listitem>
- <listitem>
- <para>
- The private redirection performs first an authentication before doing the redirection. In that case the /private/classic/administration/registry path will resolve be redirected to the /portal/groups/:platform:administrators/administration/registry page if the user has the sufficient security rights.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The private redirection performs first an authentication before doing the redirection. In that case the /private/classic/administration/registry path will resolve be redirected to the /portal/groups/:platform:administrators/administration/registry page if the user has the sufficient security rights.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Static_resource_handler">
- <title>Static resource handler</title>
- <para>
- The "/" mapping for "default" servlet is now replaced by mapping for org.exoplatform.portal.application.PortalController servlet, that mean we need a handler (<emphasis role="bold">org.exoplatform.portal.application.StaticResourceRequestHandler</emphasis>) to serve static resources like image, css or javascript... files in portal.war. And it should be configured, and extended easily. Thanks to the controller.xml. This file can be overridden and can be changed and reloaded at runtime (WebAppController is MBean with some operations such as : reloadConfiguration() ...)
- </para>
- <para>
- Declare StaticResourceHandler in controller.xml
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Static_resource_handler">
+ <title>Static resource handler</title>
+ <para>
+ The "/" mapping for "default" servlet is now replaced by mapping for org.exoplatform.portal.application.PortalController servlet, that mean we need a handler (<emphasis role="bold">org.exoplatform.portal.application.StaticResourceRequestHandler</emphasis>) to serve static resources like image, css or javascript... files in portal.war. And it should be configured, and extended easily. Thanks to the controller.xml. This file can be overridden and can be changed and reloaded at runtime (WebAppController is MBean with some operations such as : reloadConfiguration() ...)
+ </para>
+ <para>
+ Declare StaticResourceHandler in controller.xml
+ </para>
+
<programlisting language="XML">
<route path="/{gtn:path}">
<route-param qname="gtn:handler">
@@ -952,10 +952,10 @@
</path-param>
</route>
</programlisting>
- <para>
- And we don't need these kind of following mapping in portal.war's web.xml anymore :
- </para>
-
+ <para>
+ And we don't need these kind of following mapping in portal.war's web.xml anymore :
+ </para>
+
<programlisting language="XML">
<servlet-mapping>
<servlet-name>default</servlet-name>
@@ -964,14 +964,14 @@
...
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-portal.wars_web.xml_changes">
- <title>portal.war's web.xml changes</title>
- <para>
- DoLoginServlet declaration
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-portal.wars_web.xml_changes">
+ <title>portal.war's web.xml changes</title>
+ <para>
+ DoLoginServlet declaration
+ </para>
+
<programlisting language="XML">
<servlet>
<servlet-name>DoLoginServlet</servlet-name>
@@ -982,23 +982,23 @@
<URL-pattern>/dologin</URL-pattern>
</servlet-mapping>
</programlisting>
- <para>
- Delare <emphasis role="bold">portal servlet</emphasis> as default servlet
- </para>
-
+ <para>
+ Declare <emphasis role="bold">portal servlet</emphasis> as default servlet
+ </para>
+
<programlisting language="XML">
<servlet-mapping>
<servlet-name>portal</servlet-name>
<URL-pattern>/</URL-pattern>
</servlet-mapping>
</programlisting>
- <para>
- So there are some mapping declaration for portal servlet are unused, we should also remove them: <emphasis role="bold"> <emphasis role="italic">/private/* /public/* /admin/* /upload/* /download/*</emphasis> </emphasis>
- </para>
- <para>
- Add some security constraints
- </para>
-
+ <para>
+ So there are some mapping declaration for portal servlet are unused, we should also remove them: <emphasis role="bold"> <emphasis role="italic">/private/* /public/* /admin/* /upload/* /download/*</emphasis> </emphasis>
+ </para>
+ <para>
+ Add some security constraints
+ </para>
+
<programlisting language="XML">
<security-constraint>
<web-resource-collection>
@@ -1010,66 +1010,66 @@
</web-resource-collection>
</security-constraint>
</programlisting>
- <para>
- We can remove the index.jsp, and its declaration in web.xml now, thank to the Default request handler
- </para>
-
+ <para>
+ We can remove the index.jsp, and its declaration in web.xml now, thank to the Default request handler
+ </para>
+
<programlisting language="XML">
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
</programlisting>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Dashboard_changes">
- <title>Dashboard changes</title>
- <para>
- There are several important changes to take in account
- </para>
- <itemizedlist>
- <listitem>
- <para>
- dashboard are now bound to a single URL (/users/root by default) and dashboard pages are leaf of this path
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Dashboard_changes">
+ <title>Dashboard changes</title>
+ <para>
+ There are several important changes to take in account
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ dashboard are now bound to a single URL (/users/root by default) and dashboard pages are leaf of this path
+ </para>
- </listitem>
- <listitem>
- <para>
- dashboard life cycle can be decoupled (create / destroy) from the identity creation in a configurable manner in <code>UserPortalConfigService</code> and exposed in configuration.properties under <code>gatein.portal.idm.createuserportal</code> and <code>gatein.portal.idm.destroyuserportal</code>.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ dashboard life cycle can be decoupled (create / destroy) from the identity creation in a configurable manner in <code>UserPortalConfigService</code> and exposed in configuration.properties under <code>gatein.portal.idm.createuserportal</code> and <code>gatein.portal.idm.destroyuserportal</code>.
+ </para>
- </listitem>
- <listitem>
- <para>
- by default dashboard are not created when a user is registered
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ by default dashboard are not created when a user is registered
+ </para>
- </listitem>
- <listitem>
- <para>
- a dashboard is created when the user access his dashboard URL
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ a dashboard is created when the user access his dashboard URL
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Remove_unused_files">
- <title>Remove unused files</title>
- <para>
- 1/ portal-unavailable.jsp: this file was presented before if user goes to a non-available portal. Now the server sends a 404 status code instead.
- </para>
- <para>
- 2/ portal-warning.jsp: this file is not used in any place
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Changes_and_migration_from_JBoss_Enterprise_Portal_Platform_3.1.x-Remove_unused_files">
+ <title>Remove unused files</title>
+ <para>
+ 1/ portal-unavailable.jsp: this file was presented before if user goes to a non-available portal. Now the server sends a 404 status code instead.
+ </para>
+ <para>
+ 2/ portal-warning.jsp: this file is not used in any place
+ </para>
- </section>
-
+ </section>
+
- </section>
+ </section>
</chapter>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/PortalLifecycle.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/PortalLifecycle.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/PortalLifecycle.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -233,7 +233,7 @@
try {
PortalContainer.setInstance(null) ;
} catch (Exception e) {
-log.warn("An error occured while cleaning the ThreadLocal", e);
+log.warn("An error occurred while cleaning the ThreadLocal", e);
}
}
log.info("Init of PortalController Servlet successful");
@@ -460,7 +460,7 @@
try {
PortalContainer.setInstance(null) ;
} catch (Exception e) {
-log.warn("An error occured while cleaning the ThreadLocal", e);
+log.warn("An error occurred while cleaning the ThreadLocal", e);
}
}
...
@@ -517,7 +517,7 @@
try {
component.endRequest(portalContainer);
} catch (Exception e) {
-log.warn("An error occured while calling the endRequest method", e);
+log.warn("An error occurred while calling the endRequest method", e);
}
}
}
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/Skinning.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/Skinning.xml 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/Skinning.xml 2011-11-04 06:32:25 UTC (rev 7972)
@@ -216,7 +216,7 @@
</para>
<variablelist>
<varlistentry>
- <term>gatein-resources.xml</term>
+ <term>WEB-INF/gatein-resources.xml</term>
<listitem>
<para>
For the default portal skin, this file contains definitions for the portal skin, the window decorations that this skin provides and well as defining some javascript resources which are not related to the skin. The default portal skin doesn't directly define portlet skins, these should be provided by the portlets themselves.
@@ -226,7 +226,7 @@
</varlistentry>
<varlistentry>
- <term>web.xml</term>
+ <term>WEB-INF/web.xml</term>
<listitem>
<para>
For the default portal skin, the <filename>web.xml</filename> of the <literal>eXoResources.war</literal> will contains a lot of information which is mostly irrelevant to the portal skinning. The area of interest in this file is the <literal>resourcerequestfilter</literal> and the fact that the <parameter>display-name</parameter> is set.
@@ -236,7 +236,7 @@
</varlistentry>
<varlistentry>
- <term>Stylesheet.CSS</term>
+ <term>skin/Stylesheet.CSS</term>
<listitem>
<para>
This file is the main portal skin stylesheet. It is the main entry point to the CSS class definitions for the skin. The main content points of this file are:
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/publican.cfg
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/publican.cfg 2011-11-04 06:31:04 UTC (rev 7971)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/publican.cfg 2011-11-04 06:32:25 UTC (rev 7972)
@@ -9,5 +9,5 @@
brand: JBoss
debug: 1
type: Book
-toc_section_depth: 10
+#toc_section_depth: 10
13 years, 2 months
gatein SVN: r7971 - in epp/docs/branches/5.2/Reference_Guide/en-US: extras/Advanced_Development_JCR_statistics and 5 other directories.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-04 02:31:04 -0400 (Fri, 04 Nov 2011)
New Revision: 7971
Modified:
epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_Foundations/default7.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_JCR_statistics/default88.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/Authentication_Identity/configuration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml
epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml
Log:
GateIn revisions 7960, 7821, 7889
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_Foundations/default7.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_Foundations/default7.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_Foundations/default7.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd
- http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd
+ http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<external-component-plugins>
<!-- The full qualified name of the PortalContainerConfig -->
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_JCR_statistics/default88.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_JCR_statistics/default88.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/Advanced_Development_JCR_statistics/default88.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,5 +1,5 @@
-<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
- xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<type>org.exoplatform.services.jcr.statistics.JCRAPIAspectConfig</type>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/extras/Authentication_Identity/configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/extras/Authentication_Identity/configuration.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/Authentication_Identity/configuration.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"
-xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd">
+xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd http://www.exoplaform.org/xml/ns/kernel_1_2.xsd"
+xmlns="http://www.exoplaform.org/xml/ns/kernel_1_2.xsd">
<component>
<key>org.example.codec.ExampleCodec</key>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<gadgets
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gadgets_1_0"
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gadgets_1_0"
xmlns="http://www.gatein.org/xml/ns/gadgets_1_0">
<gadget name="Todo">
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-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<node-navigation
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gatein_objects_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gatein_objects_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_2">
<priority>1</priority>
<page-nodes>
<node>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<page-set
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gatein_objects_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gatein_objects_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_2">
<page>
<name>homepage</name>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<portal-config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_0 http://www.gatein.org/xml/ns/gatein_objects_1_0"
- xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_0">
+ xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_objects_1_2 http://www.gatein.org/xml/ns/gatein_objects_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_objects_1_2">
<portal-name>classic</portal-name>
<locale>en</locale>
<access-permissions>Everyone</access-permissions>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,327 +1,392 @@
<?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">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-<section id="sect-Reference_Guide-PicketLink_IDM_integration">
- <title>PicketLink IDM integration</title>
- <para>
- JBoss Enterprise Portal Platform uses the <literal>PicketLink IDM</literal> component to store necessary identity information about users, groups and memberships. While legacy interfaces are still used (<literal>org.exoplatform.services.organization</literal>) for identity management, there is a wrapper implementation that delegates to PicketLink IDM framework.
- </para>
- <para>
- This section does not provide information about <literal>PicketLink IDM</literal> and its configuration. Please, refer to the appropriate project documentation (<ulink url="http://jboss.org/picketlink/IDM.html" />) for further information.
- </para>
- <note>
- <para>
- It is important to fully understand the concepts behind this framework design before changing the default configuration.
- </para>
- </note>
- <para>
- The identity models represented in the <literal>org.exoplatform.services.organization</literal> interfaces and the one used in <emphasis role="bold">PicketLink IDM</emphasis> have some major differences.
- </para>
- <para>
- For example; <literal>PicketLink IDM</literal> provides greater abstraction. It is possible for groups in the <emphasis role="bold">IDM</emphasis> framework to form memberships with many parents (which requires recursive ID translation), while the <literal>org.exoplatform.services.organization</literal> model allows only pure tree-like membership structures.
- </para>
- <para>
- Additionally, <literal>org.exoplatform.services.organization</literal> <emphasis>membership</emphasis> concept needs to be translated into the IDM <emphasis>Role</emphasis> concept. Therefore <literal>PicketLink IDM</literal> model is used in a limited way. All these translations are applied by the integration layer.
- </para>
- <section id="sect-Reference_Guide-PicketLink_IDM_integration-Configuration_files">
- <title>Configuration files</title>
- <para>
- The main configuration file is <filename>02portal.war/WEB-INF/conf/organization/idm-configuration.xml</filename>:
- </para>
- <programlistingco>
- <areaspec>
- <area coords="6 90" id="area-Reference_Guide-PicketLink_IDM_integration-Configuration_files-JBossIDMServiceImpl" />
- <area coords="22 80" id="area-Reference_Guide-PicketLink_IDM_integration-Configuration_files-JBossIDMOrganizationServiceImpl" />
- </areaspec>
-
+<section id="sect-Reference_Guide_eXo_JCR_1.14-PicketLink_IDM_integration">
+ <title>PicketLink IDM integration</title>
+ <para>
+ JBoss Enterprise Portal Platform uses the <literal>PicketLink IDM</literal> component to store necessary identity information about users, groups and memberships. While legacy interfaces are still used (<literal>org.exoplatform.services.organization</literal>) for identity management, there is a wrapper implementation that delegates to PicketLink IDM framework.
+ </para>
+ <para>
+ This section does not provide information about <literal>PicketLink IDM</literal> and its configuration. Please, refer to the appropriate project documentation (<ulink url="http://jboss.org/picketlink/IDM.html" />) for further information.
+ </para>
+ <note>
+ <para>
+ It is important to fully understand the concepts behind this framework design before changing the default configuration.
+ </para>
+
+ </note>
+ <para>
+ The identity models represented in the <literal>org.exoplatform.services.organization</literal> interfaces and the one used in <emphasis role="bold">PicketLink IDM</emphasis> have some major differences.
+ </para>
+ <para>
+ For example; <literal>PicketLink IDM</literal> provides greater abstraction. It is possible for groups in the <emphasis role="bold">IDM</emphasis> framework to form memberships with many parents (which requires recursive ID translation), while the <literal>org.exoplatform.services.organization</literal> model allows only pure tree-like membership structures.
+ </para>
+ <para>
+ Additionally, <literal>org.exoplatform.services.organization</literal> <emphasis>membership</emphasis> concept needs to be translated into the IDM <emphasis>Role</emphasis> concept. Therefore <literal>PicketLink IDM</literal> model is used in a limited way. All these translations are applied by the integration layer.
+ </para>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-PicketLink_IDM_integration-Configuration_Files">
+ <title>Configuration Files</title>
+ <para>
+ The main configuration file is <filename>02portal.war/WEB-INF/conf/organization/idm-configuration.xml</filename>:
+ </para>
+ <programlistingco>
+ <areaspec>
+ <area coords="6 90" id="area-Reference_Guide_eXo_JCR_1.14-PicketLink_IDM_integration-Configuration_Files-JBossIDMServiceImpl" />
+ <area coords="22 80" id="area-Reference_Guide_eXo_JCR_1.14-PicketLink_IDM_integration-Configuration_Files-JBossIDMOrganizationServiceImpl" />
+
+ </areaspec>
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_BackendConfiguration/default96.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-PicketLink_IDM_integration-Configuration_files-JBossIDMServiceImpl">
- <para>
- The <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMServiceImpl</emphasis> service has the following options:
- </para>
- <variablelist>
- <varlistentry>
- <term>config</term>
- <listitem>
- <para>
- <parameter>(value-param)</parameter>
- </para>
- <para>
- The PicketLink IDM configuration file.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>hibernate.properties</term>
- <listitem>
- <para>
- <parameter>(properties-param)</parameter>
- </para>
- <para>
- A list of hibernate properties used to create SessionFactory that will be injected to JBoss Identity IDM configuration registry.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>hibernate.annotations</term>
- <listitem>
- <para>
- <parameter>(values-param)</parameter>
- </para>
- <para>
- A list of annotated classes that will be added to Hibernate configuration.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>hibernate.mappings</term>
- <listitem>
- <para>
- <parameter>(values-param)</parameter>
- </para>
- <para>
- A list of xml files that will be added to hibernate configuration as mapping files.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>jndiName</term>
- <listitem>
- <para>
- <parameter>(value-param)</parameter>
- </para>
- <para>
- If the <literal>config</literal> parameter is not provided, this parameter will be used to perform JNDI lookup for IdentitySessionFactory.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>portalRealm</term>
- <listitem>
- <para>
- <parameter>(value-param)</parameter>
- </para>
- <para>
- The realm name that should be used to obtain proper IdentitySession. The default is <literal>PortalRealm</literal>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>apiCacheConfig</term>
- <term>storeCacheConfig</term>
- <listitem>
- <para>
- <parameter>(value-param)</parameter>
- </para>
- <para>
- These options reference the JBoss cache configuration used for Picketlink.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </callout>
- <callout arearefs="area-Reference_Guide-PicketLink_IDM_integration-Configuration_files-JBossIDMOrganizationServiceImpl">
- <para>
- The <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMOrganizationServiceImpl</emphasis> key is a main entrypoint implementing <emphasis role="bold">org.exoplatform.services.organization.OrganizationService</emphasis> and is dependent on <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMService</emphasis>
- </para>
- <para>
- The <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMOrganizationServiceImpl</emphasis> service has the following options defined as fields of <parameter>object-param</parameter> of type <emphasis role="bold">org.exoplatform.services.organization.idm.Config</emphasis>:
- </para>
- <variablelist>
- <varlistentry>
- <term>defaultGroupType</term>
- <listitem>
- <para>
- The name of the PicketLink IDM GroupType that will be used to store groups. The default is '<literal>GTN_GROUP_TYPE</literal>'.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>rootGroupName</term>
- <listitem>
- <para>
- The name of the PicketLink IDM Group that will be used as a root parent. The default is '<literal>GTN_ROOT_GROUP</literal>'
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>passwordAsAttribute</term>
- <listitem>
- <para>
- This parameter specifies if a password should be stored using PicketLink IDM Credential object or as a plain attribute. The default is <emphasis role="bold">false</emphasis>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>useParentIdAsGroupType</term>
- <listitem>
- <para>
- This parameter stores the parent ID path as a group type in PicketLink IDM for any IDs not mapped with a specific type in '<literal>groupTypeMappings</literal>'. If this option is set to <emphasis>false</emphasis>, and no mappings are provided under '<literal>groupTypeMappings</literal>', then only one group with the given name can exist in the JBoss Enterprise Portal Platform group tree.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>pathSeparator</term>
- <listitem>
- <para>
- When '<literal>userParentIdAsGroupType</literal>' is set to <emphasis>true</emphasis>, this value will be used to replace all "/" characters in IDs. The "/" character is not allowed to be used in group type name in PicketLink IDM.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>associationMembershipType</term>
- <listitem>
- <para>
- If this option is used, then each Membership, created with MembershipType that is equal to the value specified here, will be stored in PicketLink IDM as simple Group-User association.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>groupTypeMappings</term>
- <listitem>
- <para>
- This parameter maps groups added with JBoss Enterprise Portal Platform API as children of a given group ID, and stores them with a given group type name in PicketLink IDM.
- </para>
- <para>
- If the parent ID ends with "/*", then all child groups will have the mapped group type. Otherwise, only direct (first level) children will use this type.
- </para>
- <para>
- This can be leveraged by LDAP if LDAP DN is configured in PicketLink IDM to only store a specific group type. This will then store the given branch in JBoss Enterprise Portal Platform group tree, while all other groups will remain in the database.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>forceMembershipOfMappedTypes</term>
- <listitem>
- <para>
- Groups stored in PicketLink IDM with a type mapped in '<literal>groupTypeMappings</literal>' will automatically be members under the mapped parent. Group relationships linked by PicketLink IDM group association will not be necessary.
- </para>
- <para>
- This parameter can be set to <emphasis>false</emphasis> if all groups are added via JBoss Enterprise Portal Platform APIs. This may be useful with LDAP configuration as, when set to true, it will make every entry added to LDAP appear in JBoss Enterprise Portal Platform. This, however, is not true for entries added via JBoss Enterprise Portal Platform management UI.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>ignoreMappedMembershipType</term>
- <listitem>
- <para>
- If "<literal>associationMembershipType</literal>" option is used, and this option is set to <emphasis>true</emphasis>, then Membership with MembershipType configured to be stored as PicketLink IDM association will not be stored as PicketLink IDM Role.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>useJTA</term>
- <listitem>
- <para>
- This is a boolean option which determines whether JTA (Java Transaction API) will be used in Picketlink IDM.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- Additionally, <literal>JBossIDMOrganizationServiceImpl</literal> uses those defaults to perform identity management operations
- </para>
- <itemizedlist>
- <listitem>
- <para>
- JBoss Enterprise Portal Platform User interface properties fields are persistent in JBoss Identity IDM using the attributes names:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <parameter>firstName</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>lastName</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>email</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>createdDate</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>lastLoginTime</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>organizationId</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>password</parameter> (if password is configured to be stored as attribute)
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- JBoss Enterprise Portal Platform Group interface properties fields are persistent in JBoss Identity IDM using the attributes names:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <parameter>label</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>description</parameter>
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- JBoss Enterprise Portal Platform <literal>MembershipType</literal> interface properties fields are persistent in JBoss Identity IDM using those <literal>RoleType</literal> properties:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <parameter>description</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>owner</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>create_date</parameter>
- </para>
- </listitem>
- <listitem>
- <para>
- <parameter>modified_date</parameter>
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </callout>
- </calloutlist>
- </programlistingco>
-
- <para>
- The <emphasis role="bold">PicketLink IDM</emphasis> configuration file is shown below. To understand all the options it contains, please refer to the PicketLink IDM Reference Guide
- </para>
-
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-PicketLink_IDM_integration-Configuration_Files-JBossIDMServiceImpl">
+ <para>
+ The <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMServiceImpl</emphasis> service has the following options:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>config</term>
+ <listitem>
+ <para>
+ <parameter>(value-param)</parameter>
+ </para>
+ <para>
+ The PicketLink IDM configuration file.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>hibernate.properties</term>
+ <listitem>
+ <para>
+ <parameter>(properties-param)</parameter>
+ </para>
+ <para>
+ A list of hibernate properties used to create SessionFactory that will be injected to JBoss Identity IDM configuration registry.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>hibernate.annotations</term>
+ <listitem>
+ <para>
+ <parameter>(values-param)</parameter>
+ </para>
+ <para>
+ A list of annotated classes that will be added to Hibernate configuration.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>hibernate.mappings</term>
+ <listitem>
+ <para>
+ <parameter>(values-param)</parameter>
+ </para>
+ <para>
+ A list of xml files that will be added to hibernate configuration as mapping files.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>jndiName</term>
+ <listitem>
+ <para>
+ <parameter>(value-param)</parameter>
+ </para>
+ <para>
+ If the <literal>config</literal> parameter is not provided, this parameter will be used to perform JNDI lookup for IdentitySessionFactory.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>portalRealm</term>
+ <listitem>
+ <para>
+ <parameter>(value-param)</parameter>
+ </para>
+ <para>
+ The realm name that should be used to obtain proper IdentitySession. The default is <literal>PortalRealm</literal>.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>apiCacheConfig</term>
+ <term>storeCacheConfig</term>
+ <listitem>
+ <para>
+ <parameter>(value-param)</parameter>
+ </para>
+ <para>
+ These options reference the JBoss cache configuration used for Picketlink.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </callout>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-PicketLink_IDM_integration-Configuration_Files-JBossIDMOrganizationServiceImpl">
+ <para>
+ The <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMOrganizationServiceImpl</emphasis> key is a main entrypoint implementing <emphasis role="bold">org.exoplatform.services.organization.OrganizationService</emphasis> and is dependent on <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMService</emphasis>
+ </para>
+ <para>
+ The <emphasis role="bold">org.exoplatform.services.organization.idm.PicketLinkIDMOrganizationServiceImpl</emphasis> service has the following options defined as fields of <parameter>object-param</parameter> of type <emphasis role="bold">org.exoplatform.services.organization.idm.Config</emphasis>:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>defaultGroupType</term>
+ <listitem>
+ <para>
+ The name of the PicketLink IDM GroupType that will be used to store groups. The default is '<literal>GTN_GROUP_TYPE</literal>'.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>rootGroupName</term>
+ <listitem>
+ <para>
+ The name of the PicketLink IDM Group that will be used as a root parent. The default is '<literal>GTN_ROOT_GROUP</literal>'
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>passwordAsAttribute</term>
+ <listitem>
+ <para>
+ This parameter specifies if a password should be stored using PicketLink IDM Credential object or as a plain attribute. The default is <emphasis role="bold">false</emphasis>.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>useParentIdAsGroupType</term>
+ <listitem>
+ <para>
+ This parameter stores the parent ID path as a group type in PicketLink IDM for any IDs not mapped with a specific type in '<literal>groupTypeMappings</literal>'. If this option is set to <emphasis>false</emphasis>, and no mappings are provided under '<literal>groupTypeMappings</literal>', then only one group with the given name can exist in the JBoss Enterprise Portal Platform group tree.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>pathSeparator</term>
+ <listitem>
+ <para>
+ When '<literal>userParentIdAsGroupType</literal>' is set to <emphasis>true</emphasis>, this value will be used to replace all "/" characters in IDs. The "/" character is not allowed to be used in group type name in PicketLink IDM.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>associationMembershipType</term>
+ <listitem>
+ <para>
+ If this option is used, then each Membership, created with MembershipType that is equal to the value specified here, will be stored in PicketLink IDM as simple Group-User association.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>groupTypeMappings</term>
+ <listitem>
+ <para>
+ This parameter maps groups added with JBoss Enterprise Portal Platform API as children of a given group ID, and stores them with a given group type name in PicketLink IDM.
+ </para>
+ <para>
+ If the parent ID ends with "/*", then all child groups will have the mapped group type. Otherwise, only direct (first level) children will use this type.
+ </para>
+ <para>
+ This can be leveraged by LDAP if LDAP DN is configured in PicketLink IDM to only store a specific group type. This will then store the given branch in JBoss Enterprise Portal Platform group tree, while all other groups will remain in the database.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>forceMembershipOfMappedTypes</term>
+ <listitem>
+ <para>
+ Groups stored in PicketLink IDM with a type mapped in '<literal>groupTypeMappings</literal>' will automatically be members under the mapped parent. Group relationships linked by PicketLink IDM group association will not be necessary.
+ </para>
+ <para>
+ This parameter can be set to <emphasis>false</emphasis> if all groups are added via JBoss Enterprise Portal Platform APIs. This may be useful with LDAP configuration as, when set to true, it will make every entry added to LDAP appear in JBoss Enterprise Portal Platform. This, however, is not true for entries added via JBoss Enterprise Portal Platform management UI.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>ignoreMappedMembershipType</term>
+ <listitem>
+ <para>
+ If "<literal>associationMembershipType</literal>" option is used, and this option is set to <emphasis>true</emphasis>, then Membership with MembershipType configured to be stored as PicketLink IDM association will not be stored as PicketLink IDM Role.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+ <varlistentry>
+ <term>useJTA</term>
+ <listitem>
+ <para>
+ This is a boolean option which determines whether JTA (Java Transaction API) will be used in Picketlink IDM.
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+ <para>
+ Additionally, <literal>JBossIDMOrganizationServiceImpl</literal> uses those defaults to perform identity management operations
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ JBoss Enterprise Portal Platform User interface properties fields are persistent in JBoss Identity IDM using the attributes names:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>firstName</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>lastName</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>email</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>createdDate</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>lastLoginTime</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>organizationId</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>password</parameter> (if password is configured to be stored as attribute)
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+ <listitem>
+ <para>
+ JBoss Enterprise Portal Platform Group interface properties fields are persistent in JBoss Identity IDM using the attributes names:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>label</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>description</parameter>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+ <listitem>
+ <para>
+ JBoss Enterprise Portal Platform <literal>MembershipType</literal> interface properties fields are persistent in JBoss Identity IDM using those <literal>RoleType</literal> properties:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter>description</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>owner</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>create_date</parameter>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <parameter>modified_date</parameter>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </callout>
+
+ </calloutlist>
+
+ </programlistingco>
+
+ <para>
+ The <emphasis role="bold">PicketLink IDM</emphasis> configuration file is shown below. To understand all the options it contains, please refer to the PicketLink IDM Reference Guide
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/Authentication_Identity_BackendConfiguration/default97.xml" 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/GadgetDevelopment/SetupGadgetServer.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,63 +1,112 @@
-<?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">
+<?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">
%BOOK_ENTITIES;
]>
-<section id="sect-Reference_Guide-Advanced_Gadget_Administration">
- <title>Advanced Gadget Administration</title>
- <section id="sect-Reference_Guide-Advanced_Gadget_Administration-Virtual_servers_for_gadget_rendering">
- <title>Virtual servers for gadget rendering</title>
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration">
+ <title>Advanced Gadget Administration</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration-Virtual_servers_for_gadget_rendering">
+ <title>Virtual servers for gadget rendering</title>
+
<para>
JBoss Enterprise Portal Platform recommends using two virtual hosts for security. If the gadget is running on a different domain than the container, it is unable to interfere with the portal by modifying code or cookies.
</para>
+
<para>
An example would be hosting the portal from <emphasis role="bold">http://www.sample.com</emphasis> and the gadgets from <emphasis role="bold">http://www.samplemodules.com</emphasis>.
</para>
+
<para>
To do this, configure the <emphasis>gadgets.hostName</emphasis>parameter in the <filename>server/<replaceable>PROFILE</replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/portal/application-registry-configuration.xml</filename>file. The value is the <emphasis role="bold">path/to/gadgetServer</emphasis>in <literal>GadgetRegistryService.xml</literal>:
</para>
<programlisting language="XML" role="XML"><xi:include href="../../extras/Gadget_Development_SetupGadgetServer/default139.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" />
</programlisting>
-
<para>
It is also possible to have multiple rendering servers. This helps to balance the rendering load across multiple servers.
</para>
+
<para>
- When deploying on the same server ensure the gadget initiates before anything that calls it (for example; the webapp <literal>eXoGadgets</literal>which uses <literal>org.exoplatform.application.gadget.GadgetRegister</literal>).
+ When deploying on the same server, ensure the gadget initiates before anything that calls it (for example; the webapp <literal>eXoGadgets</literal>which uses <literal>org.exoplatform.application.gadget.GadgetRegister</literal>).
</para>
- </section>
- <section id="sect-Reference_Guide-Advanced_Gadget_Administration-Configuration">
- <title>Configuration</title>
- <section id="sect-Reference_Guide-Configuration-Security_key">
- <title>Security key</title>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Advanced_Gadget_Administration-Configuration">
+ <title>Configuration</title>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Security_key">
+ <title>Security key</title>
+
<para>
- A specific file called <emphasis role="bold">key.txt</emphasis>has to be generated for each installation of JBoss Enterprise Portal Platform to be secure. This file contains a secret key used to encrypt the security token used for authenticating the user.
+ In JBoss Enterprise Portal Platform, the gadget container uses three security files for authentication and authorization of gadgets:
</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>key.txt</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>oauthkey.pem</filename>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>oauthkey_pub.pem</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+
<para>
- In Linux systems this file can be generated with:
+ By default, they are located in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><PROFILE></replaceable>/conf/gatein/gadgets</filename> directory are configured by system variables in the <filename><replaceable><JBOSS_HOME></replaceable>/server/<replaceable><JBOSS_HOME></replaceable>/conf/gatein/configuration.properties</filename> file.
</para>
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Gadget_Development_SetupGadgetServer/default140.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <para>
+ If you use other security files you must change the variables below to reference them:
+ </para>
+<programlisting>
+gatein.gadgets.securitytokenkeyfile=${gatein.conf.dir}/gadgets/key.txt
+gatein.gadgets.signingkeyfile=${gatein.conf.dir}/gadgets/oauthkey.pem
</programlisting>
- <para>
- This <filename>key.txt</filename>file should be placed in the <filename>/conf/gatein/gadgets</filename>folder of your profile.
- </para>
- </section>
- <section id="sect-Reference_Guide-Configuration-Gadget_proxy_and_concat_configuration">
- <title>Gadget proxy and concat configuration</title>
<para>
+ The <filename>key.txt</filename> file contains a secret key used to encrypt the security token used for user authentication.
+ </para>
+ <para>
+ When starting JBoss Enterprise Portal Platform, the <filename>key.txt</filename> file is read (as designated by the path set at <parameter>gatein.gadgets.securitytokenkeyfile</parameter>).
+ </para>
+ <para>
+ If the <filename>key.txt</filename> file is not found, JBoss Enterprise Portal Platform automatically generates a new file and saves it to the <parameter>gatein.gadgets.securitytokenkeyfile</parameter> path.
+ </para>
+
+ <para>
+ The <filename>oauthkey.pem</filename> and <filename>oauthkey_pub.pem</filename> files are a key pair of RSA cryptography standard.
+ </para>
+ <para>
+ The <filename>oauthkey.pem</filename> file is known as a private key while <filename>oauthkey_pub.pem</filename> is a public key. They are the default keys of the gadget container which OAuth gadgets will use to authorize with external service providers.
+ </para>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Gadget_proxy_and_concat_configuration">
+ <title>Gadget proxy and concat configuration</title>
+
+ <para>
These servers have to be on the same domain as the gadget server. You can configure the container in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/eXoGadgetServer.war:/WEB-INF/classes/containers/default/container.js</filename>.
</para>
<programlisting language="Java" role="Java"><xi:include href="../../extras/Gadget_Development_SetupGadgetServer/default141.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" />
</programlisting>
- </section>
- <section id="sect-Reference_Guide-Configuration-Proxy">
- <title>Proxy</title>
+ </section>
+
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Configuration-Proxy">
+ <title>Proxy</title>
+
<para>
To allow external gadgets when the server is behind a proxy, add the following code to the beginning of the JVM:
</para>
<programlisting language="Java" role="Java">-Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber -Dhttp.proxyUser=someUserName -Dhttp.proxyPassword=somePassword</programlisting>
+ </section>
</section>
</section>
-</section>
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml 2011-11-03 23:45:55 UTC (rev 7970)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml 2011-11-04 06:31:04 UTC (rev 7971)
@@ -1,272 +1,298 @@
<?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">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
-<chapter id="chap-Reference_Guide-Portal_Navigation_Configuration">
+<chapter id="chap-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration">
<title>Portal Navigation Configuration</title>
- <section id="sect-Reference_Guide-Portal_Navigation_Configuration-Overview">
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview">
<title>Overview</title>
- <para>
+ <para>
There are three types of navigation available to portal users:
</para>
- <itemizedlist>
+ <itemizedlist>
<listitem>
<para>
- <xref linkend="sect-Reference_Guide-Portal_Navigation_Configuration-Portal_Navigation" />
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Portal_Navigation" />
</para>
+
</listitem>
- <listitem>
+ <listitem>
<para>
- <xref linkend="sect-Reference_Guide-Portal_Navigation_Configuration-Group_Navigation" />
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Group_Navigation" />
</para>
+
</listitem>
- <listitem>
+ <listitem>
<para>
- <xref linkend="sect-Reference_Guide-Portal_Navigation_Configuration-User_Navigation" />
+ <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-User_Navigation" />
</para>
+
</listitem>
+
</itemizedlist>
- <para>
+ <para>
These navigations are configured using the standard XML syntax in the file; <filename>02portal.war:/WEB-INF/conf/portal/portal-configuration.xml</filename>.
</para>
-
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/PortalDevelopment_DefaultPortalNavigationConfiguration/default144.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
+ <para>
This XML configuration defines where in the portal's <literal>WAR</literal> to look for configuration settings, and which portals, groups, and user specific views to include in <emphasis>portal/group/user</emphasis> navigation.
</para>
- <para>
+ <para>
The first time the portal is launched those files will be used to create an initial navigation. That information will then be stored in the JCR content repository and can be modified and managed from the portal UI.
</para>
- <!--DOC NOTE: Added based on Gatein revision 6987-->
- <para>
+ <!-- DOC NOTE: Added based on Gatein revision 6987 --> <para>
Each portal, groups and users navigation is indicated by a configuration paragraph, for example:
</para>
-<programlistingco>
+ <programlistingco>
<areaspec>
- <area coords="5" id="area-Reference_Guide.Portalconf.predifinedOwner" />
- <area coords="10" id="area-Reference_Guide.Portalconf.ownerType" />
- <area coords="13" id="area-Reference_Guide.Portalconf.templateLocation" />
- <area coords="16" id="area-Reference_Guide.Portalconf.importMode" />
+ <area coords="5" id="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-predifinedOwner" />
+ <area coords="10" id="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-ownerType" />
+ <area coords="13" id="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-templateLocation" />
+ <area coords="16" id="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-importMode" />
+
</areaspec>
-<programlisting language="XML" role="XML"><![CDATA[<object-param>
- <name>portal.configuration</name>
- <description>description</description>
- <object type="org.exoplatform.portal.config.NewPortalConfig">
- <field name="predefinedOwner">
- <collection type="java.util.HashSet">
- <value><string>classic</string></value>
- </collection>
- </field>
- <field name="ownerType">
- <string>portal</string>
- </field>
- <field name="templateLocation">
- <string>war:/conf/portal/</string>
- </field>
- <field name="importMode">
- <string>conserve</string>
- </field>
- </object>
-</object-param>]]>
+
+<programlisting language="XML" role="XML"><object-param>
+ <name>portal.configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.portal.config.NewPortalConfig">
+ <field name="predefinedOwner">
+ <collection type="java.util.HashSet">
+ <value><string>classic</string></value>
+ </collection>
+ </field>
+ <field name="ownerType">
+ <string>portal</string>
+ </field>
+ <field name="templateLocation">
+ <string>war:/conf/portal/</string>
+ </field>
+ <field name="importMode">
+ <string>conserve</string>
+ </field>
+ </object>
+</object-param>
</programlisting>
-</programlistingco>
-<calloutlist>
- <callout arearefs="area-Reference_Guide.Portalconf.predifinedOwner">
- <para>
- <parameter>predefinedOwner</parameter> defines the navigation owner, portal will look for the configuration files in folder with this name, if there is no suitable folder, a default portal will be created with name is this value.
- </para>
- </callout>
- <callout arearefs="area-Reference_Guide.Portalconf.ownerType">
- <para>
- <parameter>ownerType</parameter> define the type of portal navigation. It may be a portal, group or user
- </para>
- </callout>
- <callout arearefs="area-Reference_Guide.Portalconf.templateLocation">
- <para>
- <parameter>templateLocation</parameter> the classpath where contains all portal configuration files
- </para>
- </callout>
- <callout arearefs="area-Reference_Guide.Portalconf.importMode">
- <para>
- <parameter>importMode</parameter> The mode for navigation import. There are 4 types of import mode:
- </para>
- <itemizedlist>
- <listitem>
+ </programlistingco>
+
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-predifinedOwner">
+ <para>
+ <parameter>predefinedOwner</parameter> defines the navigation owner, portal will look for the configuration files in folder with this name, if there is no suitable folder, a default portal will be created with name is this value.
+ </para>
+
+ </callout>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-ownerType">
+ <para>
+ <parameter>ownerType</parameter> define the type of portal navigation. It may be a portal, group or user
+ </para>
+
+ </callout>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-templateLocation">
+ <para>
+ <parameter>templateLocation</parameter> the classpath where contains all portal configuration files
+ </para>
+
+ </callout>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Overview-importMode">
+ <para>
+ <parameter>importMode</parameter> The mode for navigation import. There are 4 types of import mode:
+ </para>
+ <itemizedlist>
+ <listitem>
<para>
<parameter>conserve</parameter>: Import data when it does not exist, otherwise do nothing.
</para>
- </listitem>
- <listitem>
+
+ </listitem>
+ <listitem>
<para>
<parameter>insert</parameter>: Import data when it does not exist, otherwise performs a strategy that adds new data only.
</para>
- </listitem>
- <listitem>
+
+ </listitem>
+ <listitem>
<para>
<parameter>merge</parameter>: Import data when it does not exist, update data when it exists.
</para>
- </listitem>
- <listitem>
+
+ </listitem>
+ <listitem>
<para>
<parameter>rewrite</parameter>: Overwrite data whatsoever.
</para>
- </listitem>
- </itemizedlist>
- </callout>
-</calloutlist>
-
- <para>
- Based on these parameters, the portal will look for the configuration files and create a relevant portal navigation, pages and data import strategy.
- </para>
- <para>
- The portal configuration files will be stored in folders with path look like <filename>{templateLocation}/{ownerType}/{predefinedOwner}</filename>, all navigations are defined in the <filename>navigation.xml</filename> file, pages are defined in <filename>pages.xml</filename> and portal configuration is defined in <filename>{ownerType}.xml</filename>.
- </para>
- <para>
- For example, with the above configuration, portal will look for all configuration files from <filename>war:/conf/portal/portal/classic path.</filename>
- </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </callout>
+
+ </calloutlist>
+ <para>
+ Based on these parameters, the portal will look for the configuration files and create a relevant portal navigation, pages and data import strategy.
+ </para>
+ <para>
+ The portal configuration files will be stored in folders with path look like <filename>{templateLocation}/{ownerType}/{predefinedOwner}</filename>, all navigations are defined in the <filename>navigation.xml</filename> file, pages are defined in <filename>pages.xml</filename> and portal configuration is defined in <filename>{ownerType}.xml</filename>.
+ </para>
+ <para>
+ For example, with the above configuration, portal will look for all configuration files from <filename>war:/conf/portal/portal/classic path.</filename>
+ </para>
+
</section>
- <section id="sect-Reference_Guide-Portal_Navigation_Configuration-Portal_Navigation">
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Portal_Navigation">
<title>Portal Navigation</title>
- <!-- Updated based on Gatein revision 6987 -->
- <para>
+ <!-- Updated based on Gatein revision 6987 --> <para>
The portal navigation incorporates the pages that can be accessed even when a user is not logged in (assuming the applicable permissions allow public access). For example; several portal navigations could be used when a company has multiple trademarks, and websites are set up for each of them.
</para>
- <para>
+ <para>
The <emphasis>Classic</emphasis> portal is configured by three XML files in the <filename>02portal.war:/WEB-INF/conf/portal/portal/classic</filename> directory:
</para>
- <variablelist>
+ <variablelist>
<varlistentry>
<term>portal.xml</term>
- <listitem>
+ <listitem>
<para>
This file describes the layout and portlets that will be shown on all pages. Usually the layout contains the banner, footer, menu and breadcrumbs portlets. JBoss Enterprise Portal Platform is extremely configurable as every view element (even the banner and footer) is a portlet.
</para>
-
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/PortalDevelopment_DefaultPortalNavigationConfiguration/portal.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
+ <para>
It is also possible to apply a nested container that can also contain portlets. Row, column or tab containers are then responsible for the layout of their child portlets.
</para>
- <!--Updated based on Gatein revision 6987-->
- <para>
+ <!-- Updated based on Gatein revision 6987 --> <para>
Each application references a portlet using the id <literal>portal#{portalName}:/{portletWarName}/{portletName}/{uniqueId}</literal>.
</para>
- <para>
+ <para>
Use the <literal>page-body</literal> tag to define where JBoss Enterprise Portal Platform should render the current page.
</para>
- <para>
- The defined <emphasis>classic</emphasis> portal is accessible to "Everyone" (at <literal>/portal/public/classic</literal>) but only members of the group <literal>/platform/administrators</literal> can edit it.
+ <para>
+ The defined <emphasis>classic</emphasis> portal is accessible to "Everyone" (at <literal>/portal/public/classic</literal>) but only members of the group <literal>/platform/administrators</literal> can edit it.
</para>
+
</listitem>
+
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>navigation.xml</term>
- <listitem>
+ <listitem>
<para>
This file defines all the navigation nodes the portal will have. The syntax is simple and uses nested node tags. Each node references a page defined in <filename>pages.xml</filename> file.
</para>
- <!--Updated based on Gatein revision 6987-->
- <para>
+ <!-- Updated based on Gatein revision 6987 --> <para>
If the administrator wants to create node labels for each language, they will have to use <literal>xml:lang</literal> attribute in the label tag with value of <literal>xml:lang</literal> is the relevant locale.
</para>
- <para>
+ <para>
Otherwise, if they want the node label is localized by resource bundle files, the <literal>#{...}</literal> syntax will be used, the enclosed property name serves as a key that is automatically passed to internationalization mechanism which replaces the literal property name with a localized value taken from the associated properties file matching the current locale.
</para>
- <!-- DOC NOTE: Replaced code navigation.xml with code from GateIn commit r3831 (as per instruction from theute) -->
+ <!-- DOC NOTE: Replaced code navigation.xml with code from GateIn commit r3831 (as per instruction from theute) -->
<programlisting language="XML" role="XML"><xi:include href="../../extras/PortalDevelopment_DefaultPortalNavigationConfiguration/navigation.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
+ <para>
This navigation tree can have multiple views inside portlets (such as the breadcrumbs portlet) that render the current view node, the site map or the menu portlets.
</para>
- <warning>
+ <warning>
<para>
For top nodes, the <emphasis role="bold">uri</emphasis> and the <emphasis role="bold">name</emphasis> of your navigation nodes must have the <emphasis>same</emphasis> value. For other nodes the <emphasis role="bold">uri</emphasis> is a relative path.
</para>
- <para>
- For example; <emphasis><uri>contentmanagement/fileexplorer</uri></emphasis> where '<literal>contentmanagement</literal> ' is the name of the parent node and '<literal>fileexplorer</literal>' is the name of the node (<emphasis><name>fileexplorer</name> </emphasis>).
+ <para>
+ For example; <emphasis><uri>contentmanagement/fileexplorer</uri></emphasis> where '<literal>contentmanagement</literal> ' is the name of the parent node and '<literal>fileexplorer</literal>' is the name of the node (<emphasis><name>fileexplorer</name> </emphasis>).
</para>
+
</warning>
+
</listitem>
+
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>Subnodes</term>
- <listitem>
+ <listitem>
<para>
Subnodes can also be created using the following XML structure
</para>
- <programlistingco>
+ <programlistingco>
<areaspec>
- <area coords="9 40" id="area-Reference_Guide-Portal_Navigation_Configuration-Portal_Navigation-subpage" />
+ <area coords="9 40" id="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Portal_Navigation-subpage" />
+
</areaspec>
-
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/PortalDevelopment_DefaultPortalNavigationConfiguration/subpage.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-Portal_Navigation_Configuration-Portal_Navigation-subpage">
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Portal_Navigation-subpage">
<para>
This element defines the parent/child relationship between a page and a subnode.
</para>
+
</callout>
+
</calloutlist>
+
</programlistingco>
+
+
</listitem>
+
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>pages.xml</term>
- <listitem>
+ <listitem>
<para>
- This configuration file structure is very similar to <filename>portal.xml</filename> and it can also contain container tags (some usage examples of container tags can be found in <filename>02portal.war/WEB-INF/conf/portal/portal/sharedlayout.xml</filename>).
- </para>
- <para>
- Each application can decide whether to render the portlet border, the window state, the icons or portlet's mode.
+ This configuration file structure is very similar to <filename>portal.xml</filename> and it can also contain container tags (some usage examples of container tags can be found in <filename>02portal.war/WEB-INF/conf/portal/portal/sharedlayout.xml</filename>).
</para>
-<!-- DOC NOTE: look into including some actual examples of 'container tags' from sharedlayout.xml in place here. -->
-
+ <para>
+ Each application can decide whether to render the portlet border, the window state, the icons or portlet's mode.
+ </para>
+ <!-- DOC NOTE: look into including some actual examples of 'container tags' from sharedlayout.xml in place here. -->
<programlisting language="XML" role="XML"><xi:include href="../../extras/PortalDevelopment_DefaultPortalNavigationConfiguration/pages.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
</listitem>
+
</varlistentry>
+
</variablelist>
+
</section>
-
- <section id="sect-Reference_Guide-Portal_Navigation_Configuration-Group_Navigation">
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Group_Navigation">
<title>Group Navigation</title>
- <para>
+ <para>
Group navigations are dynamically added to the user navigation at login. This allows users to see the pages assigned to any groups they belong to in the menu.
</para>
- <para>
- The group navigation menu is configured by two XML files (<filename>navigation.xml</filename> and <filename>pages.xml</filename>). The syntax used in these files is the same as those covered in <xref linkend="sect-Reference_Guide-Portal_Navigation_Configuration-Portal_Navigation" />.
+ <para>
+ The group navigation menu is configured by two XML files (<filename>navigation.xml</filename> and <filename>pages.xml</filename>). The syntax used in these files is the same as those covered in <xref linkend="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-Portal_Navigation" />.
</para>
- <para>
+ <para>
They are located in <filename>02portal.war/WEB-INF/conf/portal/group<replaceable>/group-name-path/</replaceable></filename> directory (For example; <filename>02portal.war/WEB-INF/conf/portal/group/platform/administrators/</filename>).
</para>
+
</section>
-
- <section id="sect-Reference_Guide-Portal_Navigation_Configuration-User_Navigation">
+ <section id="sect-Reference_Guide_eXo_JCR_1.14-Portal_Navigation_Configuration-User_Navigation">
<title>User Navigation</title>
- <para>
+ <para>
User navigation is the set of nodes and pages that are owned by a user. They are part of the user's dashboard.
</para>
- <!-- DOC NOTE: Get an answer on the below!-->
- <!-- This Paragraph:-->
- <para>
- Two files configure the user navigation (<filename>navigation.xml</filename> and <filename>pages.xml</filename>). They are located in the directory "<filename>02portal.war/WEB-INF/conf/portal/users/{userName}</filename>".
+ <!-- DOC NOTE: Get an answer on the below! --> <!-- This Paragraph: --> <para>
+ Two files configure the user navigation (<filename>navigation.xml</filename> and <filename>pages.xml</filename>). They are located in the directory "<filename>02portal.war/WEB-INF/conf/portal/users/{userName}</filename>".
</para>
- <!--Became this paragraph in GateIn r6987
+ <!-- Became this paragraph in GateIn r6987
<para>
Three files configure the user navigation (<filename>navigation.xml</filename>, <filename>pages.xml</filename> and <filename>portlet-preferences.xml</filename>). They are located in the <filename>{templateLocation}/{ownerType}/{predefinedOwner}</filename> directory with <literal>ownerType</literal> is <literal>user</literal> and <literal>predefinedOwner</literal> is username that want to create the navigation. For example, if administrator want to create navigation for user <literal>root</literal>, he has to locate the configuration files in <filename>portal.war/WEB-INF/conf/portal/user/root </filename>
</para>
- Which is appropriate for EPP 5.1.1?-->
- <para>
+ Which is appropriate for EPP 5.1.1? --> <para>
The file <filename>eXoGadgets.war/WEB-INF/gadget.xml</filename> defines the gadgets that will be available on a user dashboard.
</para>
- <para>
+ <para>
The example below shows a dashboard with all of the default gadgets included, as well as an extra currency converter gadget sourced from <ulink type="http" url="http://www.google.com/ig/directory?synd=open">Google Gadgets</ulink>.
</para>
-
+
<programlisting language="XML" role="XML"><xi:include href="../../extras/PortalDevelopment_DefaultPortalNavigationConfiguration/gadgets.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
+
</section>
+
</chapter>
+
13 years, 2 months
gatein SVN: r7970 - components/sso/trunk/agent/src/main/java/org/gatein/sso/agent/opensso.
by do-not-reply@jboss.org
Author: mposolda
Date: 2011-11-03 19:45:55 -0400 (Thu, 03 Nov 2011)
New Revision: 7970
Modified:
components/sso/trunk/agent/src/main/java/org/gatein/sso/agent/opensso/OpenSSOAgent.java
Log:
GTNPORTAL-2171 OpenAM bug during integration with Windows (hardcoded line separator)
Modified: components/sso/trunk/agent/src/main/java/org/gatein/sso/agent/opensso/OpenSSOAgent.java
===================================================================
--- components/sso/trunk/agent/src/main/java/org/gatein/sso/agent/opensso/OpenSSOAgent.java 2011-11-03 23:26:09 UTC (rev 7969)
+++ components/sso/trunk/agent/src/main/java/org/gatein/sso/agent/opensso/OpenSSOAgent.java 2011-11-03 23:45:55 UTC (rev 7970)
@@ -187,7 +187,7 @@
{
Properties properties = new Properties();
- String[] tokens = response.split("\n");
+ String[] tokens = response.split(System.getProperty("line.separator"));
String name = null;
for(String token: tokens)
{
13 years, 2 months
gatein SVN: r7969 - portal/trunk.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2011-11-03 19:26:09 -0400 (Thu, 03 Nov 2011)
New Revision: 7969
Modified:
portal/trunk/pom.xml
Log:
- Upgraded to WSRP 2.1.0-GA.
Modified: portal/trunk/pom.xml
===================================================================
--- portal/trunk/pom.xml 2011-11-03 23:02:44 UTC (rev 7968)
+++ portal/trunk/pom.xml 2011-11-03 23:26:09 UTC (rev 7969)
@@ -47,7 +47,7 @@
<org.gatein.wci.version>2.1.0-GA</org.gatein.wci.version>
<org.gatein.pc.version>2.3.0-GA</org.gatein.pc.version>
<org.picketlink.idm>1.3.0.Alpha09</org.picketlink.idm>
- <org.gatein.wsrp.version>2.1.0-Beta08</org.gatein.wsrp.version>
+ <org.gatein.wsrp.version>2.1.0-GA</org.gatein.wsrp.version>
<org.gatein.mop.version>1.1.0-Beta06</org.gatein.mop.version>
<org.gatein.mgmt.version>1.0.0-GA</org.gatein.mgmt.version>
<org.slf4j.version>1.5.8</org.slf4j.version>
13 years, 2 months