gatein SVN: r7593 - in epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14: en-US and 23 other directories.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-10-03 00:22:11 -0400 (Mon, 03 Oct 2011)
New Revision: 7593
Added:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/
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-clonsole-dist.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
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Author_Group.xml
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/Preface.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Reference_Guide_eXo_JCR_1.14.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/fallback_content/Conventions.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Feedback.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Legal_Notice.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/images/PortalDevelopment/Skinning/leftMarginPattern.png
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/images/PortletDevelopment/Standard/SpecPortalDef.png
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq.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-with-gatein.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gtn/managed-datasources-under-jboss-as.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/cluster-config.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-applications.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-exo-implementation.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-namespace-altering.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-registry-service.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/concepts/nodetype-registration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/why-jcr.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/configuration-persister.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/jdbc-data-container-config.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/multilanguage-support.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-howto.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/db-cleaner-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/intro.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbosscache-configuration-templates.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbossts-transaction-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jca.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jta.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/other/acl-ext.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/binary-values-processing.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/jcr-resources.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/link-producer.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/protocols/ftp.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/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/aggregation-rule.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/and-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/child-node-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/date-property-comparison.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/escaping-like-statements.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/exact-path-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-descendant-nodes.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-nodes.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-case-insensitive.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/fulltext-search-and-settings.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-property.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/higlight.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/ignore-accent-symbols.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/index-boost-value.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/like-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/multivalue-property-comparison.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-name-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-scope-index.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/not-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/offset-and-limit.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/or-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-descendant.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-path-or-name.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-property.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-score.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-comparison.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-existance-constraint.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/regexp-indexing-rule.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/searching/tip-nodename-with-number.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/jcr/transaction-manager-lookup.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/component-plugin-priority.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/data-source-provider.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/exo-container.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/initialcontext-binder-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/inversion-of-control.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/jndi-naming.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/kernel.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/logging.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/manageability.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/rpc-service.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-for-beginners.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/services-wiring.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/AuthenticationAndIdentity.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AccessingUserProfile.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AuthenticationTokenConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.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/OrganizationAPI.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/PredefinedUserConfiguration.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/Configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/DatabaseConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/EMailServiceConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/Gadgets.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/Introduction.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalPermissionConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/InternationalizationConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptConfiguration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptInterApplicationCommunication.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/LocalizationConfiguration.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/RTLFramework.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/en-US/modules/PortalDevelopment/XMLResourceBundles.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Global_Portlet.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/gettingstarted.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/overview.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Standard.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/publican.cfg
Log:
Split Foundations chapter into sub-files and incorporate eXo JCR 1.14 kernel content
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Author_Group.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Author_Group.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Author_Group.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE authorgroup 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;
]>
<authorgroup>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Book_Info.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE bookinfo 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;
]>
<bookinfo id="book-Reference_Guide-Reference_Guide_eXo_JCR_1.14">
@@ -9,7 +9,7 @@
<productname>JBoss Enterprise Portal Platform</productname>
<productnumber>5.2</productnumber>
<edition>5.2.0</edition>
- <pubsnumber>1</pubsnumber>
+ <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.
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Preface.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Preface.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Preface.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE preface 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;
]>
<preface id="pref-Reference_Guide-Preface">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Reference_Guide_eXo_JCR_1.14.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Reference_Guide_eXo_JCR_1.14.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Reference_Guide_eXo_JCR_1.14.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<book>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/Revision_History.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE appendix 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;
]>
<appendix id="appe-Reference_Guide-Revision_History">
@@ -8,7 +8,7 @@
<simpara>
<revhistory>
<revision>
- <revnumber>5.2.0-1</revnumber>
+ <revnumber>5.2.0-2</revnumber>
<date>Tue Sep 27 2011</date>
<author>
<firstname>Scott</firstname>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Conventions.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Conventions.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Conventions.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Document_Conventions">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Feedback.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Feedback.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Feedback.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-We_Need_Feedback">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Legal_Notice.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Legal_Notice.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/fallback_content/Legal_Notice.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE legalnotice 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;
]>
<legalnotice>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/images/PortalDevelopment/Skinning/leftMarginPattern.png
===================================================================
(Binary files differ)
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/images/PortletDevelopment/Standard/SpecPortalDef.png
===================================================================
(Binary files differ)
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Advanced_Concepts.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,1259 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+<section id="sect-Reference_Guide-Understanding_how_configuration_files_are_loaded-Advanced_concepts_for_the_PortalContainers">
+ <title>Advanced concepts for the <emphasis>PortalContainers</emphasis></title>
+ <para>
+ 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-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">
+<web-app>
+...
+ <!-- ================================================================== -->
+ <!-- LISTENER -->
+ <!-- ================================================================== -->
+ <listener>
+ <listener-class>org.exoplatform.container.web.PortalContainerConfigOwner</listener-class>
+ </listener>
+...
+</web-app></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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>
+ </para>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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>
+ <init-params>
+ <!-- The name of the default portal container -->
+ <value-param>
+ <name>default.portal.container</name>
+ <value>myPortal</value>
+ </value-param>
+ <!-- The name of the default rest ServletContext -->
+ <value-param>
+ <name>default.rest.context</name>
+ <value>myRest</value>
+ </value-param>
+ <!-- The name of the default realm -->
+ <value-param>
+ <name>default.realm.name</name>
+ <value>my-exo-domain</value>
+ </value-param>
+ <!-- Indicates whether the unregistered webapps have to be ignored -->
+ <value-param>
+ <name>ignore.unregistered.webapp</name>
+ <value>true</value>
+ </value-param>
+ <!-- The default portal container definition -->
+ <!-- It cans be used to avoid duplicating configuration -->
+ <object-param>
+ <name>default.portal.definition</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinition">
+ <!-- All the dependencies of the portal container ordered by loading priority -->
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>foo</string>
+ </value>
+ <value>
+ <string>foo2</string>
+ </value>
+ <value>
+ <string>foo3</string>
+ </value>
+ </collection>
+ </field>
+ <!-- A map of settings tied to the default portal container -->
+ <field name="settings">
+ <map type="java.util.HashMap">
+ <entry>
+ <key>
+ <string>foo5</string>
+ </key>
+ <value>
+ <string>value</string>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>string</string>
+ </key>
+ <value>
+ <string>value0</string>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>int</string>
+ </key>
+ <value>
+ <int>100</int>
+ </value>
+ </entry>
+ </map>
+ </field>
+ <!-- The path to the external properties file -->
+ <field name="externalSettingsPath">
+ <string>classpath:/org/exoplatform/container/definition/default-settings.properties</string>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component></programlisting>
+ <table id="tabl-Reference_Guide-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.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>
+
+ </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>
+
+ </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>
+
+ </tbody>
+
+ </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>
+
+ </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>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Add PortalContainer Definitions</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the PortalContainerDefinitions -->
+ <set-method>registerPlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionPlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionPlugin</type>
+ <init-params>
+ <object-param>
+ <name>portal</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinition">
+ <!-- The name of the portal container -->
+ <field name="name">
+ <string>myPortal</string>
+ </field>
+ <!-- The name of the context name of the rest web application -->
+ <field name="restContextName">
+ <string>myRest</string>
+ </field>
+ <!-- The name of the realm -->
+ <field name="realmName">
+ <string>my-domain</string>
+ </field>
+ <!-- All the dependencies of the portal container ordered by loading priority -->
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>foo</string>
+ </value>
+ <value>
+ <string>foo2</string>
+ </value>
+ <value>
+ <string>foo3</string>
+ </value>
+ </collection>
+ </field>
+ <!-- A map of settings tied to the portal container -->
+ <field name="settings">
+ <map type="java.util.HashMap">
+ <entry>
+ <key>
+ <string>foo</string>
+ </key>
+ <value>
+ <string>value</string>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>int</string>
+ </key>
+ <value>
+ <int>10</int>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>long</string>
+ </key>
+ <value>
+ <long>10</long>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>double</string>
+ </key>
+ <value>
+ <double>10</double>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>boolean</string>
+ </key>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </entry>
+ </map>
+ </field>
+ <!-- The path to the external properties file -->
+ <field name="externalSettingsPath">
+ <string>classpath:/org/exoplatform/container/definition/settings.properties</string>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+ </external-component-plugins></programlisting>
+ <table id="tabl-Reference_Guide-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>
+ 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>
+
+ </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>
+
+ </itemizedlist>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ </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>
+
+ </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>
+
+ </orderedlist>
+ </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>
+
+ </orderedlist>
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+ </table>
+ <table id="tabl-Reference_Guide-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 and the parameter <emphasis>default.portal.container</emphasis> are both empty, the default value will be <emphasis>"portal".</emphasis>
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+ </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>
+
+ </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>
+
+ </orderedlist>
+ </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>
+
+ </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>
+
+ </orderedlist>
+ </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>
+ 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>
+
+ </orderedlist>
+ </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>
+
+ </orderedlist>
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </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>
+
+ </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>
+ 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 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>
+
+ </orderedlist>
+
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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.realm
+ </entry>
+ <entry>
+ Gives the realm name of the current portal container.
+ </entry>
+
+ </row>
+
+ </tbody>
+
+ </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">
+ <component>
+ <type>org.exoplatform.container.TestPortalContainer$MyComponent</type>
+ <init-params>
+ <!-- The name of the portal container -->
+ <value-param>
+ <name>portal</name>
+ <value>${portal.container.name}</value>
+ </value-param>
+ <!-- The name of the rest ServletContext -->
+ <value-param>
+ <name>rest</name>
+ <value>${portal.container.rest}</value>
+ </value-param>
+ <!-- The name of the realm -->
+ <value-param>
+ <name>realm</name>
+ <value>${portal.container.realm}</value>
+ </value-param>
+ <value-param>
+ <name>foo</name>
+ <value>${portal.container.foo}</value>
+ </value-param>
+ <value-param>
+ <name>before foo after</name>
+ <value>before ${portal.container.foo} after</value>
+ </value-param>
+ </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:
+<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>
+
+<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:
+<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>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Change PortalContainer Definitions</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerChangePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionChangePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionChangePlugin</type>
+ <init-params>
+ <value-param>
+ <name>apply.default</name>
+ <value>true</value>
+ </value-param>
+ <values-param>
+ <name>apply.specific</name>
+ <value>foo1</value>
+ <value>foo2</value>
+ </values-param>
+ <object-param>
+ <name>change</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependencies">
+ <!-- The list of name of the dependencies to add -->
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>foo</string>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+ <table id="tabl-Reference_Guide-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.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>
+
+ </tbody>
+
+ </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>
+
+ </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 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 not <envar>null</envar>. The corresponding changes will be applied to the given list of specific portal containers.
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+ <section id="sect-Reference_Guide-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-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-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>
+
+ </tbody>
+
+ </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>
+
+<programlisting language="XML" role="XML"><external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Change PortalContainer Definitions</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerChangePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionChangePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionChangePlugin</type>
+ <init-params>
+ <value-param>
+ <name>apply.default</name>
+ <value>true</value>
+ </value-param>
+ <object-param>
+ <name>change</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependencies">
+ <!-- The list of name of the dependencies to add -->
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>foo</string>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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>
+
+ </tbody>
+
+ </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>
+
+<programlisting language="XML" role="XML"><external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Change PortalContainer Definitions</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerChangePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionChangePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionChangePlugin</type>
+ <init-params>
+ <value-param>
+ <name>apply.default</name>
+ <value>true</value>
+ </value-param>
+ <object-param>
+ <name>change</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesBefore">
+ <!-- The list of name of the dependencies to add -->
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>foo</string>
+ </value>
+ </collection>
+ </field>
+ <!-- The name of the target dependency -->
+ <field name="target">
+ <string>foo2</string>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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>
+
+ </tbody>
+
+ </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>
+
+<programlisting language="XML" role="XML"><external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Change PortalContainer Definitions</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerChangePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionChangePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionChangePlugin</type>
+ <init-params>
+ <value-param>
+ <name>apply.default</name>
+ <value>true</value>
+ </value-param>
+ <object-param>
+ <name>change</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinitionChange$AddDependenciesAfter">
+ <!-- The list of name of the dependencies to add -->
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>foo</string>
+ </value>
+ </collection>
+ </field>
+ <!-- The name of the target dependency -->
+ <field name="target">
+ <string>foo2</string>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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>
+
+ </tbody>
+
+ </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>
+
+<programlisting language="XML" role="XML"><external-component-plugins>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <target-component>org.exoplatform.container.definition.PortalContainerConfig</target-component>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Change PortalContainer Definitions</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerChangePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionChangePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionChangePlugin</type>
+ <init-params>
+ <value-param>
+ <name>apply.default</name>
+ <value>true</value>
+ </value-param>
+ <object-param>
+ <name>change</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinitionChange$AddSettings">
+ <!-- The settings to add to the to the portal containers -->
+ <field name="settings">
+ <map type="java.util.HashMap">
+ <entry>
+ <key>
+ <string>string</string>
+ </key>
+ <value>
+ <string>value1</string>
+ </value>
+ </entry>
+ <entry>
+ <key>
+ <string>stringX</string>
+ </key>
+ <value>
+ <string>value1</string>
+ </value>
+ </entry>
+ </map>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+
+ </section>
+
+
+ </section>
+
+
+ </section>
+
+ <section id="sect-Reference_Guide-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>
+ <component-plugin>
+ <!-- The name of the plugin -->
+ <name>Disable a PortalContainer</name>
+ <!-- The name of the method to call on the PortalContainerConfig in order to register the changes on the PortalContainerDefinitions -->
+ <set-method>registerDisablePlugin</set-method>
+ <!-- The full qualified name of the PortalContainerDefinitionDisablePlugin -->
+ <type>org.exoplatform.container.definition.PortalContainerDefinitionDisablePlugin</type>
+ <init-params>
+ <!-- The list of the name of the portal containers to disable -->
+ <values-param>
+ <name>names</name>
+ <value>foo</value>
+ </values-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+ <table id="tabl-Reference_Guide-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>
+
+ </tbody>
+
+ </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>
+
+ </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>
+</filter>
+
+<filter-mapping>
+ <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>
+
+ </section>
+
+</section>
\ No newline at end of file
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Config_Retrieval.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,176 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+
+ <section id="sect-Reference_Guide-Understanding_how_configuration_files_are_loaded-Configuration_Retrieval">
+ <title></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-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>
+ 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>
+ External configuration for services of named portal can be found at <emphasis>$AS_HOME/exo-conf/portal/$PORTAL_NAME/configuration.xml</emphasis>
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+ <section id="sect-Reference_Guide-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>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>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>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>
+
+ </itemizedlist>
+
+ </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>
+ 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>
+ <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>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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.
+<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
+ Add configuration jndi:/localhost/portal/WEB-INF/conf/configuration.xml
+ import jndi:/localhost/portal/WEB-INF/conf/common/common-configuration.xml
+ import jndi:/localhost/portal/WEB-INF/conf/database/database-configuration.xml
+ import jndi:/localhost/portal/WEB-INF/conf/ecm/jcr-component-plugins-configuration.xml
+ import jndi:/localhost/portal/WEB-INF/conf/jcr/jcr-configuration.xml
+ ......</programlisting>
+ </para>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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>
\ No newline at end of file
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Containers.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,96 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+ <section id="sect-Reference_Guide-Foundations-Configuring_a_portal_container">
+ <title>Configuring a portal container</title>
+ <para>
+ A <literal>portal container</literal> is defined by several attributes:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Portal Container Name</term>
+ <listitem>
+ <para>
+ This attribute is always equal to the URL context to which the current portal is bound.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>REST Context Name</term>
+ <listitem>
+ <para>
+ This attribute is used for REST access to portal application; every portal has one unique REST context name.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Realm Name</term>
+ <listitem>
+ <para>
+ This is the name of the security realm used for authentication when users log into the portal.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Dependencies</term>
+ <listitem>
+ <para>
+ This is a list of other web applications whose resources are visible to the current portal (via the extension mechanism described later), and are searched for in the specified order.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default7.xml" parse="text"/></programlisting>
+ <para>
+ Dependencies are part of the <emphasis role="bold">extension mechanism</emphasis> which is discussed later in this document.
+ </para>
+ <para>
+ Every <literal>PortalContainer</literal> is represented by a <literal>PortalContainer instance</literal>, which contains:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>eXoContainerContext</term>
+ <listitem>
+ <para>
+ This contains information about the portal.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Unified Servlet Context</term>
+ <listitem>
+ <para>
+ This deals with web-archive-relative resource loading.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Unified Classloader</term>
+ <listitem>
+ <para>
+ For classpath based resource loading.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Various methods for retrieving services</term>
+ <listitem>
+ <para>
+
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The <emphasis role="bold">Unified servlet context</emphasis> and <emphasis role="bold">unified classloader</emphasis> are part of the <emphasis role="bold">extension mechanism</emphasis> (which is detailed in the next section).
+ </para>
+ <para>
+ They provide the standard API (<literal>ServletContext</literal>, <literal>ClassLoader</literal>) with specific resource loading behavior, such as visibility into associated web application archives, configured with the dependencies property of <literal>PortalContainerDefinition</literal>.
+ </para>
+ <para>
+ Resources from other web applications are queried in the order specified by the dependencies. The later entries in the list override the previous ones.
+ </para>
+ </section>
\ No newline at end of file
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Configuring_Services.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,713 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+ <section id="sect-Reference_Guide-Foundations-Configuring_services">
+ <title>Configuring Services</title>
+ <para>
+ The eXo Kernel uses dependency injection to create services based on <filename>configuration.xml</filename> configuration files. The location of the configuration files determines if services are placed into the <literal>RootContainer</literal> scope, or into the <literal>PortalContainer</literal> scope.
+ </para>
+ <para>
+ When creating a service, you also should declare its existence to the <emphasis role="bold">Container</emphasis>, therefore you create a first simple configuration file. Copy the following code to a file called "configuration.xml" and place this file in a /conf subdirectory of your service base folder. As you already know the container looks for a "/conf/configuration.xml" file in each jar-file.
+ </para>
+ <para>
+ All <filename>configuration.xml</filename> files located at <filename>conf/configuration.xml</filename> in the classpath (any directory, or any jar in the classpath) will have their services configured in the <literal>RootContainer</literal> scope. All <filename>configuration.xml</filename> files located at <filename>conf/portal/configuration.xml</filename> in the classpath will have their services configured at the <literal>PortalContainer</literal> scope.
+ </para>
+ <para>
+ Additionally, <emphasis role="bold">portal extensions</emphasis> can contain configuration in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/configuration.xml</filename>, and will also have their services configured in the <literal>PortalContainer</literal> scope.
+ </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.
+ </para>
+ <note>
+ <para>
+ <emphasis role="bold">Portal extensions</emphasis> are described later in this document.
+ </para>
+ </note>
+ <section id="sect-Reference_Guide-Foundations-Configuration_syntax">
+ <title>Configuration syntax</title>
+ <section id="sect-Reference_Guide-Configuration_syntax-Components">
+ <title>Components</title>
+ <para>
+ A service component is defined in <filename>configuration.xml</filename> by using a <emphasis role="bold"><component></emphasis> element.
+ </para>
+ <para>
+ Only one piece of information is required when defining a service; the service implementation class. This is specified using <literal><type></literal>
+ </para>
+ <para>
+ Every component has a <literal><key></literal> that identifies it. If not explicitly set, a key defaults to the value of <literal><type></literal>. If a key can be loaded as a class, a class object is used as a key, otherwise a string is used.
+ </para>
+ <para>
+ The usual approach is to specify an interface as a key.
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default.xml" parse="text"/></programlisting>
+
+ <para>
+ The configuration you find inside the jar file is considered as the default configuration. If you want to override this default configuration you can do it in different places outside the jar. When the container finds several configurations for the same service, the configuration which is found later replaces completely the one found previously. Let's call this the <emphasis>configuration override mechanism</emphasis>.
+ </para>
+ <section id="sect-Reference_Guide-Configuration_Retrieval-RootContainer">
+ <title>RootContainer</title>
+ <para>
+ As PortalContainer depends on the RootContainer, we will start by looking into this one.
+ </para>
+ <para>
+ The retrieval sequence in short:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Services default <classname>RootContainer</classname> configurations from JAR files <emphasis>/conf/configuration.xml</emphasis>
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ External <classname>RootContainer</classname> configuration, to be found at <emphasis>exo-tomcat/exo-conf/configuration.xml</emphasis>
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+ <note>
+ <para>
+ Naturally you always have to replace <parameter>exo-tomcat</parameter> by your own folder name.
+ </para>
+
+ </note>
+ <para>
+ <emphasis role="bold">HashTable</emphasis> The <classname>RootContainer</classname> creates a java <classname>HashTable</classname> which contains key-value pairs for the services. The qualified interface name of each service is used as key for the hashtable. Hopefully you still remember that the <parameter><key></parameter> tag of the configuration file contains the interface name? The value of each hashtable pair is an object that contains the service configuration (yes, this means the whole structure between the <parameter><component></parameter> tags of your <filename>configuration.xml</filename> file).
+ </para>
+ <para>
+ The <classname>RootContainer</classname> runs over all jar files you find in <emphasis>exo-tomcat/lib</emphasis> and looks if there is a configuration file at <emphasis>/conf/configuration.xml</emphasis>, the services configured in this file are added to the hashtable. That way - at the end of this process - the default configurations for all services are stored in the hashtable.
+ </para>
+ <note>
+ <para>
+ What happens if the same service - recognized by the same qualified interface name - is configured in different jars? As the service only can exist one time the configuration of the jar found later overrides the previous configuration. You know that the loading <emphasis role="bold">order of the jars is unpredictable</emphasis> you <emphasis role="bold">must not depend on this</emphasis>.
+ </para>
+
+ </note>
+ <para>
+ If you wish to provide your own configurations for one or several services, you can do it in a general configuration file that has to be placed at <emphasis>exo-tomcat/exo-conf/configuration.xml</emphasis>. Do not search for such a file on your computer - you won't find one, because this option is not used in the default installation. Here again the same rule applies: <emphasis>The posterior configuration replaces the previous one</emphasis>.
+ </para>
+ <para>
+ The further configuration retrieval depends on the container type.
+ </para>
+ <section id="sect-Reference_Guide-Configuration_Retrieval-PortalContainer">
+ <title>PortalContainer</title>
+ <para>
+ The PortalContainer takes the hashtable filled by the RootContainer and continues to look in some more places. Here you get the opportunity to replace RootContainer configurations by those which are specific to your portal. Again, the configurations are overridden whenever necessary.
+ </para>
+ <para>
+ In short PortalContainer configurations are retrieved in the following lookup sequence :
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Take over the configurations of the RootContainer
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Default PortalContainer configurations from all JAR files (folder <emphasis>/conf/portal/configuration.xml</emphasis>)
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ Web application configurations from the portal.war file - or the <emphasis>portal</emphasis> weppapp (folder <emphasis>/WEB-INF/conf/configuration.xml</emphasis>)
+ </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ External configuration for services of a named portal, it will be found at <emphasis>exo-tomcat/exo-conf/portal/$portal_name/configuration.xml</emphasis> (as of Portal 2.5)
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+ <para>
+ You see, here the <emphasis>/conf/portal/configuration.xml</emphasis> file of each jar enters the game, they are searched at first. Next, there is nearly always a configuration.xml in the portal.war file (or in the portal webapp folder), you find this file at <emphasis>/WEB-INF/conf/configuration.xml</emphasis>. If you open it, you will find a lot of import statements that point to other configuration files in the same portal.war (or portal webapp).
+ </para>
+ <para>
+ <emphasis role="bold">Multiple Portals</emphasis> Be aware that you might set up several different portals ("admin", "mexico", etc.), and each of these portals will use a different PortalContainer. And each of these PortalContainers can be configured separately. As of eXo Portal 2.5 you also will be able to provide configurations from outside the jars and wars or webapps. Put a configuration file in <emphasis>exo-tomcat/exo-conf/portal/$portal_name/configuration.xml</emphasis> where <parameter>$portal_name</parameter> is the name of the portal you want to configure for . But normally you only have one portal which is called "portal" so you use <emphasis>exo-tomcat/exo-conf/portal/portal/configuration.xml</emphasis>.
+ </para>
+ <note>
+ <para>
+ As of eXo Portal 2.5 you can override the external configuration location with the system property <emphasis>exo.conf.dir</emphasis>. If the property exists its value will be used as path to the eXo configuration directory, that means this is an alternative to <emphasis>exo-tomcat/exo-conf</emphasis>. Just put this property in the command line: <emphasis>java -Dexo.conf.dir=/path/to/exo/conf</emphasis> or use eXo.bat or eXo.sh. In this particular use case, you have no need to use any prefixes in your configuration file to import other files. For example, if your configuration file is <emphasis>exo-tomcat/exo-conf/portal/PORTAL_NAME/configuration.xml</emphasis> and you want to import the configuration file <emphasis>exo-tomcat/exo-conf/portal/PORTAL_NAME/mySubConfDir/myConfig.xml</emphasis>, you can do it by adding <emphasis><import>mySubConfDir/myConfig.xml</import></emphasis> to your configuration file.
+ </para>
+
+ </note>
+ <note>
+ <para>
+ Under <emphasis role="bold">JBoss</emphasis> application server <emphasis>exo-conf</emphasis> will be looked up in directory described by JBoss System property <emphasis>jboss.server.config.url</emphasis>. If the property is not found or empty <emphasis>exo-jboss/exo-conf</emphasis> will be asked (since kernel 2.0.4).
+ </para>
+
+ </note>
+ </section>
+ </section>
+
+ <section id="sect-Reference_Guide-Configuration_syntax-External_Plug_ins">
+ <title>External Plug-ins</title>
+ <para>
+ The eXo Kernel supports non-component objects that can be configured, instantiated, and injected into registered components using method calls. This '<emphasis>plugin</emphasis>' method allows portal extensions to add additional configurations to core services.
+ </para>
+ <para>
+ An external plugin is defined by using the <literal><external-component-plugin></literal> wrapper element which contains one or more <literal><component-plugin></literal> definitions.
+ </para>
+ <para>
+ The <literal><external-component-plugin></literal> element uses <literal><target-component></literal> to specify a target service component that will receive injected objects.
+ </para>
+ <para>
+ Every <literal><component-plugin></literal> defines an implementation type, and a method on the target component to use for injection (<literal><set-method></literal>).
+ </para>
+ <para>
+ A plugin implementation class has to implement the <emphasis role="bold">org.exoplatform.container.component. ComponentPlugin</emphasis> interface.
+ </para>
+ <para>
+ In the following example the <literal>PortalContainerDefinitionPlugin</literal> implements the <literal>ComponentPlugin</literal>:
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default1.xml" parse="text"/></programlisting>
+ <para>
+ The <emphasis role="bold"><target-component></emphasis> defines the service for which the plugin is defined. The configuration is injected by the container using a method that is defined in <emphasis role="bold"><set-method></emphasis>. The method has exactly one argument of the type org.exoplatform.services.cms.categories.impl.TaxonomyPlugin:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ addTaxonomyPlugin(org.exoplatform.services.cms.categories.impl.TaxonomyPlugin plugin)
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The content of <emphasis role="bold"><init-params></emphasis> corresponds to the structure of the TaxonomyPlugin object.
+ </para>
+ <note>
+ <para>
+ You can configure the component CategoriesService using the addTaxonomyPlugin as often as you wish, you can also call addTaxonomyPlugin in different configuration files. The method addTaxonomyPlugin is then called several times, everything else depends on the implementation of the method.
+ </para>
+ </note>
+ </section>
+ <section id="sect-Reference_Guide-Service_Configuration_for_Beginners-Service_instantiation">
+ <title>Service instantiation</title>
+ <para>
+ As you have already learned the services are all singletons, so that the container creates only one single instance of each container. The services are created by calling the constructors (called <emphasis>constructor injection</emphasis>). If there are only zero-arguments constructors (<code>Foo public Foo(){}</code>) there are no problems to be expected. That's easy.
+ </para>
+ <para>
+ But now look at <ulink url="https://anonsvn.jboss.org/repos/exo-jcr/core/trunk/exo.core.component.org...">https://anonsvn.jboss.org/repos/exo-jcr/core/trunk/exo.core.component.org...</ulink>
+ </para>
+ <para>
+ This JDBC implementation of BaseOrganizationService interface has only one constructor:
+ </para>
+
+<programlisting language="Java" role="Java">public OrganizationServiceImpl(ListenerService listenerService, DatabaseService dbService);</programlisting>
+ <para>
+ You see this service depends on two other services. In order to be able to call this constructor the container first needs a <classname>ListenerService</classname> and a <classname>DatabaseService</classname>. Therefore these services must be instantiated before <classname>BaseOrganizationService</classname>, because <classname>BaseOrganizationService</classname> depends on them.
+ </para>
+ <para>
+ For this purpose the container first looks at the constructors of all services and creates a matrix of service dependencies in order to call the services in a proper order. If for any reason there are interdependencies or circular dependencies you will get a java <classname>Exception</classname>. <emphasis>In this way the dependencies are injected by the container</emphasis>.
+ </para>
+ <note>
+ <para>
+ What happens if one service has more than one constructor? The container always tries first to use the constructor with a maximum of arguments, if this is not possible the container continues step by step with constructors that have less arguments until arriving at the zero-argument constructor (if there is one).
+ </para>
+
+ </note>
+
+ </section>
+ <section id="sect-Reference_Guide-Sample_Service-Service_Access">
+ <title>Service Access</title>
+ <para>
+ As you want to follow the principle of <emphasis role="bold">Inversion of Control,</emphasis> you <emphasis role="bold">must not</emphasis> access the service directly. You need a <emphasis role="bold">Container</emphasis> to access the service.
+ </para>
+ <para>
+ With this command you get your current container:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">ExoContainer myContainer = ExoContainerContext.getCurrentContainer();</emphasis>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <para>
+ Whenever you need one of the services that you have configured use the method:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">myContainer.getComponentInstance(class)</emphasis>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <para>
+ In our case:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">ArticleStatsService statsService = (ArticleStatsService) myContainer.getComponentInstance(ArticleStatsService.class);</emphasis>
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+ <para>
+ Recapitulation:
+ </para>
+
+<programlisting language="Java" role="Java">package com.laverdad.common;
+
+import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.ExoContainerContext;
+import com.laverdad.services.*;
+
+public class Statistics {
+
+ public int makeStatistics(String articleText) {
+ ExoContainer myContainer = ExoContainerContext.getCurrentContainer();
+ ArticleStatsService statsService = (ArticleStatsService)
+ myContainer.getComponentInstance(ArticleStatsService.class);
+ int numberOfSentences = statsService.calcSentences(articleText);
+ return numberOfSentences;
+ }
+
+ public static void main( String args[]) {
+ Statistics stats = new Statistics();
+ String newText = "This is a normal text. The method only counts the number of periods. "
+ + "You can implement your own implementation with a more exact counting. "
+ + "Let`s make a last sentence.";
+ System.out.println("Number of sentences: " + stats.makeStatistics(newText));
+ }
+}</programlisting>
+
+ </section>
+ <section id="sect-Reference_Guide-Configuration_syntax-Includes_and_special_URLs">
+ <title>Includes, and special URLs</title>
+ <para>
+ It is possible to divide the <filename>configuration.xml</filename> file into many smaller files, which are then included into the main configuration file.
+ </para>
+ <para>
+ The included files must be valid xml files; they cannot be fragments of text.
+ </para>
+ <para>
+ Below is an example <filename>configuration.xml</filename> that 'outsources' its content into several files:
+ </para>
+ <programlistingco>
+ <areaspec>
+ <area coords="6" id="area-Reference_Guide-Configuration_syntax-Includes_and_special_URLs-url_schema"/>
+ </areaspec>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default2.xml" parse="text"/></programlisting>
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide-Configuration_syntax-Includes_and_special_URLs-url_schema">
+ <para>
+ This line is being used to reference another configuration file. The <code>war:</code> URL schema indicates that the following path is to be resolved relative to the current <literal>PortalContainer</literal>'s servlet context resource path, starting with <emphasis role="bold">WEB-INF</emphasis> as a root.
+ </para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+ <note>
+ <para>
+ The current <literal>PortalContainer</literal> is really a newly created <literal>PortalContainer</literal>, as <code>war:</code> URLs only make sense for <literal>PortalContainer</literal> scoped configuration.
+ </para>
+ </note>
+ <para>
+ Through the extension mechanism the servlet context used for resource loading is a <emphasis role="bold">unified servlet context</emphasis> (this is explained in a later section).
+ </para>
+ <para>
+ To have an 'include' path resolved relative to current classpath (context classloader), use a <code>'jar:'</code> URL schema.
+ </para>
+ </section>
+ <section id="sect-Reference_Guide-Configuration_syntax-Special_variables">
+ <title>Special variables</title>
+ <para>
+ Configuration files may contain a <emphasis role="bold">special variable</emphasis> reference <emphasis>${container.name.suffix}</emphasis>. This variable resolves to the name of the current portal container, prefixed by underscore (_).
+ </para>
+ <para>
+ This facilitates reuse of configuration files in situations where portal-specific unique names need to be assigned to some resources; JNDI names, Database/DataSource names and JCR repository names, for example.
+ </para>
+ <para>
+ This variable is only defined when there is a current <literal>PortalContainer</literal> available and is only available for <literal>PortalContainer</literal> scoped services.
+ </para>
+ <para>
+ A good example of this is the <emphasis role="bold">HibernateService</emphasis>:
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default3.xml" parse="text"/></programlisting>
+ </section>
+ </section>
+ <section id="sect-Reference_Guide-Foundations-InitParams_configuration_element">
+ <title>InitParams configuration element</title>
+ <para>
+ <parameter>InitParams</parameter> is a configuration element that is essentially a map of key-value pairs, where <emphasis role="bold">key</emphasis> is always a <literal>String</literal>, and <emphasis role="bold">value</emphasis> can be any type that can be described using the kernel XML configuration.
+ </para>
+ <para>
+ Service components that form the JBoss Enterprise Portal Platform infrastructure use <parameter>InitParams</parameter> elements to configure themselves. A component can have one instance of <parameter>InitParams</parameter> injected at most.
+ </para>
+ <para>
+ If the service component's constructor takes <parameter>InitParams</parameter> as any of the parameters it will automatically be injected at component instantiation time.
+ </para>
+ <para>
+ The XML configuration for a service component that expects an <parameter>InitParams</parameter> element must have an <parameter><init-params></parameter> element present, however this element can be left empty.
+ </para>
+ <para>
+ Below is an example of how the kernel XML configuration syntax looks when creating <parameter>InitParams</parameter> instances:
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default4.xml" parse="text"/></programlisting>
+ <para>
+ An <parameter>InitParams</parameter> element description begins with an <parameter><init-params></parameter> element.
+ </para>
+ <para>
+ It can have zero or more children elements, each of which is one of the following:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter><value-param></parameter>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter><values-param></parameter>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <parameter><properties-param></parameter>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ or
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <parameter><object-param></parameter>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Each of these child elements takes a <parameter><name></parameter> that serves as a map entry key, and an optional <parameter><description></parameter>. It also takes a type-specific <emphasis role="bold">value</emphasis> specification.
+ </para>
+ <para>
+ The value specification for the <parameter><properties-param></parameter> defines one or more <parameter><property></parameter> elements, each of which specifies two strings; a property name and a property value. This is evident in the two previous examples.
+ </para>
+ <para>
+ Each <parameter><properties-params></parameter> defines one <literal>java.util.Properties</literal> instance.
+ </para>
+ <para>
+ The value specification for <parameter><value-param></parameter> elements is a <parameter><value></parameter> element which defines a <literal>String</literal> instance.
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default5.xml" parse="text"/></programlisting>
+ <para>
+ The value specification for <parameter><values-param></parameter> requires one or more <parameter><value></parameter> elements. Each <parameter><value></parameter> represents one <literal>String</literal> instance. All <literal>String</literal> values are then collected into a <literal>java.util.List</literal> instance.
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default6.xml" parse="text"/></programlisting>
+ <para>
+ For <parameter><object-param></parameter> entries, the value specification consists of an <parameter><object></parameter> element which is used for plain Java style object specification (specifying an implementation <emphasis>class - <parameter><type></parameter></emphasis>, and <emphasis>property values - <parameter><field></parameter></emphasis>).
+ </para>
+ <para>
+ The following section has an example of specifying a field of with a <literal>Collection</literal> type.
+ </para>
+ <para>
+ The <parameter>InitParams</parameter> structure (the names and types of entries) is specific for each service, as it is the code inside a service components' class that defines which entry names to look up and what types it expects to find.
+ </para>
+ <section id="sect-Reference_Guide-Parameters-Value_Param">
+ <title>Value-Param</title>
+ <para>
+ There is an value-param example:
+ </para>
+ <programlisting language="XML" role="XML"> <component>
+ <key>org.exoplatform.portal.config.UserACL</key>
+ <type>org.exoplatform.portal.config.UserACL</type>
+ <init-params>
+...
+ <value-param>
+ <name>access.control.workspace</name>
+ <description>groups with memberships that have the right to access the User Control Workspace</description>
+ <value>*:/platform/administrators,*:/organization/management/executive-board</value>
+ </value-param>
+...
+ </component></programlisting>
+ <para>
+ The UserACL class accesses to the <emphasis role="bold">value-param</emphasis> in its constructor.
+ </para>
+ <programlisting language="Java" role="Java">package org.exoplatform.portal.config;
+public class UserACL {
+
+ public UserACL(InitParams params) {
+ UserACLMetaData md = new UserACLMetaData();
+ ValueParam accessControlWorkspaceParam = params.getValueParam("access.control.workspace");
+ if(accessControlWorkspaceParam != null) md.setAccessControlWorkspace(accessControlWorkspaceParam.getValue());
+...</programlisting>
+ </section>
+ <section id="sect-Reference_Guide-Parameters-Properties_Param">
+ <title>Properties-Param</title>
+ <para>
+ Properties are name-value pairs. Both the name and the value are Java Strings.
+ </para>
+ <para>
+ Here you see the hibernate configuration example:
+ </para>
+ <programlisting language="XML" role="XML"> <component>
+ <key>org.exoplatform.services.database.HibernateService</key>
+ <type>org.exoplatform.services.database.impl.HibernateServiceImpl</type>
+ <init-params>
+ <properties-param>
+ <name>hibernate.properties</name>
+ <description>Default Hibernate Service</description>
+ <property name="hibernate.show_sql" value="false"/>
+ <property name="hibernate.cglib.use_reflection_optimizer" value="true"/>
+ <property name="hibernate.connection.url" value="jdbc:hsqldb:file:../temp/data/exodb"/>
+ <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+...
+ </properties-param>
+ </init-params>
+ </component></programlisting>
+ <para>
+ In the org.exoplatform.services.database.impl.HibernateServiceImpl you will find that the name "hibernate.properties" of the properties-param is used to access the properties.
+ </para>
+ <programlisting language="Java" role="Java">package org.exoplatform.services.database.impl;
+
+public class HibernateServiceImpl implements HibernateService, ComponentRequestLifecycle {
+ public HibernateServiceImpl(InitParams initParams, CacheService cacheService) {
+ PropertiesParam param = initParams.getPropertiesParam("hibernate.properties");
+...
+}</programlisting>
+ </section>
+ <section id="sect-Reference_Guide-Parameters-Object_Param">
+ <title>Object-Param</title>
+ <para>
+ Let's have a look at the configuration of the LDAPService. It's not important to know LDAP, we only discuss the parameters.
+ </para>
+ <programlisting language="XML" role="XML"><component>
+ <key>org.exoplatform.services.ldap.LDAPService</key>
+ <type>org.exoplatform.services.ldap.impl.LDAPServiceImpl</type>
+ <init-params>
+ <object-param>
+ <name>ldap.config</name>
+ <description>Default ldap config</description>
+ <object type="org.exoplatform.services.ldap.impl.LDAPConnectionConfig">
+ <field name="providerURL"><string>ldaps://10.0.0.3:636</string></field>
+ <field name="rootdn"><string>CN=Administrator,CN=Users,DC=exoplatform,DC=org</string></field>
+ <field name="password"><string>exo</string></field>
+ <field name="version"><string>3</string></field>
+ <field name="minConnection"><int>5</int></field>
+ <field name="maxConnection"><int>10</int></field>
+ <field name="referralMode"><string>ignore</string></field>
+ <field name="serverName"><string>active.directory</string></field>
+ </object>
+ </object-param>
+ </init-params>
+</component></programlisting>
+ <para>
+ You see here an <emphasis role="bold">object-param</emphasis> is being used to pass the parameters inside an object (actually a java bean). It consists of a <emphasis role="bold">name</emphasis>, a <emphasis role="bold">description</emphasis> and exactly one <emphasis role="bold">object</emphasis>. The object defines the <emphasis role="bold">type</emphasis> and a number of <emphasis role="bold">fields</emphasis>.
+ </para>
+ <para>
+ Here you see how the service accesses the object:
+ </para>
+ <programlisting language="Java" role="Java">package org.exoplatform.services.ldap.impl;
+
+public class LDAPServiceImpl implements LDAPService {
+...
+ public LDAPServiceImpl(InitParams params) {
+ LDAPConnectionConfig config = (LDAPConnectionConfig) params.getObjectParam("ldap.config")
+ .getObject();
+...</programlisting>
+ <para>
+ The passed object is LDAPConnectionConfig which is a classic <emphasis role="bold">java bean</emphasis>. It contains all fields and also the appropriate getters and setters (not listed here). You also can provide default values. The container creates a new instance of your bean and calls all setters whose values are configured in the configuration file.
+ </para>
+ <programlisting language="Java" role="Java">package org.exoplatform.services.ldap.impl;
+
+public class LDAPConnectionConfig {
+ private String providerURL = "ldap://127.0.0.1:389";
+ private String rootdn;
+ private String password;
+ private String version;
+ private String authenticationType = "simple";
+ private String serverName = "default";
+ private int minConnection;
+ private int maxConnection;
+ 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:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">string, int, long, boolean, date, double</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Have a look on this type test xml file: <ulink url="https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk/exo.kernel.container...">https://anonsvn.jboss.org/repos/exo-jcr/kernel/trunk/exo.kernel.container...</ulink>.
+ </para>
+ </section>
+ <section id="sect-Reference_Guide-Parameters-Collection">
+ <title>Collection</title>
+ <para>
+ You also can use java collections to configure your service. In order to see an example, let's open the database-organization-configuration.xml file. This file defines a default user organization (users, groups, memberships/roles) of your portal. They use component-plugins which are explained later. You will see that object-param is used again.
+ </para>
+ <para>
+ There are two collections: The first collection is an <emphasis role="bold">ArrayList</emphasis>. This ArrayList contains only one value, but there could be more. The only value is an object which defines the field of the NewUserConfig$JoinGroup bean.
+ </para>
+ <para>
+ The second collection is a <emphasis role="bold">HashSet</emphasis> that is a set of strings.
+ </para>
+ <programlisting language="XML" role="XML"> <component-plugin>
+ <name>new.user.event.listener</name>
+ <set-method>addListenerPlugin</set-method>
+ <type>org.exoplatform.services.organization.impl.NewUserEventListener</type>
+ <description>this listener assign group and membership to a new created user</description>
+ <init-params>
+ <object-param>
+ <name>configuration</name>
+ <description>description</description>
+ <object type="org.exoplatform.services.organization.impl.NewUserConfig">
+ <field name="group">
+ <collection type="java.util.ArrayList">
+ <value>
+ <object type="org.exoplatform.services.organization.impl.NewUserConfig$JoinGroup">
+ <field name="groupId"><string>/platform/users</string></field>
+ <field name="membership"><string>member</string></field>
+ </object>
+ </value>
+ </collection>
+ </field>
+ <field name="ignoredUser">
+ <collection type="java.util.HashSet">
+ <value><string>root</string></value>
+ <value><string>john</string></value>
+ <value><string>marry</string></value>
+ <value><string>demo</string></value>
+ <value><string>james</string></value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component-plugin></programlisting>
+ <para>
+ Let's look at the org.exoplatform.services.organization.impl.NewUserConfig bean:
+ </para>
+ <programlisting language="Java" role="Java">public class NewUserConfig {
+ private List role;
+ private List group;
+ private HashSet ignoredUser;
+
+ ...
+
+ public void setIgnoredUser(String user) {
+ ignoredUser.add(user);
+
+ ...
+
+ static public class JoinGroup {
+ public String groupId;
+ public String membership;
+ ...
+}</programlisting>
+ <para>
+ You see the values of the HashSet are set one by one by the container, and it's the responsibility of the bean to add these values to its HashSet.
+ </para>
+ <para>
+ The JoinGroup object is just an inner class and implements a bean of its own. It can be accessed like any other inner class using NewUserConfig.JoinGroup.
+ </para>
+ </section>
+ </section>
+ <section id="sect-Reference_Guide-Miscellaneous-Configuration_Logging">
+ <title>Configuration Logging</title>
+ <para>
+ In case you need to solve problems with your service configuration, you have to know from which JAR/WAR causes your troubles. Add the JVM system property <parameter>org.exoplatform.container.configuration.debug</parameter> to your eXo.bat or eXo.sh file (exo-tomcat/bin/).
+ </para>
+
+<programlisting>set EXO_CONFIG_OPTS="-Dorg.exoplatform.container.configuration.debug"</programlisting>
+ <para>
+ If this property is set the container configuration manager reports during startup the configuration retrieval process to the standard output (System.out).
+ </para>
+
+<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
+Add configuration jndi:/localhost/portal/WEB-INF/conf/configuration.xml import jndi:/localhost/portal/WEB-INF/conf/common/common-configuration.xml
+import jndi:/localhost/portal/WEB-INF/conf/database/database-configuration.xml import jndi:/localhost/portal/WEB-INF/conf/ecm/jcr-component-plugins-configuration.xml
+import jndi:/localhost/portal/WEB-INF/conf/jcr/jcr-configuration.xml
+......</programlisting>
+
+ </section>
+ <section id="sect-Reference_Guide-Service_Configuration_in_Detail-Import">
+ <title>Import</title>
+ <para>
+ The import tag allows to link to other configuration files. These imported files can be placed anywhere. If you write a default configuration which is part of your jar file you should not import files from outside your jar.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">war</emphasis>: Imports from <emphasis role="bold">portal.war/WEB-INF</emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">jar</emphasis> or <emphasis role="bold">classpath</emphasis>: Uses the <emphasis role="bold">classloader</emphasis>, you can use this prefix in the default configuration for importing an other configuration file which is accessible by the classloader.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">file</emphasis>: Uses an <emphasis role="bold">absolute path</emphasis>, you also can put a <emphasis role="bold">URL</emphasis>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">without any prefix</emphasis>:
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ If you open the "portal/trunk/web/portal/src/main/webapp/WEB-INF/conf.configuration.xml" you will see that it consists only of imports:
+ </para>
+ <programlisting language="XML" role="XML"><import>war:/conf/common/common-configuration.xml</import>
+<import>war:/conf/common/logs-configuration.xml</import>
+<import>war:/conf/database/database-configuration.xml</import>
+<import>war:/conf/jcr/jcr-configuration.xml</import>
+<import>war:/conf/common/portlet-container-configuration.xml</import>
+...</programlisting>
+ </section>
+ <section id="sect-Reference_Guide-Service_Configuration_in_Detail-System_properties">
+ <title>System properties</title>
+ <para>
+ Since kernel 2.0.7 and 2.1, it is possible to use system properties in literal values of component configuration meta data. This makes it possible to resolve properties at runtime instead of providing a value at packaging time.
+ </para>
+ <para>
+ In portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/database/database-configuration.tmpl.xml you find an example for system properties:
+ </para>
+ <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>
+ <init-params>
+ <properties-param>
+ <name>hibernate.properties</name>
+ <description>Default Hibernate Service</description>
+...
+ <property name="hibernate.connection.url" value="${connectionUrl}"/>
+ <property name="hibernate.connection.driver_class" value="${driverClass}"/>
+ <property name="hibernate.connection.username" value="${username}"/>
+ <property name="hibernate.connection.password" value="${password}"/>
+ <property name="hibernate.dialect" value="${dialect}"/>
+...
+ </properties-param>
+ </init-params>
+ </component></programlisting>
+ <para>
+ As these are system properties you use the -D command: <emphasis role="bold">java -DconnectionUrl=jdbc:hsqldb:file:../temp/data/exodb -DdriverClass=org.hsqldb.jdbcDriver</emphasis> Or better use the parameters of eXo.bat / eXo.sh when you start eXo Portal: <emphasis role="bold">set EXO_OPTS="-DconnectionUrl=jdbc:hsqldb:file:../temp/data/exodb -DdriverClass=org.hsqldb.jdbcDriver"</emphasis>
+ </para>
+ </section>
+ </section>
+ </section>
\ No newline at end of file
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Extensions_And_Multiple_Portals.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,157 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+ <section id="sect-Reference_Guide-Foundations-The_Extension_Mechanism_and_Portal_Extensions">
+ <title>The Extension Mechanism and Portal Extensions</title>
+ <para>
+ The <emphasis role="bold">Extension mechanism</emphasis> makes it possible to override portal resources in a way similar to hardware plug-and-play functionalities.
+ </para>
+ <para>
+ Customizations can be implemented without unpacking and repacking the original portal <code>.war</code> archives by adding a <code>.war</code> archive to the resources and configuring its position in the portal's classpath. Custom <code>.war</code> archives can be created with new resources that override the resources in the original archive.
+ </para>
+ <para>
+ These archives, packaged for use through the extension mechanism, are called <emphasis role="bold">portal extensions</emphasis>.
+ </para>
+ <procedure id="proc-Reference_Guide-The_Extension_Mechanism_and_Portal_Extensions-Creating_a_portal_extension">
+ <title>Creating a portal extension</title>
+ <step>
+ <para>
+ Declare the <emphasis role="bold">PortalConfigOwner</emphasis> servlet context listener in the <filename>web.xml</filename> of your web application.
+ </para>
+ <para>
+ This example shows a portal extension called <emphasis role="bold">sample-ext</emphasis>.
+ </para>
+ <programlisting language="XML" role="XML"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default8.xml" parse="text"/></programlisting>
+ </step>
+ <step>
+ <para>
+ Add the application's servlet context name to the <literal>PortalContainerDefinition</literal>'s list of dependencies. This must be done for each portal container that you want to have access to the new application.
+ </para>
+ <para>
+ The application's position in these lists will dictate its priority when the portal loads resources. The later your application appears in the list, the higher its resource priority will be.
+ </para>
+ </step>
+ <step>
+ <para>
+ At this point your new web archive will be on both the portal's unified classpath and unified servlet context resource path.
+ </para>
+ </step>
+ </procedure>
+ <note>
+ <title>Example</title>
+ <para>
+ Refer to the code extract in <xref linkend="sect-Reference_Guide-Foundations-Configuring_a_portal_container"/> for an example of a <literal>PortalContainerDefinition</literal> that has <emphasis role="bold">sample-ext</emphasis> in its list of dependencies.
+ </para>
+ </note>
+ <section id="sect-Reference_Guide-Foundations-Running_Multiple_Portals">
+ <title>Running Multiple Portals</title>
+<!-- DOC TODO: This section requires more work to structure the information effectively. Consider sub-sections --> <para>
+ It is possible to run several independent portal containers, each bound to a different URL context, within the same JVM instance.
+ </para>
+ <para>
+ This method of deployment allows for efficient administration and resource consumption by allowing coexisting portals to <emphasis>reuse</emphasis> configuration arrangements through the extension mechanism.
+ </para>
+ <para>
+ Portals can <emphasis>inherit</emphasis> resources and configuration from existing web archives and add extra resources as needed, <emphasis>overriding</emphasis> those that need to be changed by including modified copies.
+ </para>
+ <para>
+ In order for a portal application to function correctly when deployed within a multiple portal deployment, it may have to dynamically query the information about the current portal container. The application should not make any assumptions about the name, and other information of the current portal, as there are now multiple different portals in play.
+ </para>
+ <para>
+ At any point during request processing, or life-cycle event processing, an application can retrieve this information through <literal>org.exoplatform.container.eXoContainerContext</literal>.
+ </para>
+ <para>
+ Sometimes an application must ensure that the proper <literal>PortalContainer</literal> is associated with the current <literal>eXoContainerContext</literal> call.
+ </para>
+ <para>
+ If the portal application contains servlets or servlet filters that need to access portal specific resources during their request processing, the servlet or filter must be associated with the current container.
+ </para>
+ <para>
+ A servlet in this instance should extend the <literal>org.exoplatform.container.web.AbstractHttpServlet</literal> class so as to properly initialize the current <literal>PortalContainer</literal>.
+ </para>
+ <para>
+ This will also set the current thread's context Classloader to one that looks for resources in associated web applications in the order specified by the <emphasis role="bold">dependencies</emphasis> configuration (as seen in <xref linkend="sect-Reference_Guide-Foundations-The_Extension_Mechanism_and_Portal_Extensions"/>).
+ </para>
+ <para>
+ Filter classes need to extend the <literal>org.exoplatform.container.web.AbstractFilter</literal>.
+ </para>
+ <para>
+ Both <literal>AbstractHttpServlet</literal>, and <literal>AbstractFilter</literal> have a <literal>getContainer()</literal> method, which returns the current <literal>PortalContainer</literal>.
+ </para>
+ <para>
+ If your servlet handles the requests by implementing a <literal>service()</literal> method, that method must be renamed to match the following signature:
+ </para>
+ <programlisting language="Java" role="Java"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default9.java" parse="text"/></programlisting>
+ <note>
+ <para>
+ This ensures that <literal>AbstractHttpServlet</literal>'s <literal>service()</literal> interception is not overwritten.
+ </para>
+ </note>
+ <para>
+ An application may also need access to portal information within the <emphasis role="bold">HttpSessionListener</emphasis>. Ensure the abstract class <emphasis role="bold">org.exoplatform.container.web.AbstractHttpSessionListener</emphasis> is extended.
+ </para>
+ <para>
+ In this instance, modify the method signatures as follows:
+ </para>
+ <programlisting language="Java" role="Java"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default10.java" parse="text"/></programlisting>
+ <para>
+ Another method must also be implemented in this case:
+ </para>
+ <programlisting language="Java" role="Java"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/default11.java" parse="text"/></programlisting>
+ <para>
+ If this method returns <emphasis>true</emphasis> the current thread's context Classloader is set up according to the <emphasis role="bold">dependencies</emphasis> configuration and availability of the associated web applications.
+ </para>
+ <para>
+ If it returns <emphasis>false</emphasis> the standard application separation rules are used for resource loading (effectively turning off the extension mechanism).
+ </para>
+ <para>
+ This method exists on both <literal>AbstractHttpServlet</literal> and <literal>AbstractFilter</literal>. This is a default implementation that automatically returns <emphasis>true</emphasis> when it detects there is a current <literal>PortalContainer</literal> present and <emphasis>false</emphasis> otherwise.
+ </para>
+ <formalpara id="form-Reference_Guide-Running_Multiple_Portals-ServletContextListener_based_initialization_access_to_PortalContainer">
+ <title>ServletContextListener-based initialization access to PortalContainer</title>
+ <para>
+ JBoss Enterprise Portal Platform has no direct control over the deployment of application archives (<code>.war</code> and <code>.ear</code> files); it is the application server that performs the deployment.
+ </para>
+ </formalpara>
+ <para>
+ However, applications in the <emphasis role="bold">dependencies</emphasis> configuration must be deployed <emphasis>before</emphasis> the portal that depends on them is initialized in order for the <emphasis role="bold">extension mechanism</emphasis> to work properly.
+ </para>
+ <para>
+ Conversely, some applications may require an already initialized <literal>PortalContainer</literal> to properly initialize themselves. This gives rise to a recursive dependency problem.
+ </para>
+ <para>
+ A mechanism of <emphasis role="bold">initialization tasks</emphasis> and <emphasis role="bold">task queues</emphasis> has been implemented in JBoss Enterprise Portal Platform to resolve this dependency issue.
+ </para>
+ <para>
+ Web applications that depend on a current <literal>PortalContainer</literal> to initialize must avoid performing their initialization directly on a <literal>ServletContextListener</literal> executed during their deployment (before any <literal>PortalContainer</literal> was initialized).
+ </para>
+ <para>
+ To ensure this, a web application should package its initialization logic into an <code>init</code> task of an appropriate type and only use <literal>ServletContextListener</literal> to insert the <code>init</code> task instance into the proper <code>init</code> tasks queue.
+ </para>
+ <para>
+ An example of this is the Gadgets application which registers Google gadgets with the current <literal>PortalContainer</literal>. This example uses <emphasis role="bold">PortalContainerPostInitTask</emphasis> which is executed after the portal container has been initialized.
+ </para>
+ <programlisting language="Java" role="Java"><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../extras/Advanced_Development_Foundations/GadgetRegister.java" parse="text"/></programlisting>
+ <para>
+ In some situations initialization may be required <emphasis>after</emphasis> the portal container is instantiated but <emphasis>before</emphasis> it has initialized. <literal>PortalContainerPreInitTask</literal> can be used in that case.
+ </para>
+ <para>
+ Use <emphasis role="bold">PortalContainerPostCreateTask</emphasis> if initialization is required <emphasis>after</emphasis> all the <code>post-init</code> tasks have been executed.
+ </para>
+ <formalpara id="form-Reference_Guide-Running_Multiple_Portals-LoginModules">
+ <title>LoginModules</title>
+ <para>
+ If some custom <literal>LoginModules</literal> require the current <literal>eXoContainer</literal> for initialization ensure they extend <emphasis role="bold">org.exoplatform.services.security.jaas.AbstractLoginModule</emphasis>.
+ </para>
+ </formalpara>
+ <para>
+ <literal>AbstractLoginModule</literal> enforces some basic configuration. It recognizes two initialization options; <emphasis role="bold">portalContainerName</emphasis> and <emphasis role="bold">realmName</emphasis>.
+ </para>
+ <para>
+ The values for these options can be accessed via protected fields of the same name.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Kernel.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+<section id="sect-Reference_Guide-Foundations-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 fileref="images/Advanced/Foundations/ioc.png" format="PNG" align="center"/>
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata fileref="images/Advanced/Foundations/ioc.png" format="PNG" align="center" width="XXXmm"/>
+ </imageobject>
+</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>
+
+<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>
+
+<programlisting language="Java" role="Java">public ServiceA(){
+this.serviceB =Container.getSInstance().getService(ServiceB.class);
+}</programlisting>
+<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>
+</itemizedlist>
+<para>
+ <mediaobject>
+ <imageobject role="html">
+ <imagedata width="444" align="center" scale="100" fileref="images/Advanced/Foundations/PortalContainers.png" format="PNG"/>
+ </imageobject>
+ <imageobject role="fo">
+ <imagedata width="444" contentwidth="150mm" align="center" fileref="images/Advanced/Foundations/PortalContainers.png" format="PNG"/>
+ </imageobject>
+ </mediaobject>
+
+ </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-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">
+
+
+...
+</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>
+
+<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">
+
+<import>${db.configuration.path}/db.xml</import>
+<import>${java.io.tmpdir}/bindfile.xml</import>
+<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>
+
+ </note>
+ </section>
+</section>
\ No newline at end of file
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Profiles.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,206 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+<section id="sect-Reference_Guide-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-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-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-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>
+
+ </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>
+ Resolution of duplicates (such as two components with same type) is left up to the kernel
+ </para>
+
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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>
+</component>
+
+<component profiles="foo">
+ <key>Component</key>
+ <type>FooComponent</type>
+</component></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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">
+ <name>foo</name>
+ <set-method>addPlugin</set-method>
+ <type>type</type>
+ <init-params>
+ <value-param>
+ <name>param</name>
+ <value>empty</value>
+ </value-param>
+ </init-params>
+ </component-plugin>
+</external-component-plugins></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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>
+ <init-params>
+ <value-param>
+ <name>param</name>
+ <value>empty</value>
+ </value-param>
+ <value-param profiles="foo">
+ <name>param</name>
+ <value>foo</value>
+ </value-param>
+ <value-param profiles="bar">
+ <name>param</name>
+ <value>bar</value>
+ </value-param>
+ </init-params>
+</component></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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">
+ <value><string>manager</string></value>
+ <value profiles="foo"><string>foo_manager</string></value>
+ <value profiles="foo,bar"><string>foo_bar_manager</string></value>
+ </collection>
+ </field>
+</object></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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">
+ <field name="role">
+ <collection type="java.util.ArrayList">
+ <value><string>manager</string></value>
+ </collection>
+ </field>
+ <field name="role" profiles="foo,bar">
+ <collection type="java.util.ArrayList">
+ <value><string>foo_bar_manager</string></value>
+ </collection>
+ </field>
+ <field name="role" profiles="foo">
+ <collection type="java.util.ArrayList">
+ <value><string>foo_manager</string></value>
+ </collection>
+ </field>
+ </object>
+</object-param></programlisting>
+
+ </section>
+
+
+ </section>
+
+
+ </section>
+
+
+ </section>
+
\ No newline at end of file
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/Requests.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,98 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+ <section id="sect-Reference_Guide-Container_Configuration-Component_request_life_cycle">
+ <title>Component request life cycle</title>
+ <section id="sect-Reference_Guide-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
+{
+ /**
+ * Start a request.
+ * @param container the related container
+ */
+ void startRequest(ExoContainer container);
+
+ /**
+ * Ends a request.
+ * @param container the related container
+ */
+ 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>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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
+{
+ // Do something
+}
+finally
+{
+ RequestLifeCycle.end();
+}</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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
+{
+ // Do something
+}
+finally
+{
+ RequestLifeCycle.end();
+}</programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-Component_request_life_cycle-When_request_life_cycle_is_triggered">
+ <title>When request life cycle is triggered</title>
+ <section id="sect-Reference_Guide-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-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>
\ No newline at end of file
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations/System_Properties.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,75 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Book_Name.ent">
+%BOOK_ENTITIES;
+]>
+
+<section id="sect-Reference_Guide-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-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>
+ <init-params>
+ <properties-param>
+ <name>properties</name>
+ <property name="foo" value="bar"/>
+ </properties-param>
+ </init-params>
+</component></programlisting>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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>
+ <init-params>
+ <value-param>
+ <name>properties.url</name>
+ <value>classpath:configuration.properties</value>
+ </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:
+<programlisting>my-var1=value 1
+my-var2=value 2
+complex-value=${my-var1}-${my-var2}</programlisting>
+ </para>
+
+ </section>
+
+ <section id="sect-Reference_Guide-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-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>
+
\ No newline at end of file
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/Foundations.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,553 +1,20 @@
-<?xml version='1.0' encoding='utf-8' ?>
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This document was created with Syntext Serna Free. -->
<!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-Foundations">
- <title>Foundations</title>
- <section id="sect-Reference_Guide-Foundations-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>
- 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>
- <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>
+ <title>Foundations</title>
+
+ <xi:include href="Foundations/Kernel.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Config_Retrieval.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Advanced_Concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Profiles.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Requests.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Configuring_Services.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Configuring_Containers.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/System_Properties.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Foundations/Extensions_And_Multiple_Portals.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- </mediaobject>
-
- </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>
-
- <section id="sect-Reference_Guide-Foundations-Configuring_services">
- <title>Configuring services</title>
- <para>
- The eXo Kernel uses dependency injection to create services based on <filename>configuration.xml</filename> configuration files. The location of the configuration files determines if services are placed into the <literal>RootContainer</literal> scope, or into the <literal>PortalContainer</literal> scope.
- </para>
- <para>
- All <filename>configuration.xml</filename> files located at <filename>conf/configuration.xml</filename> in the classpath (any directory, or any jar in the classpath) will have their services configured in the <literal>RootContainer</literal> scope. All <filename>configuration.xml</filename> files located at <filename>conf/portal/configuration.xml</filename> in the classpath will have their services configured at the <literal>PortalContainer</literal> scope.
- </para>
- <para>
- Additionally, <emphasis role="bold">portal extensions</emphasis> can contain configuration in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/configuration.xml</filename>, and will also have their services configured in the <literal>PortalContainer</literal> scope.
- </para>
- <note>
- <para>
- <emphasis role="bold">Portal extensions</emphasis> are described later in this document.
- </para>
-
- </note>
-
- </section>
-
- <section id="sect-Reference_Guide-Foundations-Configuration_syntax">
- <title>Configuration syntax</title>
- <section id="sect-Reference_Guide-Configuration_syntax-Components">
- <title>Components</title>
- <para>
- A service component is defined in <filename>configuration.xml</filename> by using a <emphasis role="bold"><component></emphasis> element.
- </para>
- <para>
- Only one piece of information is required when defining a service; the service implementation class. This is specified using <literal><type></literal>
- </para>
- <para>
- Every component has a <literal><key></literal> that identifies it. If not explicitly set, a key defaults to the value of <literal><type></literal>. If a key can be loaded as a class, a class object is used as a key, otherwise a string is used.
- </para>
- <para>
- The usual approach is to specify an interface as a key.
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-Configuration_syntax-External_Plug_ins">
- <title>External Plug-ins</title>
- <para>
- The eXo Kernel supports non-component objects that can be configured, instantiated, and injected into registered components using method calls. This '<emphasis>plugin</emphasis>' method allows portal extensions to add additional configurations to core services.
- </para>
- <para>
- An external plugin is defined by using the <literal><external-component-plugin></literal> wrapper element which contains one or more <literal><component-plugin></literal> definitions.
- </para>
- <para>
- The <literal><external-component-plugin></literal> element uses <literal><target-component></literal> to specify a target service component that will receive injected objects.
- </para>
- <para>
- Every <literal><component-plugin></literal> defines an implementation type, and a method on the target component to use for injection (<literal><set-method></literal>).
- </para>
- <para>
- A plugin implementation class has to implement the <emphasis role="bold">org.exoplatform.container.component. ComponentPlugin</emphasis> interface.
- </para>
- <para>
- In the following example the <literal>PortalContainerDefinitionPlugin</literal> implements the <literal>ComponentPlugin</literal>:
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default1.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </section>
-
- <section id="sect-Reference_Guide-Configuration_syntax-Includes_and_special_URLs">
- <title>Includes, and special URLs</title>
- <para>
- It is possible to divide the <filename>configuration.xml</filename> file into many smaller files, which are then included into the main configuration file.
- </para>
- <para>
- The included files must be valid xml files; they cannot be fragments of text.
- </para>
- <para>
- Below is an example <filename>configuration.xml</filename> that 'outsources' its content into several files:
- </para>
- <programlistingco>
- <areaspec>
- <area coords="6" id="area-Reference_Guide-Configuration_syntax-Includes_and_special_URLs-url_schema" />
-
- </areaspec>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default2.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-Configuration_syntax-Includes_and_special_URLs-url_schema">
- <para>
- This line is being used to reference another configuration file. The <code>war:</code> URL schema indicates that the following path is to be resolved relative to the current <literal>PortalContainer</literal>'s servlet context resource path, starting with <emphasis role="bold">WEB-INF</emphasis> as a root.
- </para>
-
- </callout>
-
- </calloutlist>
-
- </programlistingco>
-
- <note>
- <para>
- The current <literal>PortalContainer</literal> is really a newly created <literal>PortalContainer</literal>, as <code>war:</code> URLs only make sense for <literal>PortalContainer</literal> scoped configuration.
- </para>
-
- </note>
- <para>
- Through the extension mechanism the servlet context used for resource loading is a <emphasis role="bold">unified servlet context</emphasis> (this is explained in a later section).
- </para>
- <para>
- To have an 'include' path resolved relative to current classpath (context classloader), use a <code>'jar:'</code> URL schema.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Configuration_syntax-Special_variables">
- <title>Special variables</title>
- <para>
- Configuration files may contain a <emphasis role="bold">special variable</emphasis> reference <emphasis>${container.name.suffix}</emphasis>. This variable resolves to the name of the current portal container, prefixed by underscore (_).
- </para>
- <para>
- This facilitates reuse of configuration files in situations where portal-specific unique names need to be assigned to some resources; JNDI names, Database/DataSource names and JCR repository names, for example.
- </para>
- <para>
- This variable is only defined when there is a current <literal>PortalContainer</literal> available and is only available for <literal>PortalContainer</literal> scoped services.
- </para>
- <para>
- A good example of this is the <emphasis role="bold">HibernateService</emphasis>:
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default3.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </section>
-
-
- </section>
-
- <section id="sect-Reference_Guide-Foundations-InitParams_configuration_element">
- <title>InitParams configuration element</title>
- <para>
- <parameter>InitParams</parameter> is a configuration element that is essentially a map of key-value pairs, where <emphasis role="bold">key</emphasis> is always a <literal>String</literal>, and <emphasis role="bold">value</emphasis> can be any type that can be described using the kernel XML configuration.
- </para>
- <para>
- Service components that form the JBoss Enterprise Portal Platform infrastructure use <parameter>InitParams</parameter> elements to configure themselves. A component can have one instance of <parameter>InitParams</parameter> injected at most.
- </para>
- <para>
- If the service component's constructor takes <parameter>InitParams</parameter> as any of the parameters it will automatically be injected at component instantiation time.
- </para>
- <para>
- The XML configuration for a service component that expects an <parameter>InitParams</parameter> element must have an <parameter><init-params></parameter> element present, however this element can be left empty.
- </para>
- <para>
- Below is an example of how the kernel XML configuration syntax looks when creating <parameter>InitParams</parameter> instances:
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default4.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- An <parameter>InitParams</parameter> element description begins with an <parameter><init-params></parameter> element.
- </para>
- <para>
- It can have zero or more children elements, each of which is one of the following:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <parameter><value-param></parameter>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <parameter><values-param></parameter>
- </para>
-
- </listitem>
- <listitem>
- <para>
- <parameter><properties-param></parameter>
- </para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- or
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <parameter><object-param></parameter>
- </para>
-
- </listitem>
-
- </itemizedlist>
- <para>
- Each of these child elements takes a <parameter><name></parameter> that serves as a map entry key, and an optional <parameter><description></parameter>. It also takes a type-specific <emphasis role="bold">value</emphasis> specification.
- </para>
- <para>
- The value specification for the <parameter><properties-param></parameter> defines one or more <parameter><property></parameter> elements, each of which specifies two strings; a property name and a property value. This is evident in the two previous examples.
- </para>
- <para>
- Each <parameter><properties-params></parameter> defines one <literal>java.util.Properties</literal> instance.
- </para>
- <para>
- The value specification for <parameter><value-param></parameter> elements is a <parameter><value></parameter> element which defines a <literal>String</literal> instance.
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default5.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The value specification for <parameter><values-param></parameter> requires one or more <parameter><value></parameter> elements. Each <parameter><value></parameter> represents one <literal>String</literal> instance. All <literal>String</literal> values are then collected into a <literal>java.util.List</literal> instance.
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default6.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- For <parameter><object-param></parameter> entries, the value specification consists of an <parameter><object></parameter> element which is used for plain Java style object specification (specifying an implementation <emphasis>class - <parameter><type></parameter></emphasis>, and <emphasis>property values - <parameter><field></parameter></emphasis>).
- </para>
- <para>
- The following section has an example of specifying a field of with a <literal>Collection</literal> type.
- </para>
- <para>
- The <parameter>InitParams</parameter> structure (the names and types of entries) is specific for each service, as it is the code inside a service components' class that defines which entry names to look up and what types it expects to find.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Foundations-Configuring_a_portal_container">
- <title>Configuring a portal container</title>
- <para>
- A <literal>portal container</literal> is defined by several attributes:
- </para>
- <variablelist>
- <varlistentry>
- <term>Portal Container Name</term>
- <listitem>
- <para>
- This attribute is always equal to the URL context to which the current portal is bound.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>REST Context Name</term>
- <listitem>
- <para>
- This attribute is used for REST access to portal application; every portal has one unique REST context name.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Realm Name</term>
- <listitem>
- <para>
- This is the name of the security realm used for authentication when users log into the portal.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Dependencies</term>
- <listitem>
- <para>
- This is a list of other web applications whose resources are visible to the current portal (via the extension mechanism described later), and are searched for in the specified order.
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default7.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- Dependencies are part of the <emphasis role="bold">extension mechanism</emphasis> which is discussed later in this document.
- </para>
- <para>
- Every <literal>PortalContainer</literal> is represented by a <literal>PortalContainer instance</literal>, which contains:
- </para>
- <variablelist>
- <varlistentry>
- <term>eXoContainerContext</term>
- <listitem>
- <para>
- This contains information about the portal.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Unified Servlet Context</term>
- <listitem>
- <para>
- This deals with web-archive-relative resource loading.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Unified Classloader</term>
- <listitem>
- <para>
- For classpath based resource loading.
- </para>
-
- </listitem>
-
- </varlistentry>
- <varlistentry>
- <term>Various methods for retrieving services</term>
- <listitem>
- <para>
-
- </para>
-
- </listitem>
-
- </varlistentry>
-
- </variablelist>
- <para>
- The <emphasis role="bold">Unified servlet context</emphasis> and <emphasis role="bold">unified classloader</emphasis> are part of the <emphasis role="bold">extension mechanism</emphasis> (which is detailed in the next section).
- </para>
- <para>
- They provide the standard API (<literal>ServletContext</literal>, <literal>ClassLoader</literal>) with specific resource loading behavior, such as visibility into associated web application archives, configured with the dependencies property of <literal>PortalContainerDefinition</literal>.
- </para>
- <para>
- Resources from other web applications are queried in the order specified by the dependencies. The later entries in the list override the previous ones.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Foundations-The_Extension_Mechanism_and_Portal_Extensions">
- <title>The Extension Mechanism and Portal Extensions</title>
- <para>
- The <emphasis role="bold">Extension mechanism</emphasis> makes it possible to override portal resources in a way similar to hardware plug-and-play functionalities.
- </para>
- <para>
- Customizations can be implemented without unpacking and repacking the original portal <code>.war</code> archives by adding a <code>.war</code> archive to the resources and configuring its position in the portal's classpath. Custom <code>.war</code> archives can be created with new resources that override the resources in the original archive.
- </para>
- <para>
- These archives, packaged for use through the extension mechanism, are called <emphasis role="bold">portal extensions</emphasis>.
- </para>
- <procedure id="proc-Reference_Guide-The_Extension_Mechanism_and_Portal_Extensions-Creating_a_portal_extension">
- <title>Creating a portal extension</title>
- <step>
- <para>
- Declare the <emphasis role="bold">PortalConfigOwner</emphasis> servlet context listener in the <filename>web.xml</filename> of your web application.
- </para>
- <para>
- This example shows a portal extension called <emphasis role="bold">sample-ext</emphasis>.
- </para>
-
-<programlisting language="XML" role="XML"><xi:include href="../../extras/Advanced_Development_Foundations/default8.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
-
- </step>
- <step>
- <para>
- Add the application's servlet context name to the <literal>PortalContainerDefinition</literal>'s list of dependencies. This must be done for each portal container that you want to have access to the new application.
- </para>
- <para>
- The application's position in these lists will dictate its priority when the portal loads resources. The later your application appears in the list, the higher its resource priority will be.
- </para>
-
- </step>
- <step>
- <para>
- At this point your new web archive will be on both the portal's unified classpath and unified servlet context resource path.
- </para>
-
- </step>
-
- </procedure>
-
- <note>
- <title>Example</title>
- <para>
- Refer to the code extract in <xref linkend="sect-Reference_Guide-Foundations-Configuring_a_portal_container" /> for an example of a <literal>PortalContainerDefinition</literal> that has <emphasis role="bold">sample-ext</emphasis> in its list of dependencies.
- </para>
-
- </note>
-
- </section>
-
- <section id="sect-Reference_Guide-Foundations-Running_Multiple_Portals">
- <title>Running Multiple Portals</title>
- <!-- DOC TODO: This section requires more work to structure the information effectively. Consider sub-sections --> <para>
- It is possible to run several independent portal containers, each bound to a different URL context, within the same JVM instance.
- </para>
- <para>
- This method of deployment allows for efficient administration and resource consumption by allowing coexisting portals to <emphasis>reuse</emphasis> configuration arrangements through the extension mechanism.
- </para>
- <para>
- Portals can <emphasis>inherit</emphasis> resources and configuration from existing web archives and add extra resources as needed, <emphasis>overriding</emphasis> those that need to be changed by including modified copies.
- </para>
- <para>
- In order for a portal application to function correctly when deployed within a multiple portal deployment, it may have to dynamically query the information about the current portal container. The application should not make any assumptions about the name, and other information of the current portal, as there are now multiple different portals in play.
- </para>
- <para>
- At any point during request processing, or life-cycle event processing, an application can retrieve this information through <literal>org.exoplatform.container.eXoContainerContext</literal>.
- </para>
- <para>
- Sometimes an application must ensure that the proper <literal>PortalContainer</literal> is associated with the current <literal>eXoContainerContext</literal> call.
- </para>
- <para>
- If the portal application contains servlets or servlet filters that need to access portal specific resources during their request processing, the servlet or filter must be associated with the current container.
- </para>
- <para>
- A servlet in this instance should extend the <literal>org.exoplatform.container.web.AbstractHttpServlet</literal> class so as to properly initialize the current <literal>PortalContainer</literal>.
- </para>
- <para>
- This will also set the current thread's context Classloader to one that looks for resources in associated web applications in the order specified by the <emphasis role="bold">dependencies</emphasis> configuration (as seen in <xref linkend="sect-Reference_Guide-Foundations-The_Extension_Mechanism_and_Portal_Extensions" />).
- </para>
- <para>
- Filter classes need to extend the <literal>org.exoplatform.container.web.AbstractFilter</literal>.
- </para>
- <para>
- Both <literal>AbstractHttpServlet</literal>, and <literal>AbstractFilter</literal> have a <literal>getContainer()</literal> method, which returns the current <literal>PortalContainer</literal>.
- </para>
- <para>
- If your servlet handles the requests by implementing a <literal>service()</literal> method, that method must be renamed to match the following signature:
- </para>
-
-<programlisting language="Java" role="Java"><xi:include href="../../extras/Advanced_Development_Foundations/default9.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <note>
- <para>
- This ensures that <literal>AbstractHttpServlet</literal>'s <literal>service()</literal> interception is not overwritten.
- </para>
-
- </note>
- <para>
- An application may also need access to portal information within the <emphasis role="bold">HttpSessionListener</emphasis>. Ensure the abstract class <emphasis role="bold">org.exoplatform.container.web.AbstractHttpSessionListener</emphasis> is extended.
- </para>
- <para>
- In this instance, modify the method signatures as follows:
- </para>
-
-<programlisting language="Java" role="Java"><xi:include href="../../extras/Advanced_Development_Foundations/default10.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- Another method must also be implemented in this case:
- </para>
-
-<programlisting language="Java" role="Java"><xi:include href="../../extras/Advanced_Development_Foundations/default11.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- If this method returns <emphasis>true</emphasis> the current thread's context Classloader is set up according to the <emphasis role="bold">dependencies</emphasis> configuration and availability of the associated web applications.
- </para>
- <para>
- If it returns <emphasis>false</emphasis> the standard application separation rules are used for resource loading (effectively turning off the extension mechanism).
- </para>
- <para>
- This method exists on both <literal>AbstractHttpServlet</literal> and <literal>AbstractFilter</literal>. This is a default implementation that automatically returns <emphasis>true</emphasis> when it detects there is a current <literal>PortalContainer</literal> present and <emphasis>false</emphasis> otherwise.
- </para>
- <formalpara id="form-Reference_Guide-Running_Multiple_Portals-ServletContextListener_based_initialization_access_to_PortalContainer">
- <title>ServletContextListener-based initialization access to PortalContainer</title>
- <para>
- JBoss Enterprise Portal Platform has no direct control over the deployment of application archives (<code>.war</code> and <code>.ear</code> files); it is the application server that performs the deployment.
- </para>
-
- </formalpara>
- <para>
- However, applications in the <emphasis role="bold">dependencies</emphasis> configuration must be deployed <emphasis>before</emphasis> the portal that depends on them is initialized in order for the <emphasis role="bold">extension mechanism</emphasis> to work properly.
- </para>
- <para>
- Conversely, some applications may require an already initialized <literal>PortalContainer</literal> to properly initialize themselves. This gives rise to a recursive dependency problem.
- </para>
- <para>
- A mechanism of <emphasis role="bold">initialization tasks</emphasis> and <emphasis role="bold">task queues</emphasis> has been implemented in JBoss Enterprise Portal Platform to resolve this dependency issue.
- </para>
- <para>
- Web applications that depend on a current <literal>PortalContainer</literal> to initialize must avoid performing their initialization directly on a <literal>ServletContextListener</literal> executed during their deployment (before any <literal>PortalContainer</literal> was initialized).
- </para>
- <para>
- To ensure this, a web application should package its initialization logic into an <code>init</code> task of an appropriate type and only use <literal>ServletContextListener</literal> to insert the <code>init</code> task instance into the proper <code>init</code> tasks queue.
- </para>
- <para>
- An example of this is the Gadgets application which registers Google gadgets with the current <literal>PortalContainer</literal>. This example uses <emphasis role="bold">PortalContainerPostInitTask</emphasis> which is executed after the portal container has been initialized.
- </para>
-
-<programlisting language="Java" role="Java"><xi:include href="../../extras/Advanced_Development_Foundations/GadgetRegister.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- In some situations initialization may be required <emphasis>after</emphasis> the portal container is instantiated but <emphasis>before</emphasis> it has initialized. <literal>PortalContainerPreInitTask</literal> can be used in that case.
- </para>
- <para>
- Use <emphasis role="bold">PortalContainerPostCreateTask</emphasis> if initialization is required <emphasis>after</emphasis> all the <code>post-init</code> tasks have been executed.
- </para>
- <formalpara id="form-Reference_Guide-Running_Multiple_Portals-LoginModules">
- <title>LoginModules</title>
- <para>
- If some custom <literal>LoginModules</literal> require the current <literal>eXoContainer</literal> for initialization ensure they extend <emphasis role="bold">org.exoplatform.services.security.jaas.AbstractLoginModule</emphasis>.
- </para>
-
- </formalpara>
- <para>
- <literal>AbstractLoginModule</literal> enforces some basic configuration. It recognizes two initialization options; <emphasis role="bold">portalContainerName</emphasis> and <emphasis role="bold">realmName</emphasis>.
- </para>
- <para>
- The values for these options can be accessed via protected fields of the same name.
- </para>
-
- </section>
-
-
</chapter>
-
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq/jcr-faq.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_FAQ">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/faq.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Frequently_Asked_Question">
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-client.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,1886 @@
+<?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">
+<section>
+
+ <title>HTTPBackupAgent and backup client</title>
+
+ <warning>
+ <para>For this service, you should configure the <emphasis
+ role="bold">org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister</emphasis>
+ in order to save the changes of the repository configuration.</para>
+ </warning>
+
+ <highlights>
+ <para>GateIn uses context /portal/rest, therefore you need to use
+ http://host:port/portal/rest/ instread of http://host:port/rest/</para>
+
+ <para>GateIn uses form authentication, so first you need to login (url to
+ form authentication is http://host:port/portal/login) and then perform
+ requests.</para>
+ </highlights>
+
+ <section>
+ <title>Introduction</title>
+
+ <para>The service
+ org.exoplatform.services.jcr.ext.backup.server.HTTPBackupAgent is
+ REST-based front-end to service
+ org.exoplatform.services.jcr.ext.backup.BackupManager. HTTPBackupAgent is
+ representation BackupManager to creation backup, restore, getting status
+ of current or completed backup/restore, etc.</para>
+
+ <para>The backup client is http client for HTTPBackupAgent.</para>
+ </section>
+
+ <section>
+ <title>HTTPBackupAgent</title>
+
+ <para>The HTTPBackupAgent is based on REST.</para>
+
+ <para>HTTPBackupAgent is using POST and GET methods for request.</para>
+
+ <para>The HTTPBackupAgent allows :<itemizedlist>
+ <listitem>
+ <para>Start backup</para>
+ </listitem>
+
+ <listitem>
+ <para>Stop backup</para>
+ </listitem>
+
+ <listitem>
+ <para>Restore from backup</para>
+ </listitem>
+
+ <listitem>
+ <para>Delete the workspace</para>
+ </listitem>
+
+ <listitem>
+ <para>Get information about backup service (BackupManager)</para>
+ </listitem>
+
+ <listitem>
+ <para>Get information about current backup / restores / completed
+ backups</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <section>
+ <title>HTTPBackupAgent methods</title>
+
+ <section>
+ <title>Starting Backup Service</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/start/{repo}/{ws}</emphasis></para>
+
+ <para>Start backup on specific workspace</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/start/{repo}/{ws}</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json.</para>
+
+ <para><emphasis role="bold">Method</emphasis>: POST</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{repo} - the repository name;</para>
+ </listitem>
+
+ <listitem>
+ <para>{ws} - the workspace name;</para>
+ </listitem>
+
+ <listitem>
+ <para>BackupConfigBean - the JSON to BackupConfigBean.</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>The BackupConfigBean:</para>
+
+ <programlisting>header :
+"Content-Type" = "application/json; charset=UTF-8"
+
+body:
+<JSON to BackupConfigBean></programlisting>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.BackupConfigBean
+ :</para>
+
+ <programlisting language="Java">{"incrementalRepetitionNumber":<Integer>,"incrementalBackupJobConfig":<JSON to BackupJobConfig>,
+"backupType":<Integer>,"fullBackupJobConfig":<JSON to BackupJobConfig>,
+"incrementalJobPeriod":<Long>,"backupDir":"<String>"}</programlisting>
+
+ <para>Where :</para>
+
+ <programlisting>backupType - the type of backup:
+ 0 - full backup only;
+ 1 - full and incremental backup.
+backupDir - the path to backup folder;
+incrementalJobPeriod - the incremental job period;
+incrementalRepetitionNumber - the incremental repetition number;
+fullBackupJobConfig - the configuration to full backup, JSON to BackupJobConfig;
+incrementalJobPeriod - the configuration to incremental backup, JSON to BackupJobConfig.</programlisting>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.BackupJobConfig
+ :</para>
+
+ <programlisting>{"parameters":[<JSON to Pair>, ..., <JSON to pair> ],"backupJob":"<String>"}</programlisting>
+
+ <para>Where:</para>
+
+ <programlisting>backupJob - the FQN (fully qualified name) to BackupJob class;
+parameters - the list of JSON of Pair.</programlisting>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.Pair
+ :</para>
+
+ <programlisting language="Java">{"name":"<String>","value":"<String>"}</programlisting>
+
+ <para>Where:</para>
+
+ <programlisting>name - the name of parameter;
+value - the value of parameter.</programlisting>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful<programlisting>status code = 200</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure<programlisting>status code = 404 - the not found repositry '{repo}' or workspace '{ws}'
+status code = 500 - the other unknown errors
+failure message in response - the description of failure</programlisting></para>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Stopping Backup Service</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/stop/{id}</emphasis></para>
+
+ <para>Stop backup with identifier {id}.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/stop/{id}</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> plain text</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{id} - the identifier of backup</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful<programlisting>status code = 200</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure<programlisting>status code = 404 - the no active backup with identifier {id}
+status code = 500 - the other unknown errors
+failure message in response - the description of failure</programlisting></para>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Backup Info Service</title>
+
+ <para><emphasis role="bold">/rest/jcr-backup/info</emphasis></para>
+
+ <para>Information about the backup service.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis> no</para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>Return the JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.BackupServiceInfoBean
+ :<programlisting>{"backupLogDir":"<String>","defaultIncrementalJobPeriod":<Long>,"fullBackupType":"<String>","incrementalBackupType":"<String>"}</programlisting>Where:<programlisting>fullBackupType - the FQN (fully qualified name) of BackupJob class for full backup type;
+incrementalBackupType - the FQN (fully qualified name) of BackupJob class for incremental backup type;
+backupLogDir - path to backup folder;
+defaultIncrementalJobPeriod - the default incremental job period.</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure<programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting></para>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Dropping Workspace Service</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/drop-workspace/{repo}/{ws}/{force-session-close}</emphasis></para>
+
+ <para>Delete the workspace from repository /{repo}/{ws}. With this
+ service, you can delete any workspaces regardless of whether the
+ workspace is a backup or has been copied to a backup.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/drop-workspace/{repo}/{ws}/{force-sessio...</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> plain text</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{repo} - the repository name;</para>
+ </listitem>
+
+ <listitem>
+ <para>{ws} - the workspace name;</para>
+ </listitem>
+
+ <listitem>
+ <para>{force-session-close} - the boolean value : <emphasis
+ role="bold">true</emphasis> - the open sessions on workspace
+ will be closed; <emphasis role="bold">false</emphasis> - will
+ not close open sessions.</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful.<programlisting>status code = 200</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure<programlisting>status code = 500 - the other unknown errors;
+ - not found repositry '{repo}' or workspace '{ws}'
+failure message in response - the description of failure</programlisting></para>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Backup Info</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/backup</emphasis></para>
+
+ <para>Information about the current and completed backups</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/backup</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis> no</para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfoList
+ :<programlisting>{"backups":[<JSON to ShortInfo>,<JSON to ShortInfo>,...,<JSON to ShortInfo>]}</programlisting>The
+ JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfo
+ :<programlisting>{"startedTime":"<String>","backupId":"<String>","type":<Integer>,"state":<Integer>,"backupType":<Integer>,
+"workspaceName":"<String>","finishedTime":"<String>","repositoryName":"<String>"}</programlisting></para>
+
+ <para>Where:<programlisting>type - the type of ShortInfo :
+ 0 - the ShorInfo to completed backup;
+ -1 - the ShorInfo to current (active) backup.
+ 1 - the ShorInfo to current restore.
+backupType - the type of backup:
+ 0 - full backup only;
+ 1 - full and incremental backup.
+backupId - the identifier of backup;
+workspaceName - the name of workspace;
+repositoryName - the name of repository.
+startedTime - the date of started backup. The date in format RFC 1123 (for examle "Thu, 16 Apr 2009 14:56:49 EEST").
+
+The ShorInfo to current (active) backup :
+ finishedTime - no applicable, always an empty string ("");
+ state - the state of full backup :
+ 0 - starting;
+ 1 - waiting;
+ 2 - working;
+ 4 - finished.
+
+The ShorInfo to completed backup :
+ finishedTime - the date of finished backup. The date in format RFC 1123;
+ state - no applicable, always zero (0).
+
+The ShorInfo to current restore :
+ finishedTime - the date of finished backup. The date in format RFC 1123;
+ state - the state of restore :
+ 1 - started;
+ 2 - successful;
+ 3 - failure;
+ 4 - initialized.</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure<programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting></para>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Current Backups Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/backup/current</emphasis>
+ Information about the current backups</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/backup/current</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis> no</para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfoList
+ (see item <emphasis
+ role="bold">/rest/jcr-backup/info/backup</emphasis>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Completed Backups Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/backup/completed</emphasis>
+ Information about the completed backups.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/backup/completed</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis> no</para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfoList
+ (see item <emphasis
+ role="bold">/rest/jcr-backup/info/backup</emphasis>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Workspace-specific Backup Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/backup/{repo}/{ws}</emphasis>
+ Information about the current and completed backups for specific
+ workspace.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/backup/{repo}/{ws}</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{repo} - the repository name</para>
+ </listitem>
+
+ <listitem>
+ <para>{ws} - the workspace name</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfoList
+ (see item <emphasis
+ role="bold">/rest/jcr-backup/info/backup</emphasis>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Single Backup Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/backup/{id}</emphasis> Detailed
+ information about a current or completed backup with identifier
+ '{id}'.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/backup/{id}</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{id} - the identifier of backup</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.DetailedInfo
+ :<programlisting>{"backupConfig":<JSON to BackupConfigBean>,"startedTime":"<String>","backupId":"<String>","type":<Integer>,
+"state":<Integer>,"backupType":<Integer>,"workspaceName":"<String>","finishedTime":"<String>",
+"repositoryName":"<String>"}</programlisting></para>
+
+ <para>Where:<programlisting>type - the type of DetailedInfo :
+ 0 - the DetailedInfo to completed backup;
+ -1 - the DetailedInfo to current (active) backup;
+ 1 - the DetailedInfo to restore.
+backupType - the type of backup:
+ 0 - full backup only;
+ 1 - full and incremental backup.
+backupId - the identifier of backup;
+workspaceName - the name of workspace;
+repositoryName - the name of repository;
+backupConfig - the JSON to BackupConfigBean.
+
+The DetailedInfo to current (active) backup :
+ startedTime - the date of started backup. The date in format RFC 1123 (for examle "Thu, 16 Apr 2009 14:56:49 EEST");
+ finishedTime - no applicable, always an empty string ("");
+ state - the state of full backup :
+ 0 - starting;
+ 1 - waiting;
+ 2 - working;
+ 4 - finished.
+The DetailedInfo to completed backup :
+ startedTime - the date of started backup. The date in format RFC 1123 (for examle "Thu, 16 Apr 2009 14:56:49 EEST");
+ finishedTime - the date of finished backup. The date in format RFC 1123;
+ state - no applicable, always zero (0).
+
+The DetailedInfo to restore :
+ startedTime - the date of started restore. The date in format RFC 1123 (for examle "Thu, 16 Apr 2009 14:56:49 EEST");
+ finishedTime - the date of finished restore;
+ state - the state of restore :
+ 1 - started;
+ 2 - successful;
+ 3 - failure;
+ 4 - initialized.</programlisting></para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.BackupConfigBean
+ (see item <emphasis
+ role="bold">/rest/jcr-backup/start/{repo}/{ws}</emphasis>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 404 - not found the backup with {id}
+status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Restores on a Workspace Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/restore/{repo}/{ws}</emphasis> The
+ information about the last restore on a specific workspace
+ /{repo}/{ws}.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/restore/{repo}/{ws}</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{repo} - the repository name</para>
+ </listitem>
+
+ <listitem>
+ <para>{ws} - the workspace name</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.DetailedInfo
+ (see item <emphasis
+ role="bold">/rest/jcr-backup/info/backup/{id}</emphasis>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 404 - the not found the restore for workspace /{repo}/{ws}
+status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Restores Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/restores</emphasis></para>
+
+ <para>The information about the last restores.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/restores</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis> no</para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean of
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfoList
+ (see item <emphasis
+ role="bold">/rest/jcr-backup/info/backup</emphasis>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Restoring Service</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/restore/{repo}/{id}</emphasis></para>
+
+ <para>Restore the workspace from specific backup.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/restore/{repo}/{id}</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json.</para>
+
+ <para><emphasis role="bold">Method</emphasis>: POST</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis><itemizedlist>
+ <listitem>
+ <para>{repo} - the repository name;</para>
+ </listitem>
+
+ <listitem>
+ <para>{id} - the identifier to backup; * WorkspaceEntry - the
+ JSON to WorkspaceEntry.</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>The RestoreBean:</para>
+
+ <programlisting>header :
+"Content-Type" = "application/json; charset=UTF-8"
+
+body:
+<JSON to WorkspaceEntry></programlisting>
+
+ <para>The example of JSON bean to
+ org.exoplatform.services.jcr.config.WorkspaceEntry :</para>
+
+ <programlisting>{ "accessManager" : null,
+ "autoInitPermissions" : null,
+ "autoInitializedRootNt" : null,
+ "cache" : { "parameters" : [ { "name" : "max-size",
+ "value" : "10k"
+ },
+ { "name" : "live-time",
+ "value" : "1h"
+ }
+ ],
+ "type" : "org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl"
+ },
+ "container" : { "parameters" : [ { "name" : "source-name",
+ "value" : "jdbcjcr"
+ },
+ { "name" : "dialect",
+ "value" : "hsqldb"
+ },
+ { "name" : "multi-db",
+ "value" : "false"
+ },
+ { "name" : "update-storage",
+ "value" : "false"
+ },
+ { "name" : "max-buffer-size",
+ "value" : "200k"
+ },
+ { "name" : "swap-directory",
+ "value" : "../temp/swap/production"
+ }
+ ],
+ "type" : "org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
+ "valueStorages" : [ { "filters" : [ { "ancestorPath" : null,
+ "minValueSize" : 0,
+ "propertyName" : null,
+ "propertyType" : "Binary"
+ } ],
+ "id" : "system",
+ "parameters" : [ { "name" : "path",
+ "value" : "../temp/values/production"
+ } ],
+ "type" : "org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"
+ } ]
+ },
+ "initializer" : { "parameters" : [ { "name" : "root-nodetype",
+ "value" : "nt:unstructured"
+ } ],
+ "type" : "org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer"
+ },
+ "lockManager" : { "persister" : { "parameters" : [ { "name" : "path",
+ "value" : "../temp/lock/system"
+ } ],
+ "type" : "org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister"
+ },
+ "timeout" : 15728640
+ },
+ "name" : "production",
+ "queryHandler" : { "analyzer" : { },
+ "autoRepair" : true,
+ "bufferSize" : 10,
+ "cacheSize" : 1000,
+ "documentOrder" : true,
+ "errorLogSize" : 50,
+ "excerptProviderClass" : "org.exoplatform.services.jcr.impl.core.query.lucene.DefaultHTMLExcerpt",
+ "excludedNodeIdentifers" : null,
+ "extractorBackLogSize" : 100,
+ "extractorPoolSize" : 0,
+ "extractorTimeout" : 100,
+ "indexDir" : "../temp/jcrlucenedb/production",
+ "indexingConfigurationClass" : "org.exoplatform.services.jcr.impl.core.query.lucene.IndexingConfigurationImpl",
+ "indexingConfigurationPath" : null,
+ "maxFieldLength" : 10000,
+ "maxMergeDocs" : 2147483647,
+ "mergeFactor" : 10,
+ "minMergeDocs" : 100,
+ "parameters" : [ { "name" : "index-dir",
+ "value" : "../temp/jcrlucenedb/production"
+ } ],
+ "queryClass" : "org.exoplatform.services.jcr.impl.core.query.QueryImpl",
+ "queryHandler" : null,
+ "resultFetchSize" : 2147483647,
+ "rootNodeIdentifer" : "00exo0jcr0root0uuid0000000000000",
+ "spellCheckerClass" : null,
+ "supportHighlighting" : false,
+ "synonymProviderClass" : null,
+ "synonymProviderConfigPath" : null,
+ "type" : "org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex",
+ "useCompoundFile" : false,
+ "volatileIdleTime" : 3
+ },
+ "uniqueName" : "repository_production"
+}</programlisting>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <programlisting>status code = 200</programlisting>
+
+ <para>Return the JSON bean
+ org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfo
+ of just started restore. For JSON description see item <emphasis
+ role="bold">/rest/jcr-backup/info/backup</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</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 = 500 - the other unknown errors
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Default Workspace Information</title>
+
+ <para><emphasis
+ role="bold">/rest/jcr-backup/info/default-ws-config</emphasis> Will be
+ returned the JSON bean to WorkspaceEntry for default workspace.</para>
+
+ <para><emphasis role="bold">URL:</emphasis>
+ <uri>http://host:port/rest/jcr-backup/info/default-ws-config</uri></para>
+
+ <para><emphasis role="bold">Formats:</emphasis> json</para>
+
+ <para><emphasis role="bold">Method</emphasis>: GET</para>
+
+ <para><emphasis role="bold">Parameters:</emphasis> no</para>
+
+ <para><emphasis role="bold">Returns:</emphasis><itemizedlist>
+ <listitem>
+ <para>Return when being successful</para>
+
+ <para>The JSON bean to
+ org.exoplatform.services.jcr.config.WorkspaceEntry
+ :<programlisting>{ "accessManager" : null,
+ "autoInitPermissions" : null,
+ "autoInitializedRootNt" : null,
+ "cache" : { "parameters" : [ { "name" : "max-size",
+ "value" : "10k"
+ },
+ { "name" : "live-time",
+ "value" : "1h"
+ }
+ ],
+ "type" : "org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl"
+ },
+ "container" : { "parameters" : [ { "name" : "source-name",
+ "value" : "jdbcjcr"
+ },
+ { "name" : "dialect",
+ "value" : "hsqldb"
+ },
+ { "name" : "multi-db",
+ "value" : "false"
+ },
+ { "name" : "update-storage",
+ "value" : "false"
+ },
+ { "name" : "max-buffer-size",
+ "value" : "200k"
+ },
+ { "name" : "swap-directory",
+ "value" : "../temp/swap/production"
+ }
+ ],
+ "type" : "org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
+ "valueStorages" : [ { "filters" : [ { "ancestorPath" : null,
+ "minValueSize" : 0,
+ "propertyName" : null,
+ "propertyType" : "Binary"
+ } ],
+ "id" : "system",
+ "parameters" : [ { "name" : "path",
+ "value" : "../temp/values/production"
+ } ],
+ "type" : "org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"
+ } ]
+ },
+ "initializer" : { "parameters" : [ { "name" : "root-nodetype",
+ "value" : "nt:unstructured"
+ } ],
+ "type" : "org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer"
+ },
+ "lockManager" : { "persister" : { "parameters" : [ { "name" : "path",
+ "value" : "../temp/lock/system"
+ } ],
+ "type" : "org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister"
+ },
+ "timeout" : 15728640
+ },
+ "name" : "production",
+ "queryHandler" : { "analyzer" : { },
+ "autoRepair" : true,
+ "bufferSize" : 10,
+ "cacheSize" : 1000,
+ "documentOrder" : true,
+ "errorLogSize" : 50,
+ "excerptProviderClass" : "org.exoplatform.services.jcr.impl.core.query.lucene.DefaultHTMLExcerpt",
+ "excludedNodeIdentifers" : null,
+ "extractorBackLogSize" : 100,
+ "extractorPoolSize" : 0,
+ "extractorTimeout" : 100,
+ "indexDir" : "../temp/jcrlucenedb/production",
+ "indexingConfigurationClass" : "org.exoplatform.services.jcr.impl.core.query.lucene.IndexingConfigurationImpl",
+ "indexingConfigurationPath" : null,
+ "maxFieldLength" : 10000,
+ "maxMergeDocs" : 2147483647,
+ "mergeFactor" : 10,
+ "minMergeDocs" : 100,
+ "parameters" : [ { "name" : "index-dir",
+ "value" : "../temp/jcrlucenedb/production"
+ } ],
+ "queryClass" : "org.exoplatform.services.jcr.impl.core.query.QueryImpl",
+ "queryHandler" : null,
+ "resultFetchSize" : 2147483647,
+ "rootNodeIdentifer" : "00exo0jcr0root0uuid0000000000000",
+ "spellCheckerClass" : null,
+ "supportHighlighting" : false,
+ "synonymProviderClass" : null,
+ "synonymProviderConfigPath" : null,
+ "type" : "org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex",
+ "useCompoundFile" : false,
+ "volatileIdleTime" : 3
+ },
+ "uniqueName" : "repository_production"
+}</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Return when being failure</para>
+
+ <programlisting>status code = 500 - the unknown error
+failure message in response - the description of failure</programlisting>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+ </section>
+
+ <section>
+ <title>HTTPBackupAgent Configuration</title>
+
+ <para>Add the components
+ org.exoplatform.services.jcr.ext.backup.server.HTTPBackupAgent and
+ org.exoplatform.services.jcr.ext.backup.BackupManager to services
+ configuration :</para>
+
+ <programlisting language="XML"><component>
+ <type>org.exoplatform.services.jcr.ext.backup.server.HTTPBackupAgent</type>
+</component>
+
+<component>
+ <type>org.exoplatform.services.jcr.ext.repository.RestRepositoryService</type>
+</component>
+
+<component>
+ <key>org.exoplatform.services.jcr.ext.backup.BackupManager</key>
+ <type>org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl</type>
+ <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="../temp/backup" />
+ </properties-param>
+ </init-params>
+</component></programlisting>
+
+ <para>In case, if you will restore backup in same workspace (so you will
+ drop previous workspace), you need configure
+ RepositoryServiceConfiguration in order to save the changes of the
+ repository configuration. For example</para>
+
+ <programlisting language="XML"><component>
+ <key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
+ <type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
+ <init-params>
+ <value-param>
+ <name>conf-path</name>
+ <description>JCR repositories configuration file</description>
+ <value>jar:/conf/portal/exo-jcr-config.xml</value>
+ </value-param>
+ <properties-param>
+ <name>working-conf</name>
+ <description>working-conf</description>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="dialect" value="hsqldb" />
+ <property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister" />
+ </properties-param>
+ </init-params>
+</component></programlisting>
+
+ </section>
+ </section>
+
+ <section>
+ <title>Backup Client</title>
+
+ <highlights>
+ <para>For GateIn should use context "/portal/rest". GateIn uses form
+ authentication, so first you need to login (url to form authentication
+ is http://host:port/portal/login) and then perform requests.</para>
+
+ <para></para>
+
+ <para>Backup client is support form authentication. For example call
+ command "info" with form authentication to GateIn :</para>
+
+ <para>./jcrbackup.sh http://127.0.0.1:8080/portal/rest form POST
+ "/portal/login?initialURI=/portal/private&username=root&password=gtn"
+ info</para>
+ </highlights>
+
+ <para>Backup client is console application.</para>
+
+ <para>The backup client is http client for HTTPBackupAgent.</para>
+
+ <para>Command signature:</para>
+
+ <programlisting>Help info:
+ <url_basic_authentication>|<url form authentication> <cmd>
+ <url_basic_authentication> : http(s)//login:password@host:port/<context>
+
+ <url form authentication> : http(s)//host:port/<context> "<form auth parm>"
+ <form auth parm> : form <method> <form path>
+ <method> : POST or GET
+ <form path> : /path/path?<paramName1>=<paramValue1>&<paramName2>=<paramValue2>...
+ Example to <url form authentication> : http://127.0.0.1:8080/portal/rest form POST "/portal/login?initialURI=/portal/private&username=root&password=gtn"
+
+ <cmd> : start <repo[/ws]> <backup_dir> [<incr>]
+ stop <backup_id>
+ status <backup_id>
+ restores <repo[/ws]>
+ restore [remove-exists] [<repo[/ws]>] {<backup_id>|<backup_set_path>} [<pathToConfigFile>]
+ list [completed]
+ info
+ drop [force-close-session] <repo[/ws]>
+ help
+
+ start - start backup of repositpry or workspace
+ stop - stop backup
+ status - information about the current or completed backup by 'backup_id'
+ restores - information about the last restore on specific repository or workspace
+ restore - restore the repository or workspace from specific backup
+ list - information about the current backups (in progress)
+ list completed - information about the completed (ready to restore) backups
+ info - information about the service backup
+ drop - delete the repository or workspace
+ help - print help information about backup console
+
+ <repo[/ws]> - /<reponsitory-name>[/<workspace-name>] the repository or workspace
+ <backup_dir> - path to folder for backup on remote server
+ <backup_id> - the identifier for backup
+ <backup_set_dir> - path to folder with backup set on remote server
+ <incr> - incemental job period
+ <pathToConfigFile> - path (local) to repository or workspace configuration
+ remove-exists - removed fully (db, value storage, index) existed repository/workspace
+ force-close-session - close opened sessions on repositpry or workspace.</programlisting>
+ </section>
+
+ <section>
+ <title>Backup Client Usage</title>
+
+ <section>
+ <title>Building application</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Go to folder of "backup client" <emphasis
+ role="bold">${JCR-SRC-HOME}/applications/exo.jcr.applications.backupconsole</emphasis>
+ . - build the application :<programlisting>mvn clean install -P deploy</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Go to <emphasis
+ role="bold">${JCR-SRC-HOME}/applications/exo.jcr.applications.backupconsole/target/backupconsole-binary</emphasis>
+ and use it.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para><emphasis role="bold">${JCR-SRC-HOME}</emphasis> the path where
+ eXo JCR sources located</para>
+ </note>
+ </section>
+
+ <section>
+ <title>Running application</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Run jar<programlisting>java -jar exo.jcr.applications.backupconsole-binary.jar <command></programlisting>or
+ use jcrbackup.cmd (or .sh);</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Getting information about backup service</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 info</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>The backup service information :
+ full backup type : org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob
+ incremetal backup type : org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob
+ backup log folder : /home/rainf0x/java/exo-working/JCR-839/new_JCR/exo-tomcat/bin/../temp/backup
+ default incremental job period : 3600</programlisting>
+ </section>
+
+ <section>
+ <title>Starting full backup</title>
+
+ <para>Start full backup only on workspace "backup", the parameter
+ <bakcup_dir> (../temp/backup) should be exists:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 start /repository/backup ../temp/backup</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Starting full and incremental backup on a single
+ workspace</title>
+
+ <para>Start full and incremental backup on workspace
+ "production":</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 start /repository/production ../temp/backup 10000</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ tatus code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about the current backups (in
+ progress)</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 list</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>The current backups information :
+ 1) Backup with id b46370107f000101014b03ea5fbe8d54 :
+ repository name : repository
+ workspace name : production
+ backup type : full + incremetal
+ full backup state : finished
+ incremental backup state : working
+ started time : Fri, 17 Apr 2009 17:03:16 EEST
+ 2) Backup with id b462e4427f00010101cf243b4c6015bb :
+ repository name : repository
+ workspace name : backup
+ backup type : full only
+ full backup state : finished
+ started time : Fri, 17 Apr 2009 17:02:41 EEST</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about the current backup by
+ 'backup_id'</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 status b46370107f000101014b03ea5fbe8d54</programlisting>
+
+ <para>return:</para>
+
+ <programlisting>The current backup information :
+ backup id : b46370107f000101014b03ea5fbe8d54
+ backup folder : /home/rainf0x/java/exo-working/JCR-839/new_JCR/exo-tomcat/bin/../temp/backup
+ repository name : repository
+ workspace name : production
+ backup type : full + incremetal
+ full backup state : finished
+ incremental backup state : working
+ started time : Fri, 17 Apr 2009 17:03:16 EEST</programlisting>
+ </section>
+
+ <section>
+ <title>Stopping backup by "backup_id"</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 stop 6c302adc7f00010100df88d29535c6ee</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about the completed (ready to restore)
+ backups</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 list completed</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>The completed (ready to restore) backups information :
+ 1) Backup with id adf6fadc7f00010100053b2cba43513c :
+ repository name : repository
+ workspace name : backup
+ backup type : full only
+ started time : Thu, 16 Apr 2009 11:07:05 EEST
+
+ 2) Backup with id b46370107f000101014b03ea5fbe8d54 :
+ repository name : repository
+ workspace name : production
+ backup type : full + incremetal
+ started time : Fri, 17 Apr 2009 17:03:16 EEST
+
+ 3) Backup with id aec419cc7f000101004aca277b2b4e9f :
+ repository name : repository
+ workspace name : backup8
+ backup type : full only
+ started time : Thu, 16 Apr 2009 14:51:08 EEST</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring to workspace</title>
+
+ <para>Restore to workspace "backup3", for restore need the
+ <backup_id> of completed backup and path to file with workspace
+ configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore /repository/backup3 6c302adc7f00010100df88d29535c6ee /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config_backup3.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about the current restore</title>
+
+ <para>Get information about the current restore for workspace
+ /repository/backup3:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restores</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>The current restores information :
+1) Restore with id 6c302adc7f00010100df88d29535c6ee:
+ full backup date : 2009-04-03T16:34:37.394+03:00
+ backup log file : /home/rainf0x/java/exo-working/JCR-839/exo-tomcat/bin/../temp/backup/backup-6c302adc7f00010100df88d29535c6ee.xml
+ repository name : repository
+ workspace name : backup3
+ backup type : full only
+ path to backup folder : /home/rainf0x/java/exo-working/JCR-839/exo-tomcat/bin/../temp/backup
+ restore state : successful</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace and remove exists workspace</title>
+
+ <para>Restore to workspace "backup" and remove fully (will be removed
+ content from db, value storage, index) exists workspace, for restore
+ need the <backup_id> of completed backup and path to file with
+ workspace configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /repository/backup 6c302adc7f00010100df88d29535c6ee /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config_backup.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace from backup set</title>
+
+ <para>Restore to workspace "backup", for restore need the
+ <backup_set_path> (<backup_set_path> is path to backup set
+ folder on server side) of completed backup and path to file with
+ workspace configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore /repository/backup /tmp/123/repository_backup-20101220_114156 /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config_backup.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace from backup set and remove exists
+ workspace</title>
+
+ <para>Restore to workspace "backup" and remove fully (will be removed
+ content from db, value storage, index) exists workspace, for restore
+ need the <backup_set_path> (<backup_set_path> is path to
+ backup set folder on server side) of completed backup and path to file
+ with workspace configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /repository/backup /repository/backup /tmp/123/repository_backup-20101220_114156 /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config_backup.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace with original configuation</title>
+
+ <para>Restore to workspace "backup" with original configuration of
+ workspace (the original configuration was stored in backup set), for
+ restore need the <backup_id> of completed backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore 6c302adc7f00010100df88d29535c6ee</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace with original configuation and remove exists
+ workspace</title>
+
+ <para>Restore to workspace "backup" with original configuration of
+ workspace (the original configuration was stored in backup set) and
+ remove fully (will be removed content from db, value storage, index)
+ exists workspace, for restore need the <backup_id> of completed
+ backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists 6c302adc7f00010100df88d29535c6ee</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace from backup set with original
+ configuation</title>
+
+ <para>Restore to workspace "backup" with original configuration of
+ workspace (the original configuration was stored in backup set), for
+ restore need the <backup_set_path> (<backup_set_path> is
+ path to backup set folder on server side) of completed backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore /tmp/123/repository_backup-20101220_114156</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring workspace from backup set with original configuation
+ and remove exists workspace</title>
+
+ <para>Restore to workspace "backup" and remove fully (will be removed
+ content from db, value storage, index) exists workspace with original
+ configuration of workspace (the original configuration was stored in
+ backup set), for restore need the <backup_set_path>
+ (<backup_set_path> is path to backup set folder on server side) of
+ completed backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /tmp/123/repository_backup-20101220_114156</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository</title>
+
+ <para>Restore to repository "repository" , for restore need the
+ <backup_id> of completed backup and path to file with repository
+ configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /repository 6c302adc7f00010100df88d29535c6ee /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository and remove exists repository</title>
+
+ <para>Restore to repositoy "repository" and remove fully (will be
+ removed content from db, value storage, index) exists repository, for
+ restore need the <backup_id> of completed backup and path to file
+ with repository configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /repository 6c302adc7f00010100df88d29535c6ee /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository from backup set</title>
+
+ <para>Restore to repository "repository", for restore need the
+ <backup_set_path> (<backup_set_path> is path to backup set
+ folder on server side) of completed backup and path to file with
+ repository configuration:</para>
+
+ <programlisting>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</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository from backup set and remove exists
+ repository</title>
+
+ <para>Restore to repository "repository" and remove fully (will be
+ removed content from db, value storage, index) exists repository, for
+ restore need the <backup_set_path> (<backup_set_path> is
+ path to backup set folder on server side) of completed backup and path
+ to file with repository configuration:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /repository /repository/backup /tmp/123/repository_repository_backup_1292833493681 /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config.xml</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository with original configuation</title>
+
+ <para>Restore to repository "repository" with original configuration of
+ repository (the original configuration was stored in backup set), for
+ restore need the <backup_id> of completed backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore 6c302adc7f00010100df88d29535c6ee</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository with original configuation and remove exists
+ repository</title>
+
+ <para>Restore to repository "repository" with original configuration of
+ repository (the original configuration was stored in backup set) and
+ remove fully (will be removed content from db, value storage, index)
+ exists repository, for restore need the <backup_id> of completed
+ backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists 6c302adc7f00010100df88d29535c6ee</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository from backup set with original
+ configuation</title>
+
+ <para>Restore to repository "repository" with original configuration of
+ repository (the original configuration was stored in backup set), for
+ restore need the <backup_set_path> (<backup_set_path> is
+ path to backup set folder on server side) of completed backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore /tmp/123/repository_repository_backup_1292833493681</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring repository from backup set with original configuation
+ and remove exists repository</title>
+
+ <para>Restore to repository "repository" and remove fully (will be
+ removed content from db, value storage, index) exists repository with
+ original configuration of repository (the original configuration was
+ stored in backup set), for restore need the <backup_set_path>
+ (<backup_set_path> is path to backup set folder on server side) of
+ completed backup:</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore remove-exists /tmp/123/repository_repository_backup_1292833493681</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+ </section>
+
+ <section>
+ <title>Full example about creating backup and restoring it for workspace
+ 'backup'</title>
+
+ <section>
+ <title>Creating backup</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 start /repository/backup ../temp/backup 10000</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about current backups</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 list</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>The current backups information :
+ 1) Backup with id b469ba957f0001010178febaedf20eb7 :
+ repository name : repository
+ workspace name : backup
+ backup type : full + incremetal
+ full backup state : finished
+ incremental backup state : working
+ started time : Fri, 17 Apr 2009 17:10:09 EEST</programlisting>
+ </section>
+
+ <section>
+ <title>Stopping backup by id</title>
+
+ <para>Stop backup with id b469ba957f0001010178febaedf20eb7 :</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 stop b469ba957f0001010178febaedf20eb7</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Deleting the workspace "backup" and close opened sessions on this
+ workspace</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 drop force-close-session /repository/backup</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring the workspace "backup"</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Delete/clean the database for workspace <emphasis
+ role="bold">"backup"</emphasis> : When we use "single-db", then we
+ will run the SQL queries for clean database :<programlisting>delete from JCR_SREF where NODE_ID in (select ID from JCR_SITEM where CONTAINER_NAME = 'backup')
+delete from JCR_SVALUE where PROPERTY_ID in (select ID from JCR_SITEM where CONTAINER_NAME = 'backup')
+delete from JCR_SITEM where CONTAINER_NAME='backup'</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Delete the value storage for workspace <emphasis
+ role="bold">"backup"</emphasis>; - delete the index data for
+ workspace <emphasis role="bold">"backup"</emphasis>; - restore
+ :<programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore /repository/backup b469ba957f0001010178febaedf20eb7 /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config_backup.xml
+</programlisting>Return :<programlisting>Successful :
+ status code = 200</programlisting>The
+ /home/rainf0x/java/exo-working/JCR-839/exo-jcr-config_backup.xml
+ content the configuration for restored workspace <emphasis
+ role="bold">"backup"</emphasis>:</para></listitem>
+ </itemizedlist>
+
+ <programlisting language="XML"><repository-service default-repository="repository">
+ <repositories>
+ <repository name="repository" system-workspace="production" default-workspace="production">
+ <security-domain>exo-domain</security-domain>
+ <access-control>optional</access-control>
+ <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
+ <workspaces>
+
+ <workspace name="backup">
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="dialect" value="pgsql" />
+ <property name="multi-db" value="false" />
+ <property name="update-storage" value="false" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="../temp/swap/backup" />
+ </properties>
+ <value-storages>
+ <value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path" value="../temp/values/backup" />
+ </properties>
+ <filters>
+ <filter property-type="Binary"/>
+ </filters>
+ </value-storage>
+ </value-storages>
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype" value="nt:unstructured" />
+ </properties>
+ </initializer>
+ <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
+ <properties>
+ <property name="max-size" value="10k" />
+ <property name="live-time" value="1h" />
+ </properties>
+ </cache>
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir" value="../temp/jcrlucenedb/backup" />
+ </properties>
+ </query-handler>
+ </workspace>
+ </workspaces>
+ </repository>
+ </repositories>
+</repository-service>
+</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about restore for workspace
+ /repository/backup</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restores /repository/backup</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting>The current restores information :
+ Restore with id b469ba957f0001010178febaedf20eb7:
+ backup folder : /home/rainf0x/java/exo-working/JCR-839/new_JCR/exo-tomcat/bin/../temp/backup
+ repository name : repository
+ workspace name : backup
+ backup type : full + incremetal
+ restore state : successful
+ started time : Fri, 17 Apr 2009 16:38:00 EEST
+ finished time : Fri, 17 Apr 2009 16:38:00 EEST</programlisting>
+ </section>
+ </section>
+
+ <section>
+ <title>Full example about creating backup and restoring it for repository
+ 'repository'</title>
+
+ <note>
+ <para>If delete default repository that should be restored repository
+ with name as default repository.</para>
+ </note>
+
+ <para>This usecase needs RestRepositoryService enabled. (Deleting the
+ repository needs it)</para>
+
+ <programlisting language="XML"><component>
+ <type>org.exoplatform.services.jcr.ext.repository.RestRepositoryService</type>
+</component></programlisting>
+
+ <section>
+ <title>Creating backup</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 start /repository ../temp/backup 10000</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about current backups</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 list</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>The current backups information :
+ 1) Repository backup with id 9a4d40fb7f0000012ec8f0a4ec70b3da :
+ repository name : repository
+ backup type : full + incremetal
+ full backups state : finished
+ incremental backups state : working
+ started time : Mon, 11 Oct 2010 10:59:35 EEST</programlisting>
+ </section>
+
+ <section>
+ <title>Stopping backup by id</title>
+
+ <para>Stop backup with id 9a4d40fb7f0000012ec8f0a4ec70b3da :</para>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 stop 9a4d40fb7f0000012ec8f0a4ec70b3da</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Deleting the repository "repository" and close all opened
+ sessions</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 drop force-close-session /repository</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>Successful :
+ status code = 200</programlisting>
+ </section>
+
+ <section>
+ <title>Restoring the repository "repository"</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Delete/clean the database for workspace <emphasis
+ role="bold">"repository"</emphasis>: When we use "single-db", then
+ we will run the SQL queries for clean database :<programlisting> drop table JCR_SREF;
+ drop table JCR_SVALUE;
+ drop table JCR_SITEM;</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Delete the value storage for repository <emphasis
+ role="bold">"repository"</emphasis>;</para>
+ </listitem>
+
+ <listitem>
+ <para>Delete the index data for repository <emphasis
+ role="bold">"repository"</emphasis>;</para>
+ </listitem>
+
+ <listitem>
+ <para>Restore:<programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restore /repository 9a6dba327f000001325dfb228a181b07 /home/rainf0x/exo-jcr-config_backup.xml</programlisting>Return
+ :<programlisting>Successful :
+ status code = 200</programlisting>The
+ /home/rainf0x/exo-jcr-config_backup.xml content the configuration
+ for restored repository <emphasis
+ role="bold">"repository"</emphasis>:</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting language="XML"><repository-service default-repository="repository">
+ <repositories>
+ <repository name="repository" system-workspace="production" default-workspace="production">
+ <security-domain>exo-domain</security-domain>
+ <access-control>optional</access-control>
+ <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
+ <workspaces>
+ <workspace name="production">
+ <!-- for system storage -->
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="multi-db" value="false" />
+ <property name="update-storage" value="false" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="../temp/swap/production" />
+ </properties>
+ <value-storages>
+ <value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path" value="../temp/values/production" />
+ </properties>
+ <filters>
+ <filter property-type="Binary" />
+ </filters>
+ </value-storage>
+ </value-storages>
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype" value="nt:unstructured" />
+ </properties>
+ </initializer>
+ <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
+ <properties>
+ <property name="max-size" value="10k" />
+ <property name="live-time" value="1h" />
+ </properties>
+ </cache>
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir" value="../temp/jcrlucenedb/production" />
+ </properties>
+ </query-handler>
+ <lock-manager>
+ <time-out>15m</time-out>
+ <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
+ <properties>
+ <property name="path" value="../temp/lock/system" />
+ </properties>
+ </persister>
+ </lock-manager>
+ </workspace>
+
+ <workspace name="backup">
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="multi-db" value="false" />
+ <property name="update-storage" value="false" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="../temp/swap/backup" />
+ </properties>
+ <value-storages>
+ <value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path" value="../temp/values/backup" />
+ </properties>
+ <filters>
+ <filter property-type="Binary" />
+ </filters>
+ </value-storage>
+ </value-storages>
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype" value="nt:unstructured" />
+ </properties>
+ </initializer>
+ <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
+ <properties>
+ <property name="max-size" value="10k" />
+ <property name="live-time" value="1h" />
+ </properties>
+ </cache>
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir" value="../temp/jcrlucenedb/backup" />
+ </properties>
+ </query-handler>
+ </workspace>
+
+ <workspace name="digital-assets">
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="multi-db" value="false" />
+ <property name="update-storage" value="false" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="../temp/swap/digital-assets" />
+ </properties>
+ <value-storages>
+ <value-storage id="digital-assets" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path" value="../temp/values/digital-assets" />
+ </properties>
+ <filters>
+ <filter property-type="Binary" />
+ </filters>
+ </value-storage>
+ </value-storages>
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype" value="nt:folder" />
+ </properties>
+ </initializer>
+ <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
+ <properties>
+ <property name="max-size" value="5k" />
+ <property name="live-time" value="15m" />
+ </properties>
+ </cache>
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir" value="../temp/jcrlucenedb/digital-assets" />
+ </properties>
+ </query-handler>
+ </workspace>
+ </workspaces>
+ </repository>
+ </repositories>
+</repository-service>
+</programlisting>
+
+ </section>
+
+ <section>
+ <title>Getting information about restore for repository
+ 'repository'</title>
+
+ <programlisting>jcrbackup http://root:exo@127.0.0.1:8080 restores /repository</programlisting>
+
+ <para>Return:</para>
+
+ <programlisting> Repository restore with id 9a6dba327f000001325dfb228a181b07:
+ backup folder : /home/rainf0x/java/exo-working/JCR-1459/exo-tomcat/bin/../temp/backup/repository_repository_backup_1286786103858
+ repository name : repository
+ backup type : full + incremetal
+ restore state : successful
+ started time : Mon, 11 Oct 2010 11:51:15 EEST
+ finished time : Mon, 11 Oct 2010 11:51:17 EEST</programlisting>
+ </section>
+ </section>
+</section>
Added: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-clonsole-dist.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-clonsole-dist.xml (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/backup-clonsole-dist.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,162 @@
+<?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">
+<section>
+
+ <title>Backup console binary distribution </title>
+
+ <section>
+ <title>Introduction</title>
+
+ <para>The backup console binary distribution is script-based front-end to
+ backup client to creation backup, restore, getting status of current or
+ completed backup/restore, etc. </para>
+
+ <para>The backup console binary distribution conatins original backup
+ console and script adaptation for use with GateIn based products like
+ Platform.</para>
+ </section>
+
+ <section>
+ <title>jcrbackup.cmd and jcrbackup.sh</title>
+
+ <para>These scripts suitable for Standalone and flexible for various
+ authentication ways shell scripts.</para>
+
+ <para>Command signature:</para>
+
+ <programlisting> <url_basic_authentication> | <url_form_authentication> <command>
+
+ <url_basic_authentication>: http(s)//login:password@host:port/<context>
+ <url_form_authentication> : http(s)//host:port/<context> <form_auth_parm>
+
+ <form_auth_part> : form <method> <form_path>
+ <method> : POST or GET
+ <form_path> : /path/path?<paramName1>=<paramValue1>&<paramName2>=<paramValue2>...
+
+ Example of <url_form_authentication> - http://127.0.0.1:8080/portal/rest form POST "/portal/login?initialURI=/portal/private&username=root&password=gtn"
+
+ <command> : start <repo[/ws]> <backup_dir> [<incr>]
+ stop <backup_id>
+ status <backup_id>
+ restores <repo[/ws]>
+ restore [remove-exists] [<repo[/ws]>] {<backup_id>|<backup_set_path>} [<pathToConfigFile>]
+ list [completed]
+ info
+ drop [force-close-session] <repo[/ws]>
+ help
+
+ start : start backup of repository or workspace
+ stop : stop backup
+ status : information about the current or completed backup by 'backup_id'
+ restores : information about the last restore on specific repository or workspace
+ restore : restore the repository or workspace from specific backup
+ list : information about the current backups (in progress)
+ list completed : information about the completed (ready to restore) backups
+ info : information about the service backup
+ drop : delete the repository or workspace
+ help : print help information about backup console
+
+ <repo[/ws]> : /<repository-name>[/<workspace-name>] the repository or workspace
+ <backup_dir> : path to folder for backup on remote server
+ <backup_id> : the identifier for backup
+ <incr> : incremental job period
+ <pathToConfigFile> : path (local) to repository or workspace configuration
+ remove-exists : remove fully (db, value storage, index) exists repository/workspace
+ force-close-session : close opened sessions on repository or workspace</programlisting>
+ </section>
+
+ <section>
+ <title>exobackup.sh and exobackup.cmd</title>
+
+ <para>These scripts suitable for use with GateIn based products like
+ Platform</para>
+
+ <para>Command signature:</para>
+
+ <programlisting> -u <user> -p <password> [form_of_authentication] <host:port> <command>
+
+ <form_of_authentication> : -b - is used for basic authentication
+ -f [-c <context>] - is used for form authentication with context portal if parameter context not specified
+ if no authentication set basic authentication is used
+ -c <context> : context, by default context is portal
+
+ <command> : start <repo[/ws]> <backup_dir> [<incr>]
+ stop <backup_id>
+ status <backup_id>
+ restores <repo[/ws]>
+ restore [remove-exists] [<repo[/ws]>] {<backup_id>|<backup_set_path>} [<pathToConfigFile>]
+ list [completed]
+ info
+ drop [force-close-session] <repo[/ws]>
+ help
+
+ start : start backup of repository or workspace
+ stop : stop backup
+ status : information about the current or completed backup by 'backup_id'
+ restores : information about the last restore on specific repository or workspace
+ restore : restore the repository or workspace from specific backup
+ list : information about the current backups (in progress)
+ list completed : information about the completed (ready to restore) backups
+ info : information about the service backup
+ drop : delete the repository or workspace
+ help : print help information about backup console
+
+ <repo[/ws]> : /<repository-name>[/<workspace-name>] the repository or workspace
+ <backup_dir> : path to folder for backup on remote server
+ <backup_id> : the identifier for backup
+ <incr> : incremental job period
+ <pathToConfigFile> : path (local) to repository or workspace configuration
+ remove-exists : remove fully (db, value storage, index) exists repository/workspace
+ force-close-session : close opened sessions on repository or workspace</programlisting>
+ </section>
+
+ <section>
+ <title>Backup console binary distribution usage</title>
+
+ <section>
+ <title>Building application</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Go to folder <emphasis
+ role="bold">${JCR-SRC-HOME}/applications/exo.jcr.applications.backupconsole.dist</emphasis>
+ . - build the application :<programlisting>mvn clean install</programlisting></para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Getting information about backup service</title>
+
+ <para>The context is "portal" by default for FORM authentiaction.</para>
+
+ <programlisting>./exobackup.sh -u root -p gtn -f 192.168.0.15:8080 info</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>The backup service information :
+ full backup type : org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob
+ incremetal backup type : org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob
+ backup log folder : /home/rainf0x/java/exo-working/JCR-839/new_JCR/exo-tomcat/bin/../temp/backup
+ default incremental job period : 3600</programlisting>
+ </section>
+
+ <section>
+ <title>Getting information about backup service with use not default
+ context</title>
+
+ <para>The context is "exodms-demo".</para>
+
+ <programlisting>./exobackup.sh -u root -p gtn -f -c exodms-demo 192.168.0.15:8080 info</programlisting>
+
+ <para>Return :</para>
+
+ <programlisting>The backup service information :
+ full backup type : org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob
+ incremetal backup type : org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob
+ backup log folder : /home/rainf0x/java/exo-working/JCR-839/new_JCR/exo-tomcat/bin/../temp/backup
+ default incremental job period : 3600</programlisting>
+ </section>
+ </section>
+</section>
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/exojcr-backup-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,965 @@
+<?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">
+<section>
+
+ <title>eXo JCR Backup Service</title>
+
+ <note>
+ <para>Restore of system workspace is not supported only as part of
+ restoring of whole repository.</para>
+ </note>
+
+ <section>
+ <title>Concept</title>
+
+ <para>The main purpose of that feature is to restore data in case of
+ system faults and repository crashes. Also, the backup results may be used
+ as a content history.</para>
+
+ <para>The eXo JCR backup service was developed from the JCR 1.8
+ implementation. It's an independent service available as an eXo JCR
+ Extensions project.</para>
+
+ <para>The concept is based on the export of a workspace unit in the Full,
+ or Full + Incrementals model. A repository workspace can be backup and
+ restored using a combination of these modes. In all cases, at least one
+ Full (initial) backup must be executed to mark a starting point of the
+ backup history. An Incremental backup is not a complete image of the
+ workspace. It contains only changes for some period. So it is not possible
+ to perform an Incremental backup without an initial Full backup.</para>
+
+ <para>The Backup service may operate as a hot-backup process at runtime on
+ an in-use workspace. It's a case when the Full + Incrementals model should
+ be used to have a guaranty of data consistency during restoration. An
+ Incremental will be run starting from the start point of the Full backup
+ and will contain changes that have occured during the Full backup,
+ too.</para>
+
+ <para>A <emphasis role="bold">restore</emphasis> operation is a mirror of
+ a backup one. At least one Full backup should be restored to obtain a
+ workspace corresponding to some points in time. On the other hand,
+ Incrementals may be restored in the order of creation to reach a required
+ state of a content. If the Incremental contains the same data as the Full
+ backup (hot-backup), the changes will be applied again as if they were
+ made in a normal way via API calls.</para>
+
+ <para>According to the model there are several modes for backup
+ logic:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis role="bold">Full backup only</emphasis> : Single
+ operation, runs once</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">Full + Incrementals</emphasis> : Start
+ with an initial Full backup and then keep incrementals changes in one
+ file. Run until it is stopped.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">Full + Incrementals(periodic)</emphasis> :
+ Start with an initial Full backup and then keep incrementals with
+ periodic result file rotation. Run until it is stopped.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>How it works</title>
+
+ <section>
+ <title>Implementation details</title>
+
+ <para>Full backup/restore is implemented using the JCR SysView
+ Export/Import. Workspace data will be exported into Sysview XML data
+ from root node.</para>
+
+ <para>Restoring is implemented, using the special eXo JCR API feature: a
+ dynamic workspace creation. Restoring of the workspace Full backup will
+ create one new workspace in the repository. Then, the SysView XML data
+ will be imported as the root node.</para>
+
+ <para>Incremental backup is implemented using the eXo JCR ChangesLog
+ API. This API allows to record each JCR API call as atomic entries in a
+ changelog. Hence, the Incremental backup uses a listener that collects
+ these logs and stores them in a file.</para>
+
+ <para>Restoring an incremental backup consists in applying the collected
+ set of ChangesLogs to a workspace in the correct order.</para>
+ </section>
+
+ <section>
+ <title>Work basics</title>
+
+ <para>The work of Backup is based on the BackupConfig configuration and
+ the BackupChain logical unit.</para>
+
+ <para>BackupConfig describes the backup operation chain that will be
+ performed by the service. When you intend to work with it, the
+ configuration should be prepared before the backup is started.</para>
+
+ <para>The configuration contains such values as:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis role="bold">Types of full and incremental
+ backup</emphasis> (fullBackupType, incrementalBackupType): Strings
+ with full names of classes which will cover the type
+ functional.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">Incremental period</emphasis>: A period
+ after that a current backup will be stopped and a new one will be
+ started in seconds (long).</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">Target repository and workspace
+ names</emphasis>: Strings with described names</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">Destination directory</emphasis> for
+ result files: String with a path to a folder where operation result
+ files will be stored.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>BackupChain is a unit performing the backup process and it covers
+ the principle of initial Full backup execution and manages Incrementals
+ operations. BackupChain is used as a key object for accessing current
+ backups during runtime via BackupManager. Each BackupJob performs a
+ single atomic operation - a Full or Incremental process. The result of
+ that operation is data for a Restore. BackupChain can contain one or
+ more BackupJobs. But at least the initial Full job is always there. Each
+ BackupJobs has its own unique number which means its Job order in the
+ chain, the initial Full job always has the number 0.</para>
+
+ <para><emphasis role="bold">Backup process, result data and file
+ location</emphasis></para>
+
+ <para>To start the backup process, it's necessary to create the
+ BackupConfig and call the BackupManager.startBackup(BackupConfig)
+ method. This method will return BackupChain created according to the
+ configuration. At the same time, the chain creates a BackupChainLog
+ which persists BackupConfig content and BackupChain operation states to
+ the file in the service working directory (see Configuration).</para>
+
+ <para>When the chain starts the work and the initial BackupJob starts,
+ the job will create a result data file using the destination directory
+ path from BackupConfig. The destination directory will contain a
+ directory with an automatically created name using the pattern
+ repository_workspace-timestamp where timestamp is current time in the
+ format of yyyyMMdd_hhmmss (E.g. db1_ws1-20080306_055404). The directory
+ will contain the results of all Jobs configured for execution. Each Job
+ stores the backup result in its own file with the name
+ repository_workspace-timestamp.jobNumber. BackupChain saves each state
+ (STARTING, WAITING, WORKING, FINISHED) of its Jobs in the
+ BackupChainLog, which has a current result full file path.</para>
+
+ <para>BackupChain log file and job result files are a whole and
+ consistent unit, that is a source for a Restore.</para>
+
+ <note>
+ <para>BackupChain log contains absolute paths to job result files.
+ Don't move these files to another location.</para>
+ </note>
+
+ <para><emphasis role="bold">Restore requirements</emphasis></para>
+
+ <para>As mentioned before a Restore operation is a mirror of a Backup.
+ The process is a Full restore of a root node with restoring an
+ additional Incremental backup to reach a desired workspace state.
+ Restoring of the workspace Full backup will create a new workspace in
+ the repository using given RepositoyEntry of existing repository and
+ given (preconfigured) WorkspaceEntry for a new target workspace. A
+ Restore process will restore a root node from the SysView XML
+ data.</para>
+
+ <note>
+ <para>The target workspace should not be in the repository. Otherwise,
+ a BackupConfigurationException exception will be thrown.</para>
+ </note>
+
+ <para>Finally, we may say that Restore is a process of a new Workspace
+ creation and filling it with a Backup content. 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.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+
+ <para>As an optional extension, the Backup service is not enabled by
+ default. <emphasis role="bold">You need to enable it via
+ configuration</emphasis>.</para>
+
+ <para>The following is an example configuration compatible with JCR 1.9.3
+ and later:</para>
+
+ <programlisting language="XML"><component>
+ <key>org.exoplatform.services.jcr.ext.backup.BackupManager</key>
+ <type>org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl</type>
+ <init-params>
+ <properties-param>
+ <name>backup-properties</name>
+ <property name="default-incremental-job-period" value="3600" /> <!-- set default incremental period = 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>
+</component></programlisting>
+
+ <para>Where:<itemizedlist>
+ <listitem>
+ <para><emphasis role="bold">incremental-backup-type</emphasis>
+ (since 1.9.3) : The FQN of incremental job class. Must implement
+ org.exoplatform.services.jcr.ext.backup.BackupJob</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">full-backup-type</emphasis> (since
+ 1.9.3) : The FQN of the full backup job class; Must implement
+ org.exoplatform.services.jcr.ext.backup.BackupJob</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis
+ role="bold">default-incremental-job-period</emphasis> (since 1.9.3)
+ : The period between incremetal flushes (in seconds)</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis role="bold">backup-dir</emphasis> : The path to a
+ working directory where the service will store internal files and
+ chain logs.</para>
+ </listitem>
+ </itemizedlist></para>
+ </section>
+
+ <section>
+ <title>Usage</title>
+
+ <section>
+ <title>Performing a Backup</title>
+
+ <para>In the following example, we create a BackupConfig bean for the
+ Full + Incrementals mode, then we ask the BackupManager to start the
+ backup process.</para>
+
+ <programlisting language="Java">// Obtaining the backup service from the eXo container.
+BackupManager backup = (BackupManager) container.getComponentInstanceOfType(BackupManager.class);
+
+// And prepare the BackupConfig instance with custom parameters.
+// full backup & incremental
+File backDir = new File("/backup/ws1"); // the destination path for result files
+backDir.mkdirs();
+
+BackupConfig config = new BackupConfig();
+config.setRepository(repository.getName());
+config.setWorkspace("ws1");
+config.setBackupDir(backDir);
+
+// Before 1.9.3, you also need to indicate the backupjobs class FDNs
+// config.setFullBackupType("org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob");
+// config.setIncrementalBackupType("org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
+
+// start backup using the service manager
+BackupChain chain = backup.startBackup(config);</programlisting>
+
+ <para>To stop the backup operation, you have to use the BackupChain
+ instance.</para>
+
+ <programlisting language="Java">// stop backup
+backup.stopBackup(chain);</programlisting>
+ </section>
+
+ <section>
+ <title>Performing a Restore</title>
+
+ <para>Restoration involves reloading the backup file into a
+ BackupChainLog and applying appropriate workspace initialization. The
+ following snippet shows the typical sequence for restoring a workspace
+ :</para>
+
+ <programlisting language="Java">// find BackupChain using the repository and workspace names (return null if not found)
+BackupChain chain = backup.findBackup("db1", "ws1");
+
+// Get the RepositoryEntry and WorkspaceEntry
+ManageableRepository repo = repositoryService.getRepository(repository);
+RepositoryEntry repoconf = repo.getConfiguration();
+List<WorkspaceEntry> entries = repoconf.getWorkspaceEntries();
+WorkspaceEntry = getNewEntry(entries, workspace); // create a copy entry from an existing one
+
+// restore backup log using ready RepositoryEntry and WorkspaceEntry
+File backLog = new File(chain.getLogFilePath());
+BackupChainLog bchLog = new BackupChainLog(backLog);
+
+// initialize the workspace
+repository.configWorkspace(workspaceEntry);
+
+// run restoration
+backup.restore(bchLog, repositoryEntry, workspaceEntry);</programlisting>
+
+ <section>
+ <title>Restoring into an existing workspace</title>
+
+ <note>
+ <para>These instructions only applies to regular workspace. Special
+ instructions are provided for System workspace below.</para>
+ </note>
+
+ <para>To restore a backup over an existing workspace, you are required
+ to clear its data. Your backup process should follow these steps:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Remove workspace</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting language="Java">ManageableRepository repo = repositoryService.getRepository(repository);
+repo.removeWorkspace(workspace);</programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Clean database, value storage, index</para>
+ </listitem>
+
+ <listitem>
+ <para>Restore (see snippet above)</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>System workspace</title>
+
+ <note>
+ <para>The BackupWorkspaceInitializer is available in JCR 1.9 and
+ later.</para>
+ </note>
+
+ <para>Restoring the JCR System workspace requires to shutdown the
+ system and use of a special initializer.</para>
+
+ <para>Follow these steps (this will also work for normal workspaces): </para>
+ <itemizedlist>
+ <listitem>
+ <para>Stop repository (or portal)</para>
+ </listitem>
+
+ <listitem>
+ <para>Clean database, value storage, index;</para>
+ </listitem>
+
+ <listitem>
+ <para>In configuration, the workspace set
+ BackupWorkspaceInitializer to refer to your backup.</para>
+ </listitem>
+ </itemizedlist>
+ <para>For example:</para>
+ <programlisting language="XML"><workspaces>
+ <workspace name="production" ... >
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ ...
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer">
+ <properties>
+ <property name="restore-path" value="D:\java\exo-working\backup\repository_production-20090527_030434"/>
+ </properties>
+ </initializer>
+ ...
+</workspace>
+</programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Start repository (or portal).</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+
+ <section>
+ <title>Repository and Workspace initialization from backup</title>
+
+ <para>Repository and Workspace initialization from backup can use the
+ BackupWorkspaceInitializer.</para>
+
+ <para>Will be configured BackupWorkspaceInitializer in configuration of
+ workspace to restore the Workspace from backup over initializer.</para>
+
+ <para>Will be configured BackupWorkspaceInitializer in all
+ configurations workspaces of the Repository to restore the Repository
+ from backup over initializer.</para>
+
+ <para></para>
+
+ <para>Restoring the repository or workspace requires to shutdown the
+ repository.</para>
+
+ <para>Follow these steps: <itemizedlist>
+ <listitem>
+ <para>Stop repository (will be skipped this step if repository or
+ workace is not exists)</para>
+ </listitem>
+
+ <listitem>
+ <para>Clean database, value storage, index; (will be skipped this
+ step if repository or worksace is new)</para>
+ </listitem>
+
+ <listitem>
+ <para>In configuration, the workspace/-s set
+ BackupWorkspaceInitializer to refer to your backup.</para>
+ </listitem>
+
+ <listitem>
+ <para>Start repository</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para></para>
+
+ <para>Example of configuration initializer to restore workspace "backup"
+ over BackupWorkspaceInitializer:</para>
+
+ <programlisting language="XML"><workspaces>
+ <workspace name="backup" ... >
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ ...
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer">
+ <properties>
+ <property name="restore-path" value="D:\java\exo-working\backup\repository_backup-20110120_044734"/>
+ </properties>
+ </initializer>
+ ...
+</workspace></programlisting>
+
+ <section>
+ <title>Restore the Workspace over BackupWorksaceInitializer</title>
+
+ <para>Example of configuration initializer to resore the workspace
+ "backup" over BackupWorkspaceInitializer:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Stop repository (will be skipped this step if workspace is
+ not exists)</para>
+ </listitem>
+
+ <listitem>
+ <para>Clean database, value storage, index; (will be skipped
+ this step if workspace is new)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In configuration, the workspace/-s set
+ BackupWorkspaceInitializer to refer to your
+ backup.</para>
+
+ <programlisting language="XML"><workspaces>
+ <workspace name="backup" ... >
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ ...
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer">
+ <properties>
+ <property name="restore-path" value="D:\java\exo-working\backup\repository_backup-20110120_044734"/>
+ </properties>
+ </initializer>
+ ...
+</workspace></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Start repository</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Restore the Repository over BackupWorksaceInitializer</title>
+
+ <para>Example of configuration initializers to restore the repository
+ "repository" over BackupWorkspaceInitializer:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Stop repository (will be skipped this step if repository
+ is not exists)</para>
+ </listitem>
+
+ <listitem>
+ <para>Clean database, value storage, index; (will be skipped
+ this step if repository is new)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In configuration of repository will be configured
+ initializers of workspace to refer to your backup.</para>
+
+
+ <para>For example:</para>
+
+ <programlisting language="XML">...
+<workspaces>
+ <workspace name="system" ... >
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ ...
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer">
+ <properties>
+ <property name="restore-path" value="D:\java\exo-working\backup\repository_system-20110120_052334"/>
+ </properties>
+ </initializer>
+ ...
+ </workspace>
+
+ <workspace name="collaboration" ... >
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ ...
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer">
+ <properties>
+ <property name="restore-path" value="D:\java\exo-working\backup\repository_collaboration-20110120_052341"/>
+ </properties>
+ </initializer>
+ ...
+ </workspace>
+
+ <workspace name="backup" ... >
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer">
+ ...
+ </container>
+
+ <initializer class="org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer">
+ <properties>
+ <property name="restore-path" value="D:\java\exo-working\backup\repository_backup-20110120_052417"/>
+ </properties>
+ </initializer>
+ ...
+ </workspace>
+</workspaces>
+</programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Start repository.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+ </section>
+
+ <section>
+ <title>Scheduling (experimental)</title>
+
+ <para>The Backup service has an additional feature that can be useful for
+ a production level backup implementation. When you need to organize a
+ backup of a repository, it's necessary to have a tool which will be able
+ to create and manage a cycle of Full and Incremental backups in periodic
+ manner.</para>
+
+ <para>The service has internal BackupScheduler which can run a
+ configurable cycle of BackupChains as if they have been executed by a user
+ during some period of time. I.e. BackupScheduler is a user-like daemon
+ which asks the BackupManager to start or stop backup operations.</para>
+
+ <para>For that purpose, BackupScheduler has the method.</para>
+
+ <para>BackupScheduler.schedule(backupConfig, startDate, stopDate,
+ chainPeriod, incrementalPeriod)</para>
+
+ <para>where</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>backupConfig: A ready configuration which will be given to the
+ BackupManager.startBackup() method</para>
+ </listitem>
+
+ <listitem>
+ <para>startDate: The date and time of the backup start</para>
+ </listitem>
+
+ <listitem>
+ <para>stopDate: The date and time of the backup stop</para>
+ </listitem>
+
+ <listitem>
+ <para>chainPeriod: A period after which a current BackupChain will be
+ stopped and a new one will be started in seconds</para>
+ </listitem>
+
+ <listitem>
+ <para>incrementalPeriod: If it is greater than 0, it will be used to
+ override the same value in backupConfig.</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting language="Java">// geting the scheduler from the BackupManager
+ BackupScheduler scheduler = backup.getScheduler();
+
+// schedule backup using a ready configuration (Full + Incrementals) to run from startTime
+// to stopTime. Full backuop will be performed every 24 hours (BackupChain lifecycle),
+// incremental will rotate result files every 3 hours.
+ scheduler.schedule(config, startTime, stopTime, 3600 * 24, 3600 * 3);
+
+// it's possible to run the scheduler for an uncertain period of time (i.e. without stop time).
+// schedule backup to run from startTime till it will be stopped manually
+// also there, the incremental will rotate result files as it configured in BackupConfig
+ scheduler.schedule(config, startTime, null, 3600 * 24, 0);
+
+// to unschedule backup simply call the scheduler with the configuration describing the
+// already planned backup cycle.
+// the scheduler will search in internal tasks list for task with repository and
+// workspace name from the configuration and will stop that task.
+ scheduler.unschedule(config);</programlisting>
+
+ <para>When the BackupScheduler starts the scheduling, it uses the internal
+ Timer with startDate for the first (or just once) execution. If
+ chainPeriod is greater than 0, then the task is repeated with this value
+ used as a period starting from startDate. Otherwise, the task will be
+ executed once at startDate time. If the scheduler has stopDate, it will
+ stop the task ( the chain cycle) after stopDate. And the last parameter
+ incrementalPeriod will be used instead of the same from BackupConfig if
+ its values are greater than 0.</para>
+
+ <para>Starting each task (BackupScheduler.schedule(...)), the scheduler
+ creates a task file in the service working directory (see <emphasis
+ role="bold">Configuration</emphasis>, backup-dir) which describes the task
+ backup configuration and periodic values. These files will be used at the
+ backup service start (JVM start) to reinitialize BackupScheduler for
+ continuous task scheduling. Only tasks that don't have a stopDate or a
+ stopDate not expired will be reinitialized.</para>
+
+ <para>There is one notice about BackupScheduler task reinitialization in
+ the current implementation. It comes from the BackupScheduler nature and
+ its implemented behaviour. As the scheduler is just a virtual user which
+ asks the BackupManager to start or stop backup operations, it isn't able
+ to reinitialize each existing BackupChain before the service (JVM) is
+ stopped. But it's possible to start a new operation with the same
+ configuration via BackupManager (that was configured before and stored in
+ a task file).</para>
+
+ <para>This is a main detail of the BackupScheduler 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 chainPeriod and incrementalPeriod will be applied
+ again. That behaviour may be changed in the future.</para>
+ </section>
+
+ <section>
+ <title>Restore existing workspace or repository</title>
+
+ <para>The resore of existing workspace or repositry is available.</para>
+
+ <para>For restore will be used spacial methods:</para>
+
+ <programlisting language="Java"> /**
+ * Restore existing workspace. Previous data will be deleted.
+ * For getting status of workspace restore can use
+ * BackupManager.getLastRestore(String repositoryName, String workspaceName) method
+ *
+ * @param workspaceBackupIdentifier
+ * backup identifier
+ * @param workspaceEntry
+ * new workspace configuration
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingWorkspace(String workspaceBackupIdentifier, String repositoryName, WorkspaceEntry workspaceEntry,
+ boolean asynchronous) throws BackupOperationException, BackupConfigurationException;
+
+ /**
+ * Restore existing workspace. Previous data will be deleted.
+ * For getting status of workspace restore use can use
+ * BackupManager.getLastRestore(String repositoryName, String workspaceName) method
+ *
+ * @param log
+ * workspace backup log
+ * @param workspaceEntry
+ * new workspace configuration
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingWorkspace(BackupChainLog log, String repositoryName, WorkspaceEntry workspaceEntry, boolean asynchronous) throws BackupOperationException, BackupConfigurationException;
+
+ /**
+ * Restore existing repository. Previous data will be deleted.
+ * For getting status of repository restore can use
+ * BackupManager.getLastRestore(String repositoryName) method
+ *
+ * @param repositoryBackupIdentifier
+ * backup identifier
+ * @param repositoryEntry
+ * new repository configuration
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingRepository(String repositoryBackupIdentifier, RepositoryEntry repositoryEntry, boolean asynchronous) throws BackupOperationException, BackupConfigurationException;
+
+ /**
+ * Restore existing repository. Previous data will be deleted.
+ * For getting status of repository restore can use
+ * BackupManager.getLastRestore(String repositoryName) method
+ *
+ * @param log
+ * repository backup log
+ * @param repositoryEntry
+ * new repository configuration
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingRepository(RepositoryBackupChainLog log, RepositoryEntry repositoryEntry, boolean asynchronous)
+ throws BackupOperationException, BackupConfigurationException;</programlisting>
+
+ <para>These methods for restore will do:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>remove existed workspace or repository;</para>
+ </listitem>
+
+ <listitem>
+ <para>clean database;</para>
+ </listitem>
+
+ <listitem>
+ <para>clean index data;</para>
+ </listitem>
+
+ <listitem>
+ <para>clean value storage;</para>
+ </listitem>
+
+ <listitem>
+ <para>restore from backup.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Restore a workspace or a repository using original
+ configuration</title>
+
+ <para>The Backup manager allows you to restore a repository or a workspace
+ using the original configuration stored into the backup log:</para>
+
+ <programlisting language="Java">/**
+ * Restore existing workspace. Previous data will be deleted.
+ * For getting status of workspace restore can use
+ * BackupManager.getLastRestore(String repositoryName, String workspaceName) method
+ * WorkspaceEntry for restore should be contains in BackupChainLog.
+ *
+ * @param workspaceBackupIdentifier
+ * identifier to workspace backup.
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingWorkspace(String workspaceBackupIdentifier, boolean asynchronous)
+ throws BackupOperationException,
+ BackupConfigurationException;
+
+ /**
+ * Restore existing repository. Previous data will be deleted.
+ * For getting status of repository restore can use
+ * BackupManager.getLastRestore(String repositoryName) method.
+ * ReprositoryEntry for restore should be contains in BackupChainLog.
+ *
+ * @param repositoryBackupIdentifier
+ * identifier to repository backup.
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingRepository(String repositoryBackupIdentifier, boolean asynchronous)
+ throws BackupOperationException,
+ BackupConfigurationException;
+
+ /**
+ * WorkspaceEntry for restore should be contains in BackupChainLog.
+ *
+ * @param workspaceBackupIdentifier
+ * identifier to workspace backup.
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreWorkspace(String workspaceBackupIdentifier, boolean asynchronous) throws BackupOperationException,
+ BackupConfigurationException;
+
+ /**
+ * ReprositoryEntry for restore should be contains in BackupChainLog.
+ *
+ * @param repositoryBackupIdentifier
+ * identifier to repository backup.
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreRepository(String repositoryBackupIdentifier, boolean asynchronous) throws BackupOperationException,
+ BackupConfigurationException;
+
+ /**
+ * Restore existing workspace. Previous data will be deleted.
+ * For getting status of workspace restore can use
+ * BackupManager.getLastRestore(String repositoryName, String workspaceName) method
+ * WorkspaceEntry for restore should be contains in BackupChainLog.
+ *
+ * @param workspaceBackupSetDir
+ * the directory with backup set
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingWorkspace(File workspaceBackupSetDir, boolean asynchronous)
+ throws BackupOperationException, BackupConfigurationException;
+
+ /**
+ * Restore existing repository. Previous data will be deleted.
+ * For getting status of repository restore can use
+ * BackupManager.getLastRestore(String repositoryName) method.
+ * ReprositoryEntry for restore should be contains in BackupChainLog.
+ *
+ * @param repositoryBackupSetDir
+ * the directory with backup set
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreExistingRepository(File repositoryBackupSetDir, boolean asynchronous)
+ throws BackupOperationException, BackupConfigurationException;
+
+ /**
+ * WorkspaceEntry for restore should be contains in BackupChainLog.
+ *
+ * @param workspaceBackupSetDir
+ * the directory with backup set
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreWorkspace(File workspaceBackupSetDir, boolean asynchronous) throws BackupOperationException,
+ BackupConfigurationException;
+
+ /**
+ * ReprositoryEntry for restore should be contains in BackupChainLog.
+ *
+ * @param repositoryBackupSetDir
+ * the directory with backup set
+ * @param asynchronous
+ * if 'true' restore will be in asynchronous mode (i.e. in separated thread)
+ * @throws BackupOperationException
+ * if backup operation exception occurred
+ * @throws BackupConfigurationException
+ * if configuration exception occurred
+ */
+ void restoreRepository(File repositoryBackupSetDir, boolean asynchronous) throws BackupOperationException,
+ BackupConfigurationException;</programlisting>
+ </section>
+
+ <section>
+ <title>Backup set portability</title>
+
+ <para>The Backup log is stored during the Backup operation into two
+ different locations: backup-dir directory of BackupService to support
+ interactive operations via Backup API (e.g. console) and backup set files
+ for portability (e.g. on another server).</para>
+ </section>
+
+ <section>
+ <title>RDBMS backup</title>
+
+ <para>RDBMS backup It is another implementation of full backup job for
+ BackupManager service. It is useful in case when database is used to store
+ data. </para>
+
+ <para>Brings such advantages:</para>
+
+ <para><itemizedlist>
+ <listitem>
+ <para>fast: backup takes only several minutes to perform full backup
+ of repository with 1 million rows in tables;</para>
+ </listitem>
+
+ <listitem>
+ <para>atomic restore: restore process into existing
+ workspace/repository with same configuration is atomic, it means you
+ don’t loose the data when restore failed, the original data
+ remains;</para>
+ </listitem>
+
+ <listitem>
+ <para>cluster aware: it is possible to make backup/restore in
+ cluster environment into existing workspace/repository with same
+ configuration;</para>
+ </listitem>
+
+ <listitem>
+ <para>consistence backup: all threads make waiting until backup is
+ finished and then continue to work, so, there are no data
+ modification during backup process;</para>
+ </listitem>
+ </itemizedlist>Configuration:</para>
+
+ <programlisting language="XML"><component>
+ <key>org.exoplatform.services.jcr.ext.backup.BackupManager</key>
+ <type>org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl</type>
+ <init-params>
+ <properties-param>
+ <name>backup-properties</name>
+ <property name="default-incremental-job-period" value="3600" /> <!-- set default incremental period = 60 minutes -->
+ <property name="full-backup-type" value="org.exoplatform.services.jcr.ext.backup.impl.rdbms.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>
+</component>
+</programlisting>
+ </section>
+</section>
Added: 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 (rev 0)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/backup/use-external-backup-tool.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -0,0 +1,70 @@
+<?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">
+<section>
+ <title>Use external backup tool</title>
+
+ <section>
+ <title>Repository suspending</title>
+
+ <para>To have the repository content consistent with the search index and
+ value storate, the repository should be suspened. It means all working
+ threads are suspended until resume operation performed. Index will be
+ flushed.</para>
+
+ <para>JCR provides ability to suspend repository via JMX.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/repository-suspend-controller.png" />
+ </imageobject>
+ </mediaobject>
+
+ <para>To suspend repository just need to invoke suspend() operation. The
+ returned result will be "suspended" if everything passed
+ successfully.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/repository-suspend-controller-suspended.png" />
+ </imageobject>
+ </mediaobject>
+
+ <para>The result "undefined" means not all components successfully
+ suspended, check console to see stacktraces.</para>
+ </section>
+
+ <section>
+ <title>Backup</title>
+
+ <para>Now we can backup content manually or using third part software. We
+ need to backup:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Database</para>
+ </listitem>
+
+ <listitem>
+ <para>Lucene index</para>
+ </listitem>
+
+ <listitem>
+ <para>Value storage (if configured)</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Repository resuming</title>
+
+ <para>Once backup is done need to invoke resume() operation to switch
+ repository back to online. The returned result will be "online".</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/repository-suspend-controller-online.png" />
+ </imageobject>
+ </mediaobject>
+ </section>
+</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/cluster-config.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/cluster-config.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/cluster-config.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,53 +1,53 @@
<?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-Cluster_Config">
- <!-- This document was created with Syntext Serna Free. --> <title>Cluster Config</title>
- <section id="sect-Reference_Guide-Cluster_Config-Launching_Cluster">
- <title>Launching Cluster</title>
- <section id="sect-Reference_Guide-Launching_Cluster-Deploying_eXo_JCR_to_JBoss_As">
- <title>Deploying eXo JCR to JBoss As</title>
- <para>
- To deploy eXo JCR to JBoss, do the following steps:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Download the latest version of eXo JCR .ear file distribution.
- </para>
+ <!-- This document was created with Syntext Serna Free. --> <title>Cluster Config</title>
+ <section id="sect-Reference_Guide-Cluster_Config-Launching_Cluster">
+ <title>Launching Cluster</title>
+ <section id="sect-Reference_Guide-Launching_Cluster-Deploying_eXo_JCR_to_JBoss_As">
+ <title>Deploying eXo JCR to JBoss As</title>
+ <para>
+ To deploy eXo JCR to JBoss, do the following steps:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Download the latest version of eXo JCR .ear file distribution.
+ </para>
- </listitem>
- <listitem>
- <para>
- Copy <jcr.ear> into <%jboss_home%/server/default/deploy>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Copy <jcr.ear> into <%jboss_home%/server/default/deploy>
+ </para>
- </listitem>
- <listitem>
- <para>
- Put exo-configuration.xml to the root <%jboss_home%/exo-configuration.xml>
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Put exo-configuration.xml to the root <%jboss_home%/exo-configuration.xml>
+ </para>
- </listitem>
- <listitem>
- <para>
- Configure JAAS by inserting XML fragment shown below into <%jboss_home%/server/default/conf/login-config.xml>
- </para>
-
+ </listitem>
+ <listitem>
+ <para>
+ Configure JAAS by inserting XML fragment shown below into <%jboss_home%/server/default/conf/login-config.xml>
+ </para>
+
<programlisting language="XML" role="XML"><application-policy name="exo-domain">
<authentication>
<login-module code="org.exoplatform.services.security.j2ee.JbossLoginModule" flag="required"></login-module>
</authentication>
</application-policy></programlisting>
- </listitem>
- <listitem>
- <para>
- Ensure that you use JBossTS <xref linkend="sect-Reference_Guide-TransactionService" /> and JBossCache <xref linkend="sect-Reference_Guide-JBossTransactionsService" />. Your exo-configuration.xml must contain such parts:
- </para>
-
+ </listitem>
+ <listitem>
+ <para>
+ Ensure that you use JBossTS and JBossCache <xref linkend="sect-Reference_Guide-JBossTransactionsService" />. Your exo-configuration.xml must contain such parts:
+ </para>
+
<programlisting language="XML" role="XML"><component>
<key>org.jboss.cache.transaction.TransactionManagerLookup</key>
<type>org.jboss.cache.GenericTransactionManagerLookup</type>^
@@ -64,47 +64,47 @@
</init-params>
</component></programlisting>
- </listitem>
- <listitem>
- <para>
- Start server:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- bin/run.sh for Unix
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Start server:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ bin/run.sh for Unix
+ </para>
- </listitem>
- <listitem>
- <para>
- bin/run.bat for Windows
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ bin/run.bat for Windows
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </listitem>
- <listitem>
- <para>
- Try accessing <uri>http://localhostu:8080/browser</uri> with root/exo as login/password if you have done everything right, you'll get access to repository browser.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Try accessing <uri>http://localhostu:8080/browser</uri> with root/exo as login/password if you have done everything right, you'll get access to repository browser.
+ </para>
- </listitem>
+ </listitem>
- </orderedlist>
+ </orderedlist>
- </section>
-
- <section id="sect-Reference_Guide-Launching_Cluster-Configuring_JCR_to_use_external_configuration">
- <title>Configuring JCR to use external configuration</title>
- <itemizedlist>
- <listitem>
- <para>
- To manually configure repository, create a new configuration file (e.g., exo-jcr-configuration.xml). For details, see <xref linkend="sect-Reference_Guide-JCR_configuration" />. Your configuration must look like:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Launching_Cluster-Configuring_JCR_to_use_external_configuration">
+ <title>Configuring JCR to use external configuration</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ To manually configure repository, create a new configuration file (e.g., exo-jcr-configuration.xml). For details, see <xref linkend="sect-Reference_Guide-JCR_configuration" />. Your configuration must look like:
+ </para>
+
<programlisting language="XML" role="XML"><repository-service default-repository="repository1">
<repositories>
<repository name="repository1" system-workspace="ws1" default-workspace="ws1">
@@ -152,12 +152,12 @@
</repositories>
</repository-service></programlisting>
- </listitem>
- <listitem>
- <para>
- Then, update RepositoryServiceConfiguration configuration in exo-configuration.xml to use this file:
- </para>
-
+ </listitem>
+ <listitem>
+ <para>
+ Then, update RepositoryServiceConfiguration configuration in exo-configuration.xml to use this file:
+ </para>
+
<programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
<type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
@@ -170,57 +170,57 @@
</init-params>
</component></programlisting>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide-Cluster_Config-Requirements">
- <title>Requirements</title>
- <section id="sect-Reference_Guide-Requirements-Environment_requirements">
- <title>Environment requirements</title>
- <itemizedlist>
- <listitem>
- <para>
- Every node of cluster MUST have the same mounted Network File System with the read and write permissions on it.
- </para>
- <para>
- "/mnt/tornado" - path to the mounted Network File System (all cluster nodes must use the same NFS).
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Cluster_Config-Requirements">
+ <title>Requirements</title>
+ <section id="sect-Reference_Guide-Requirements-Environment_requirements">
+ <title>Environment requirements</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Every node of cluster MUST have the same mounted Network File System with the read and write permissions on it.
+ </para>
+ <para>
+ "/mnt/tornado" - path to the mounted Network File System (all cluster nodes must use the same NFS).
+ </para>
- </listitem>
- <listitem>
- <para>
- Every node of cluster MUST use the same database.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Every node of cluster MUST use the same database.
+ </para>
- </listitem>
- <listitem>
- <para>
- The same Clusters on different nodes MUST have the same names (e.g., if Indexer cluster in workspace production on the first node has the name "production_indexer_cluster", then indexer clusters in workspace production on all other nodes MUST have the same name "production_indexer_cluster" ).
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ The same Clusters on different nodes MUST have the same names (e.g., if Indexer cluster in workspace production on the first node has the name "production_indexer_cluster", then indexer clusters in workspace production on all other nodes MUST have the same name "production_indexer_cluster" ).
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
- <section id="sect-Reference_Guide-Requirements-Configuration_requirements">
- <title>Configuration requirements</title>
- <para>
- Configuration of every workspace in repository must contains of such parts:
- </para>
- <itemizedlist>
- <listitem id="list-Reference_Guide-conf_value_storage">
- <para>
- Value Storage configuration:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Requirements-Configuration_requirements">
+ <title>Configuration requirements</title>
+ <para>
+ Configuration of every workspace in repository must contains of such parts:
+ </para>
+ <itemizedlist>
+ <listitem id="list-Reference_Guide-conf_value_storage">
+ <para>
+ Value Storage configuration:
+ </para>
+
<programlisting language="XML" role="XML"><value-storages>
<value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
<properties>
@@ -232,12 +232,12 @@
</value-storage>
</value-storages></programlisting>
- </listitem>
- <listitem id="list-Reference_Guide-conf_cache">
- <para>
- Cache configuration:
- </para>
-
+ </listitem>
+ <listitem id="list-Reference_Guide-conf_cache">
+ <para>
+ Cache configuration:
+ </para>
+
<programlisting language="XML" role="XML"><cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache">
<properties>
<property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-data.xml" /> <!-- path to JBoss Cache configuration for data storage -->
@@ -247,12 +247,12 @@
</properties>
</cache></programlisting>
- </listitem>
- <listitem id="list-Reference_Guide-conf_indexer">
- <para>
- Indexer configuration:
- </para>
-
+ </listitem>
+ <listitem id="list-Reference_Guide-conf_indexer">
+ <para>
+ Indexer configuration:
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
<properties>
<property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
@@ -264,12 +264,12 @@
</properties>
</query-handler></programlisting>
- </listitem>
- <listitem id="list-Reference_Guide-conf_lock_manager">
- <para>
- Lock Manager configuration:
- </para>
-
+ </listitem>
+ <listitem id="list-Reference_Guide-conf_lock_manager">
+ <para>
+ Lock Manager configuration:
+ </para>
+
<programlisting language="XML" role="XML"><lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
<properties>
<property name="time-out" value="15m" />
@@ -289,14 +289,14 @@
</properties>
</lock-manager></programlisting>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
+ </section>
+
- </section>
+ </section>
</section>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-advantages.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Advantages_of_eXo_JCR">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-applications.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-applications.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-applications.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-eXo_JCR_Application_Model">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-compatibility-levels.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Compatibility_Levels">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-exo-implementation.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-exo-implementation.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-exo-implementation.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Implementation">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-extensions.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,76 +1,76 @@
<?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-JCR_Extensions">
- <title>JCR Extensions</title>
- <section id="sect-Reference_Guide-JCR_Extensions-JCR_Service_Extensions">
- <title>JCR Service Extensions</title>
- <section id="sect-Reference_Guide-JCR_Service_Extensions-Concept">
- <title>Concept</title>
- <para>
- eXo JCR supports <emphasis role="bold">observation</emphasis> (JSR-170 8.3), which enables applications to register interest in events that describe changes to a workspace, and then monitor and respond to those events. The standard observation feature allows dispatching events when <emphasis role="bold">persistent change</emphasis> to the workspace is made.
- </para>
- <para>
- eXo JCR also offers a proprietary <emphasis role="bold">Extension Action</emphasis> which dispatches and fires an event upon each <emphasis role="bold">transient session level change</emphasis>, performed by a client. In other words, the event is triggered when a client's program invokes some updating methods in a session or a workspace (such as: Session.addNode(), Session.setProperty(), Workspace.move() etc.
- </para>
- <para>
- One important recommendation should be applied for an extension action implementation. Each action will add its own execution time to standard JCR methods (Session.addNode(), Session.setProperty(), Workspace.move() etc.) execution time. As a consequence, it's necessary to minimize Action.execute(Context) body execution time.
- </para>
- <para>
- To make the rule, you can use the dedicated Thread in Action.execute(Context) body for a custom logic. But if your application logic requires the action to add items to a created/updated item and you save these changes immediately after the JCR API method call is returned, the suggestion with Thread is not applicable for you in this case.
- </para>
+ <title>JCR Extensions</title>
+ <section id="sect-Reference_Guide-JCR_Extensions-JCR_Service_Extensions">
+ <title>JCR Service Extensions</title>
+ <section id="sect-Reference_Guide-JCR_Service_Extensions-Concept">
+ <title>Concept</title>
+ <para>
+ eXo JCR supports <emphasis role="bold">observation</emphasis> (JSR-170 8.3), which enables applications to register interest in events that describe changes to a workspace, and then monitor and respond to those events. The standard observation feature allows dispatching events when <emphasis role="bold">persistent change</emphasis> to the workspace is made.
+ </para>
+ <para>
+ eXo JCR also offers a proprietary <emphasis role="bold">Extension Action</emphasis> which dispatches and fires an event upon each <emphasis role="bold">transient session level change</emphasis>, performed by a client. In other words, the event is triggered when a client's program invokes some updating methods in a session or a workspace (such as: Session.addNode(), Session.setProperty(), Workspace.move() etc.
+ </para>
+ <para>
+ One important recommendation should be applied for an extension action implementation. Each action will add its own execution time to standard JCR methods (Session.addNode(), Session.setProperty(), Workspace.move() etc.) execution time. As a consequence, it's necessary to minimize Action.execute(Context) body execution time.
+ </para>
+ <para>
+ To make the rule, you can use the dedicated Thread in Action.execute(Context) body for a custom logic. But if your application logic requires the action to add items to a created/updated item and you save these changes immediately after the JCR API method call is returned, the suggestion with Thread is not applicable for you in this case.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-JCR_Service_Extensions-Implementation">
- <title>Implementation</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/concepts/interceptor.jpg" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide-JCR_Service_Extensions-Implementation">
+ <title>Implementation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/concepts/interceptor.jpg" width="444" />
+ </imageobject>
- </mediaobject>
- <para>
- Interceptor framework class diagram
- </para>
+ </mediaobject>
+ <para>
+ Interceptor framework class diagram
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-JCR_Service_Extensions-Configuration">
- <title>Configuration</title>
- <para>
- Add a <emphasis role="bold">SessionActionCatalog</emphasis> service and an appropriate <emphasis role="bold">AddActionsPlugin</emphasis> (see the example below) configuration to your eXo Container configuration. As usual, the plugin can be configured as in-component-place, which is the case for a Standalone Container or externally, which is a usual case for Root/Portal Container configuration).
- </para>
- <para>
- Each Action entry is exposed as org.exoplatform.services.jcr.impl.ext.action. <emphasis role="bold">ActionConfiguration</emphasis> of actions collection of org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig (see an example below). The mandatory field named <emphasis role="bold">actionClassName</emphasis> is the fully qualified name of org.exoplatform.services.command.action.Action implementation - the command will be launched in case the current event matches the <emphasis role="bold">criteria</emphasis>. All other fields are criteria. The criteria are *AND*ed together. In other words, for a particular item to be listened to, it must meet ALL the criteria:
- </para>
- <para>
- * <emphasis role="bold">workspace</emphasis>: the comma delimited (ORed) list of workspaces
- </para>
- <para>
- * <emphasis role="bold">eventTypes</emphasis>: a comma delimited (ORed) <emphasis role="bold">list of event names</emphasis> (see below) to be listened to. This is the only mandatory field, others are optional and if they are missing they are interpreted as ANY.
- </para>
- <para>
- * <emphasis role="bold">path</emphasis> - a comma delimited (ORed) list of <emphasis role="bold">item absolute paths</emphasis> (or within its subtree if <emphasis role="bold">isDeep</emphasis> is <emphasis role="bold">true</emphasis>, which is the default value)
- </para>
- <para>
- * <emphasis role="bold">nodeTypes</emphasis> - a comma delimited (ORed) list of the <emphasis role="bold">current NodeType</emphasis>. Since version 1.6.1 JCR supports the functionalities of nodeType and parentNodeType. This parameter has different semantics, depending on the type of the current item and the operation performed. If the <emphasis role="bold">current item</emphasis> is a <emphasis role="bold">property</emphasis> it means the <emphasis role="bold">parent node type</emphasis>. If the <emphasis role="bold">current item</emphasis> is a <emphasis role="bold">node,</emphasis> the semantic depends on the event type: ** <emphasis role="bold">add node event</emphasis>: the node type of the newly added node. ** <emphasis role="bold">add mixin event</emphasis>: the newly added mixing node type of the current node. ** <emphasis role="bold">remove mixin event</emphasis> the removed mixin type of the current node. ** <emphasis role="bold">other events</emphasis>: the a!
lready assigned NodeType(s) of the current node (can be both primary and mixin).
- </para>
- <para>
- <emphasis role="bold">NOTE:</emphasis> the list of fields can be extended.
- </para>
- <para>
- <emphasis role="bold">NOTE2:</emphasis> no spaces between list elements.
- </para>
- <para>
- <emphasis role="bold">NOTE3:</emphasis> <emphasis role="bold">isDeep=false</emphasis> means <emphasis role="bold">node, node properties and child nodes</emphasis>.
- </para>
- <para>
- The list of supported Event names: <emphasis role="bold">addNode, addProperty, changeProperty, removeProperty, removeNode, addMixin, removeMixin, lock, unlock, checkin, checkout, read.</emphasis>
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-JCR_Service_Extensions-Configuration">
+ <title>Configuration</title>
+ <para>
+ Add a <emphasis role="bold">SessionActionCatalog</emphasis> service and an appropriate <emphasis role="bold">AddActionsPlugin</emphasis> (see the example below) configuration to your eXo Container configuration.
+ </para>
+ <para>
+ Each Action entry is exposed as org.exoplatform.services.jcr.impl.ext.action. <emphasis role="bold">ActionConfiguration</emphasis> of actions collection of org.exoplatform.services.jcr.impl.ext.action.AddActionsPlugin$ActionsConfig (see an example below). The mandatory field named <emphasis role="bold">actionClassName</emphasis> is the fully qualified name of org.exoplatform.services.command.action.Action implementation - the command will be launched in case the current event matches the <emphasis role="bold">criteria</emphasis>. All other fields are criteria. The criteria are *AND*ed together. In other words, for a particular item to be listened to, it must meet ALL the criteria:
+ </para>
+ <para>
+ * <emphasis role="bold">workspace</emphasis>: the comma delimited (ORed) list of workspaces
+ </para>
+ <para>
+ * <emphasis role="bold">eventTypes</emphasis>: a comma delimited (ORed) <emphasis role="bold">list of event names</emphasis> (see below) to be listened to. This is the only mandatory field, others are optional and if they are missing they are interpreted as ANY.
+ </para>
+ <para>
+ * <emphasis role="bold">path</emphasis> - a comma delimited (ORed) list of <emphasis role="bold">item absolute paths</emphasis> (or within its subtree if <emphasis role="bold">isDeep</emphasis> is <emphasis role="bold">true</emphasis>, which is the default value)
+ </para>
+ <para>
+ * <emphasis role="bold">nodeTypes</emphasis> - a comma delimited (ORed) list of the <emphasis role="bold">current NodeType</emphasis>. Since version 1.6.1 JCR supports the functionalities of nodeType and parentNodeType. This parameter has different semantics, depending on the type of the current item and the operation performed. If the <emphasis role="bold">current item</emphasis> is a <emphasis role="bold">property</emphasis> it means the <emphasis role="bold">parent node type</emphasis>. If the <emphasis role="bold">current item</emphasis> is a <emphasis role="bold">node,</emphasis> the semantic depends on the event type: ** <emphasis role="bold">add node event</emphasis>: the node type of the newly added node. ** <emphasis role="bold">add mixin event</emphasis>: the newly added mixing node type of the current node. ** <emphasis role="bold">remove mixin event</emphasis> the removed mixin type of the current node. ** <emphasis role="bold">other events</emph!
asis>: the already assigned NodeType(s) of the current node (can be both primary and mixin).
+ </para>
+ <para>
+ <emphasis role="bold">NOTE:</emphasis> the list of fields can be extended.
+ </para>
+ <para>
+ <emphasis role="bold">NOTE2:</emphasis> no spaces between list elements.
+ </para>
+ <para>
+ <emphasis role="bold">NOTE3:</emphasis> <emphasis role="bold">isDeep=false</emphasis> means <emphasis role="bold">node, node properties and child nodes</emphasis>.
+ </para>
+ <para>
+ The list of supported Event names: <emphasis role="bold">addNode, addProperty, changeProperty, removeProperty, removeNode, addMixin, removeMixin, lock, unlock, checkin, checkout, read.</emphasis>
+ </para>
+
<programlisting language="XML" role="XML"><component>
<type>org.exoplatform.services.jcr.impl.ext.action.SessionActionCatalog</type>
<component-plugins>
@@ -104,24 +104,24 @@
</component-plugins>
</component></programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide-JCR_Extensions-Related_Pages">
- <title>Related Pages</title>
- <para>
- <xref linkend="sect-Reference_Guide-Access_Control_Extension" />
- </para>
- <para>
- <xref linkend="sect-Reference_Guide-Registry_Service" />
- </para>
- <para>
- <xref linkend="sect-Reference_Guide-REST_Services_on_Groovy" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide-JCR_Extensions-Related_Pages">
+ <title>Related Pages</title>
+ <para>
+ <xref linkend="sect-Reference_Guide-Access_Control_Extension" />
+ </para>
+ <para>
+ <xref linkend="sect-Reference_Guide-Registry_Service" />
+ </para>
+ <para>
+ <xref linkend="sect-Reference_Guide-REST_Services_on_Groovy" />
+ </para>
- </section>
+ </section>
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-namespace-altering.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-namespace-altering.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-namespace-altering.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Namespace_Altering">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-registry-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-registry-service.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-registry-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Registry_Service">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/jcr-usage.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,41 +1,41 @@
<?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-Using_JCR">
- <title>Using JCR</title>
- <section id="sect-Reference_Guide-Using_JCR-a1_Using_eXo_JCR_in_an_application">
- <title>1 Using eXo JCR in an application</title>
- <section id="sect-Reference_Guide-a1_Using_eXo_JCR_in_an_application-Obtaining_a_Repository_object">
- <title>Obtaining a Repository object</title>
- <para>
- A javax.jcr.Repository object can be obtained by:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Using the eXo Container "native" mechanism. All Repositories are kept with a single RepositoryService component. So it can be obtained from eXo Container, described as the following:
- </para>
+ <title>Using JCR</title>
+ <section id="sect-Reference_Guide-Using_JCR-a1_Using_eXo_JCR_in_an_application">
+ <title>1 Using eXo JCR in an application</title>
+ <section id="sect-Reference_Guide-a1_Using_eXo_JCR_in_an_application-Obtaining_a_Repository_object">
+ <title>Obtaining a Repository object</title>
+ <para>
+ A javax.jcr.Repository object can be obtained by:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using the eXo Container "native" mechanism. All Repositories are kept with a single RepositoryService component. So it can be obtained from eXo Container, described as the following:
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="Java" role="Java">
RepositoryService repositoryService = (RepositoryService) container.getComponentInstanceOfType(RepositoryService.class);
Repository repository = repositoryService.getRepository("repositoryName");
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Using the eXo Container "native" mechanism with a thread local saved "current" repository (especially if you plan to use a single repository which covers more than 90% of use cases)
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using the eXo Container "native" mechanism with a thread local saved "current" repository (especially if you plan to use a single repository which covers more than 90% of use cases)
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="Java" role="Java"> // set current repository at initial time
RepositoryService repositoryService = (RepositoryService) container.getComponentInstanceOfType(RepositoryService.class);
repositoryService.setCurrentRepositoryName("repositoryName");
@@ -43,69 +43,69 @@
// retrieve and use this repository
Repository repository = repositoryService.getCurrentRepository();
</programlisting>
- <itemizedlist>
- <listitem>
- <para>
- Using JNDI as specified in JSR-170. This way you have to configure the reference (see eXo <xref linkend="sect-Reference_Guide-JNDI_naming" /> )
- </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using JNDI as specified in JSR-170. This way you have to configure the reference.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
-
+ </itemizedlist>
+
<programlisting language="Java" role="Java"> Context ctx = new InitialContext();
Repository repository =(Repository) ctx.lookup("repositoryName");</programlisting>
- </section>
-
- <section id="sect-Reference_Guide-a1_Using_eXo_JCR_in_an_application-JCR_Session_common_considerations">
- <title>JCR Session common considerations</title>
- <para>
- <itemizedlist>
- <listitem>
- <para>
- Remember that javax.jcr.Session is not a thread safe object. <emphasis role="bold">Never try to share it between threads</emphasis>.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide-a1_Using_eXo_JCR_in_an_application-JCR_Session_common_considerations">
+ <title>JCR Session common considerations</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Remember that javax.jcr.Session is not a thread safe object. <emphasis role="bold">Never try to share it between threads</emphasis>.
+ </para>
- </listitem>
- <listitem>
- <para>
- Do not use <emphasis role="bold">System session</emphasis> from the <emphasis role="bold">user</emphasis> related code because a system session has <emphasis role="bold">unlimited rights</emphasis>. Call ManageableRepository.getSystemSession() from <emphasis role="bold">process</emphasis> related code only.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Do not use <emphasis role="bold">System session</emphasis> from the <emphasis role="bold">user</emphasis> related code because a system session has <emphasis role="bold">unlimited rights</emphasis>. Call ManageableRepository.getSystemSession() from <emphasis role="bold">process</emphasis> related code only.
+ </para>
- </listitem>
- <listitem>
- <para>
- Call Session.logout() explicitly to <emphasis role="bold">release resources</emphasis> assigned to the session.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Call Session.logout() explicitly to <emphasis role="bold">release resources</emphasis> assigned to the session.
+ </para>
- </listitem>
- <listitem>
- <para>
- When designing your application, take care of the Session policy inside your application. Two <emphasis role="bold">strategies</emphasis> are possible: <emphasis role="bold">Stateless</emphasis> (Session per business request) and <emphasis role="bold">Stateful</emphasis> (Session per User) or some mix.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ When designing your application, take care of the Session policy inside your application. Two <emphasis role="bold">strategies</emphasis> are possible: <emphasis role="bold">Stateless</emphasis> (Session per business request) and <emphasis role="bold">Stateful</emphasis> (Session per User) or some mix.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- </para>
+ </itemizedlist>
+ </para>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide-Using_JCR-JCR_Application_practices">
- <title>JCR Application practices</title>
- <section id="sect-Reference_Guide-JCR_Application_practices-Simplifying_the_management_of_a_multi_workspace_application">
- <title>Simplifying the management of a multi-workspace application</title>
- <para>
- (one-shot logout for all opened sessions)
- </para>
- <para>
- Use org.exoplatform.services.jcr.ext.common.SessionProvider which is responsible for caching/obtaining your JCR Sessions and closing all opened sessions at once.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Using_JCR-JCR_Application_practices">
+ <title>JCR Application practices</title>
+ <section id="sect-Reference_Guide-JCR_Application_practices-Simplifying_the_management_of_a_multi_workspace_application">
+ <title>Simplifying the management of a multi-workspace application</title>
+ <para>
+ (one-shot logout for all opened sessions)
+ </para>
+ <para>
+ Use org.exoplatform.services.jcr.ext.common.SessionProvider which is responsible for caching/obtaining your JCR Sessions and closing all opened sessions at once.
+ </para>
+
<programlisting language="Java" role="Java">public class SessionProvider {
/**
@@ -138,10 +138,10 @@
public static SessionProvider createAnonimProvider()
}</programlisting>
- <para>
- The SessionProvider is per-request or per-user object, depending on your policy. Create it with your application before performing JCR operations, use it to obtain the Sessions and close at the end of an application session(request). See the following example:
- </para>
-
+ <para>
+ The SessionProvider is per-request or per-user object, depending on your policy. Create it with your application before performing JCR operations, use it to obtain the Sessions and close at the end of an application session(request). See the following example:
+ </para>
+
<programlisting language="Java" role="Java">// (1) obtain current javax.jcr.Credentials, for example get it from AuthenticationService
Credentials cred = ....
@@ -162,103 +162,103 @@
// Close the session provider
sessionProvider.close();</programlisting>
- </section>
-
- <section id="sect-Reference_Guide-JCR_Application_practices-Reusing_SessionProvider">
- <title>Reusing SessionProvider</title>
- <para>
- As shown above, creating the SessionProvider involves multiple steps and you may not want to repeat them each time you need to get a JCR session. In order to avoid all this plumbing code, we provide the SessionProviderService whose goal is to help you to get a SessionProvider object.
- </para>
- <para>
- The org.exoplatform.services.jcr.ext.app.SessionProviderService interface is defined as follows:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-JCR_Application_practices-Reusing_SessionProvider">
+ <title>Reusing SessionProvider</title>
+ <para>
+ As shown above, creating the SessionProvider involves multiple steps and you may not want to repeat them each time you need to get a JCR session. In order to avoid all this plumbing code, we provide the SessionProviderService whose goal is to help you to get a SessionProvider object.
+ </para>
+ <para>
+ The org.exoplatform.services.jcr.ext.app.SessionProviderService interface is defined as follows:
+ </para>
+
<programlisting language="Java" role="Java">public interface SessionProviderService {
void setSessionProvider(Object key, SessionProvider sessionProvider);
SessionProvider getSessionProvider(Object key);
void removeSessionProvider(Object key);
}</programlisting>
- <para>
- Using this service is pretty straightforward, the main contract of an implemented component is getting a SessionProvider by key. eXo provides two implementations :
- </para>
- <table id="tabl-Reference_Guide-Reusing_SessionProvider-SessionProvider_implementations">
- <title>SessionProvider implementations</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- Implementation
- </entry>
- <entry>
- Description
- </entry>
- <entry>
- Typical Use
- </entry>
+ <para>
+ Using this service is pretty straightforward, the main contract of an implemented component is getting a SessionProvider by key. eXo provides two implementations :
+ </para>
+ <table id="tabl-Reference_Guide-Reusing_SessionProvider-SessionProvider_implementations">
+ <title>SessionProvider implementations</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ Implementation
+ </entry>
+ <entry>
+ Description
+ </entry>
+ <entry>
+ Typical Use
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- org.exoplatform.services.jcr.ext.app.MapStoredSessionProviderService
- </entry>
- <entry>
- per-user style : keeps objects in a Map
- </entry>
- <entry>
- per-user. The usual practice uses a user's name or Credentials as a key.
- </entry>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ org.exoplatform.services.jcr.ext.app.MapStoredSessionProviderService
+ </entry>
+ <entry>
+ per-user style : keeps objects in a Map
+ </entry>
+ <entry>
+ per-user. The usual practice uses a user's name or Credentials as a key.
+ </entry>
- </row>
- <row>
- <entry>
- org.exoplatform.services.jcr.ext.app.ThreadLocalSessionProviderService
- </entry>
- <entry>
- per-request style : keeps a single SessionProvider in a static ThreadLocal variable
- </entry>
- <entry>
- Always use null for the key.
- </entry>
+ </row>
+ <row>
+ <entry>
+ org.exoplatform.services.jcr.ext.app.ThreadLocalSessionProviderService
+ </entry>
+ <entry>
+ per-request style : keeps a single SessionProvider in a static ThreadLocal variable
+ </entry>
+ <entry>
+ Always use null for the key.
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <para>
- For any implementation, your code should follow the following sequence :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Call SessionProviderService.setSessionProvider(Object key, SessionProvider sessionProvider) at the beginning of a business request for Stateless application or application's session for Statefull policy.
- </para>
+ </table>
+ <para>
+ For any implementation, your code should follow the following sequence :
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Call SessionProviderService.setSessionProvider(Object key, SessionProvider sessionProvider) at the beginning of a business request for Stateless application or application's session for Statefull policy.
+ </para>
- </listitem>
- <listitem>
- <para>
- Call SessionProviderService.getSessionProvider(Object key) for obtaining a SessionProvider object
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Call SessionProviderService.getSessionProvider(Object key) for obtaining a SessionProvider object
+ </para>
- </listitem>
- <listitem>
- <para>
- Call SessionProviderService.removeSessionProvider(Object key) at the end of a business request for Stateless application or application's session for Statefull policy.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Call SessionProviderService.removeSessionProvider(Object key) at the end of a business request for Stateless application or application's session for Statefull policy.
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </section>
-
+ </section>
+
- </section>
+ </section>
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetype-registration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetype-registration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetype-registration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-NodeType_Registration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/nodetypes-and-namespaces.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Node_Types_and_Namespaces">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/why-jcr.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/why-jcr.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/concepts/why-jcr.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Why_use_JCR">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/configuration-persister.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/configuration-persister.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/configuration-persister.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_Configuration_persister">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/exo-jcr-configuration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_configuration">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/external-value-storages.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-External_Value_Storages">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/jdbc-data-container-config.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/jdbc-data-container-config.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/jdbc-data-container-config.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JDBC_Data_Container_Config">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/multilanguage-support.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/multilanguage-support.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/multilanguage-support.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Multi_language_support_in_eXo_JCR_RDB_back_end">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/rest-services-on-groovy.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,37 +1,35 @@
<?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-REST_Services_on_Groovy">
- <title>REST Services on Groovy</title>
- <section id="sect-Reference_Guide-REST_Services_on_Groovy-Concept">
- <title>Concept</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 <remark>xref to RESTful framework</remark>
- <!-- <xref linkend="WS.RestFramework">RESTful
- framework</link> --> and uses ResourceContainer concept.
- </para>
+ <title>REST Services on Groovy</title>
+ <section id="sect-Reference_Guide-REST_Services_on_Groovy-Concept">
+ <title>Concept</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 RESTful framework and uses ResourceContainer concept.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-REST_Services_on_Groovy-Usage">
- <title>Usage</title>
- <para>
- Scripts should extend ResourceContainer and should be stored in JCR as a node of type exo:groovyResourceContainer.
- </para>
- <para>
- Detailed REST services step-by-step implementation check there <remark>xref to RestServiceTutorial</remark>
- <!-- <xref linkend="WS.RestServiceTutorial">RESTful
+ </section>
+
+ <section id="sect-Reference_Guide-REST_Services_on_Groovy-Usage">
+ <title>Usage</title>
+ <para>
+ Scripts should extend ResourceContainer and should be stored in JCR as a node of type exo:groovyResourceContainer.
+ </para>
+ <para>
+ Detailed REST services step-by-step implementation check there <remark>xref to RestServiceTutorial</remark>
+ <!-- <xref linkend="WS.RestServiceTutorial">RESTful
framework</link> -->.
- </para>
- <para>
- Component configuration enables Groovy services loader:
- </para>
-
+ </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>
@@ -53,7 +51,7 @@
</init-params>
</component></programlisting>
- </section>
+ </section>
</section>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/search-configuration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,1047 +1,1006 @@
<?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-Search_Configuration">
- <title>Search Configuration</title>
- <para>
- The search function in JCR can be configured to perform in specific ways. This section will discuss configuring the search function to improve search performance and results.
- </para>
- <para>
- Below is an example of the configuration file that governs search behaviors. Refer to <xref linkend="sect-Reference_Guide-Search_Configuration-Global_Search_Index" /> for how searching operates in JCR and discussions about customized searches.
- </para>
- <para>
- The JCR index configuration file is located at <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename>.
- </para>
- <para>
- A code example is included below with a list of the configuration parameters shown below that.
- </para>
-
+ <title>Search Configuration</title>
+ <para>
+ The search function in JCR can be configured to perform in specific ways. This section will discuss configuring the search function to improve search performance and results.
+ </para>
+ <para>
+ Below is an example of the configuration file that governs search behaviors. Refer to <xref linkend="sect-Reference_Guide-Search_Configuration-Global_Search_Index" /> for how searching operates in JCR and discussions about customized searches.
+ </para>
+ <para>
+ The JCR index configuration file is located at <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><PROFILE></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename>.
+ </para>
+ <para>
+ A code example is included below with a list of the configuration parameters shown below that.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default61.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The table below outlines the Configuration Parameters available, their default setting, which version of eXo JCR they were implemented in and other useful information:
- </para>
- <table id="tabl-Reference_Guide-Search_Configuration-Configuration_parameters">
- <!-- align="left" pgwide="1" --> <title>Configuration parameters</title>
- <tgroup cols="4">
- <colspec colname="1" colwidth="90pt"></colspec>
- <colspec colname="2" colwidth="90pt"></colspec>
- <colspec colname="3" colwidth="150pt"></colspec>
- <colspec colname="4" colwidth="50pt"></colspec>
- <thead>
- <row>
- <entry>
- <para>
- Parameter
- </para>
+ <para>
+ The table below outlines the Configuration Parameters available, their default setting, which version of eXo JCR they were implemented in and other useful information:
+ </para>
+ <table id="tabl-Reference_Guide-Search_Configuration-Configuration_parameters">
+ <!-- align="left" pgwide="1" --> <title>Configuration parameters</title>
+ <tgroup cols="4">
+ <colspec colname="1" colwidth="90pt"></colspec>
+ <colspec colname="2" colwidth="90pt"></colspec>
+ <colspec colname="3" colwidth="150pt"></colspec>
+ <colspec colname="4" colwidth="50pt"></colspec>
+ <thead>
+ <row>
+ <entry>
+ <para>
+ Parameter
+ </para>
- </entry>
- <entry>
- <para>
- Default
- </para>
+ </entry>
+ <entry>
+ <para>
+ Default
+ </para>
- </entry>
- <entry>
- <para>
- Description
- </para>
+ </entry>
+ <entry>
+ <para>
+ Description
+ </para>
- </entry>
- <entry>
- Implemented in Version
- </entry>
+ </entry>
+ <entry>
+ Implemented in Version
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- index-dir
- </para>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>
+ index-dir
+ </para>
- </entry>
- <entry>
- <para>
- none
- </para>
+ </entry>
+ <entry>
+ <para>
+ none
+ </para>
- </entry>
- <entry>
- <para>
- The location of the index directory. This parameter is mandatory. It is called "<literal>indexDir</literal>" in versions prior to eXo JCR version 1.9.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The location of the index directory. This parameter is mandatory. It is called "<literal>indexDir</literal>" in versions prior to eXo JCR version 1.9.
+ </para>
- </entry>
- <entry>
- 1.0
- </entry>
+ </entry>
+ <entry>
+ 1.0
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- use-compoundfile
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ use-compoundfile
+ </para>
- </entry>
- <entry>
- <para>
- true
- </para>
+ </entry>
+ <entry>
+ <para>
+ true
+ </para>
- </entry>
- <entry>
- <para>
- Advises lucene to use compound files for the index files.
- </para>
+ </entry>
+ <entry>
+ <para>
+ Advises lucene to use compound files for the index files.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- min-merge-docs
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ min-merge-docs
+ </para>
- </entry>
- <entry>
- <para>
- 100
- </para>
+ </entry>
+ <entry>
+ <para>
+ 100
+ </para>
- </entry>
- <entry>
- <para>
- The minimum number of nodes in an index until segments are merged.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The minimum number of nodes in an index until segments are merged.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- volatile-idle-time
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ volatile-idle-time
+ </para>
- </entry>
- <entry>
- 3
- </entry>
- <entry>
- <para>
- Idle time in seconds until the volatile index part is moved to a persistent index even though <literal>minMergeDocs</literal> is not reached.
- </para>
+ </entry>
+ <entry>
+ 3
+ </entry>
+ <entry>
+ <para>
+ Idle time in seconds until the volatile index part is moved to a persistent index even though <literal>minMergeDocs</literal> is not reached.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- max-merge-docs
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ max-merge-docs
+ </para>
- </entry>
- <entry>
- <para>
- Integer.MAX_VALUE
- </para>
+ </entry>
+ <entry>
+ <para>
+ Integer.MAX_VALUE
+ </para>
- </entry>
- <entry>
- <para>
- The maximum number of nodes in segments that will be merged. The default value changed to <literal>Integer.MAX_VALUE</literal> in eXo JCR version 1.9.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The maximum number of nodes in segments that will be merged. The default value changed to <literal>Integer.MAX_VALUE</literal> in eXo JCR version 1.9.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- merge-factor
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ merge-factor
+ </para>
- </entry>
- <entry>
- <para>
- 10
- </para>
+ </entry>
+ <entry>
+ <para>
+ 10
+ </para>
- </entry>
- <entry>
- <para>
- Determines how often segment indices are merged.
- </para>
+ </entry>
+ <entry>
+ <para>
+ Determines how often segment indices are merged.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- max-field-length
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ max-field-length
+ </para>
- </entry>
- <entry>
- <para>
- 10000
- </para>
+ </entry>
+ <entry>
+ <para>
+ 10000
+ </para>
- </entry>
- <entry>
- <para>
- The number of words that are full-text indexed at most per property.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The number of words that are full-text indexed at most per property.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- cache-size
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ cache-size
+ </para>
- </entry>
- <entry>
- <para>
- 1000
- </para>
+ </entry>
+ <entry>
+ <para>
+ 1000
+ </para>
- </entry>
- <entry>
- <para>
- Size of the document number cache. This cache maps UUID to lucene document numbers
- </para>
+ </entry>
+ <entry>
+ <para>
+ Size of the document number cache. This cache maps UUID to lucene document numbers
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- force-consistencycheck
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ force-consistencycheck
+ </para>
- </entry>
- <entry>
- <para>
- false
- </para>
+ </entry>
+ <entry>
+ <para>
+ false
+ </para>
- </entry>
- <entry>
- <para>
- Runs a consistency check on every start up. If false, a consistency check is only performed when the search index detects a prior forced shutdown.
- </para>
+ </entry>
+ <entry>
+ <para>
+ Runs a consistency check on every start up. If false, a consistency check is only performed when the search index detects a prior forced shutdown.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- auto-repair
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ auto-repair
+ </para>
- </entry>
- <entry>
- <para>
- true
- </para>
+ </entry>
+ <entry>
+ <para>
+ true
+ </para>
- </entry>
- <entry>
- <para>
- Errors detected by a consistency check are automatically repaired. If false, errors are only written to the log.
- </para>
+ </entry>
+ <entry>
+ <para>
+ Errors detected by a consistency check are automatically repaired. If false, errors are only written to the log.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- query-class
- </entry>
- <entry>
- QueryImpl
- </entry>
- <entry>
- <para>
- Classname that implements the javax.jcr.query.Query interface.
- </para>
- <para>
- This class must also extend from the class: <literal>org.exoplatform.services.jcr.impl.core. query.AbstractQueryImpl</literal>.
- </para>
+ </row>
+ <row>
+ <entry>
+ query-class
+ </entry>
+ <entry>
+ QueryImpl
+ </entry>
+ <entry>
+ <para>
+ Classname that implements the javax.jcr.query.Query interface.
+ </para>
+ <para>
+ This class must also extend from the class: <literal>org.exoplatform.services.jcr.impl.core. query.AbstractQueryImpl</literal>.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- document-order
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ document-order
+ </para>
- </entry>
- <entry>
- <para>
- true
- </para>
+ </entry>
+ <entry>
+ <para>
+ true
+ </para>
- </entry>
- <entry>
- <para>
- If true and the query does not contain an 'order by' clause, result nodes will be in document order. For better performance set to 'false' when queries return many nodes.
- </para>
+ </entry>
+ <entry>
+ <para>
+ If true and the query does not contain an 'order by' clause, result nodes will be in document order. For better performance set to 'false' when queries return many nodes.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- result-fetch-size
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ result-fetch-size
+ </para>
- </entry>
- <entry>
- <para>
- Integer.MAX_VALUE
- </para>
+ </entry>
+ <entry>
+ <para>
+ Integer.MAX_VALUE
+ </para>
- </entry>
- <entry>
- <para>
- The number of results when a query is executed. Default value: <literal>Integer.MAX_VALUE</literal>.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The number of results when a query is executed. Default value: <literal>Integer.MAX_VALUE</literal>.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- excerptprovider-class
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ excerptprovider-class
+ </para>
- </entry>
- <entry>
- <para>
- DefaultXMLExcerpt
- </para>
+ </entry>
+ <entry>
+ <para>
+ DefaultXMLExcerpt
+ </para>
- </entry>
- <entry>
- <para>
- The name of the class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.ExcerptProvider</literal>.
- </para>
- <para>
- This should be used for the <literal>rep:excerpt()</literal> function in a query.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The name of the class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.ExcerptProvider</literal>.
+ </para>
+ <para>
+ This should be used for the <literal>rep:excerpt()</literal> function in a query.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- support-highlighting
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ support-highlighting
+ </para>
- </entry>
- <entry>
- <para>
- false
- </para>
+ </entry>
+ <entry>
+ <para>
+ false
+ </para>
- </entry>
- <entry>
- <para>
- If set to true additional information is stored in the index to support highlighting using the <literal>rep:excerpt()</literal> function.
- </para>
+ </entry>
+ <entry>
+ <para>
+ If set to true additional information is stored in the index to support highlighting using the <literal>rep:excerpt()</literal> function.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- synonymprovider-class
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ synonymprovider-class
+ </para>
- </entry>
- <entry>
- <para>
- none
- </para>
+ </entry>
+ <entry>
+ <para>
+ none
+ </para>
- </entry>
- <entry>
- <para>
- The name of a class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.SynonymProvider</literal>.
- </para>
- <para>
- The default value is null.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The name of a class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.SynonymProvider</literal>.
+ </para>
+ <para>
+ The default value is null.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- synonymprovider-config-path
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ synonymprovider-config-path
+ </para>
- </entry>
- <entry>
- <para>
- none
- </para>
+ </entry>
+ <entry>
+ <para>
+ none
+ </para>
- </entry>
- <entry>
- <para>
- The path to the synonym provider configuration file. This path is interpreted relative to the path parameter. If there is a path element inside the <literal>SearchIndex</literal> element, then this path is interpreted relative to the root path of the path. Whether this parameter is mandatory depends on the synonym provider implementation. The default value is null.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The path to the synonym provider configuration file. This path is interpreted relative to the path parameter. If there is a path element inside the <literal>SearchIndex</literal> element, then this path is interpreted relative to the root path of the path. Whether this parameter is mandatory depends on the synonym provider implementation. The default value is null.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- indexing-configuration-path
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ indexing-configuration-path
+ </para>
- </entry>
- <entry>
- <para>
- none
- </para>
+ </entry>
+ <entry>
+ <para>
+ none
+ </para>
- </entry>
- <entry>
- <para>
- The path to the indexing configuration file.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The path to the indexing configuration file.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- indexing-configuration-class
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ indexing-configuration-class
+ </para>
- </entry>
- <entry>
- <para>
- IndexingConfigurationImpl
- </para>
+ </entry>
+ <entry>
+ <para>
+ IndexingConfigurationImpl
+ </para>
- </entry>
- <entry>
- <para>
- The name of the class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.IndexingConfiguration</literal>.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The name of the class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.IndexingConfiguration</literal>.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- force-consistencycheck
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ force-consistencycheck
+ </para>
- </entry>
- <entry>
- <para>
- false
- </para>
+ </entry>
+ <entry>
+ <para>
+ false
+ </para>
- </entry>
- <entry>
- <para>
- If set to true a consistency check is performed depending on the parameter <literal>forceConsistencyCheck</literal>. If set to false no consistency check is performed on start up, even if a redo log had been applied.
- </para>
+ </entry>
+ <entry>
+ <para>
+ If set to true a consistency check is performed depending on the parameter <literal>forceConsistencyCheck</literal>. If set to false no consistency check is performed on start up, even if a redo log had been applied.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- spellchecker-class
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ spellchecker-class
+ </para>
- </entry>
- <entry>
- <para>
- none
- </para>
+ </entry>
+ <entry>
+ <para>
+ none
+ </para>
- </entry>
- <entry>
- <para>
- The name of a class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.SpellChecker</literal>.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The name of a class that implements <literal>org.exoplatform.services.jcr.impl.core. query.lucene.SpellChecker</literal>.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- errorlog-size
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ errorlog-size
+ </para>
- </entry>
- <entry>
- <para>
- 50(KB)
- </para>
+ </entry>
+ <entry>
+ <para>
+ 50(KB)
+ </para>
- </entry>
- <entry>
- <para>
- The default size of error log file in KB.
- </para>
+ </entry>
+ <entry>
+ <para>
+ The default size of error log file in KB.
+ </para>
- </entry>
- <entry>
- 1.9
- </entry>
+ </entry>
+ <entry>
+ 1.9
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- upgrade-index
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ upgrade-index
+ </para>
- </entry>
- <entry>
- <para>
- false
- </para>
+ </entry>
+ <entry>
+ <para>
+ false
+ </para>
- </entry>
- <entry>
- <para>
- Allows JCR to convert an existing index into the new format. It is also possible to set this property via system property.
- </para>
- <para>
- For example: <command>-Dupgrade-index=true</command>
- </para>
- <para>
- Indexes prior to eXo JCR 1.12 will not run with eXo JCR 1.12. You must run an automatic migration.
- </para>
- <para>
- Start eXo JCR with:
- </para>
-
+ </entry>
+ <entry>
+ <para>
+ Allows JCR to convert an existing index into the new format. It is also possible to set this property via system property.
+ </para>
+ <para>
+ For example: <command>-Dupgrade-index=true</command>
+ </para>
+ <para>
+ Indexes prior to eXo JCR 1.12 will not run with eXo JCR 1.12. You must run an automatic migration.
+ </para>
+ <para>
+ Start eXo JCR with:
+ </para>
+
<programlisting><command> -Dupgrade-index=true</command></programlisting>
- <para>
- The old index format is then converted in the new index format. After the conversion the new format is used.
- </para>
- <para>
- On subsequent starts this option is no longer needed. The old index is replaced and a back conversion is not possible
- </para>
- <para>
- It is recommended that a backup of the index be made before conversion. (Only for migrations from JCR 1.9 and later.)
- </para>
+ <para>
+ The old index format is then converted in the new index format. After the conversion the new format is used.
+ </para>
+ <para>
+ On subsequent starts this option is no longer needed. The old index is replaced and a back conversion is not possible
+ </para>
+ <para>
+ It is recommended that a backup of the index be made before conversion. (Only for migrations from JCR 1.9 and later.)
+ </para>
- </entry>
- <entry>
- 1.12
- </entry>
+ </entry>
+ <entry>
+ 1.12
+ </entry>
- </row>
- <row>
- <entry>
- <para>
- analyzer
- </para>
+ </row>
+ <row>
+ <entry>
+ <para>
+ analyzer
+ </para>
- </entry>
- <entry>
- <para>
- org.apache.lucene.analysis. standard.StandardAnalyzer
- </para>
+ </entry>
+ <entry>
+ <para>
+ org.apache.lucene.analysis. standard.StandardAnalyzer
+ </para>
- </entry>
- <entry>
- <para>
- Class name of a lucene analyzer to use for full-text indexing of text.
- </para>
+ </entry>
+ <entry>
+ <para>
+ Class name of a lucene analyzer to use for full-text indexing of text.
+ </para>
- </entry>
- <entry>
- 1.12
- </entry>
+ </entry>
+ <entry>
+ 1.12
+ </entry>
- </row>
+ </row>
- </tbody>
+ </tbody>
- </tgroup>
+ </tgroup>
- </table>
- <section id="sect-Reference_Guide-Search_Configuration-Global_Search_Index">
- <title>Global Search Index</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>
- <programlistingco>
- <areaspec>
- <area coords="4" id="area-Reference_Guide-Search_Configuration-Global_Search_Index-StandardFilter" />
- <area coords="5" id="area-Reference_Guide-Search_Configuration-Global_Search_Index-LowerCaseFilter" />
- <area coords="6" id="area-Reference_Guide-Search_Configuration-Global_Search_Index-StopFilter" />
+ </table>
+ <section id="sect-Reference_Guide-Search_Configuration-Global_Search_Index">
+ <title>Global Search Index</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>
+ <programlistingco>
+ <areaspec>
+ <area coords="4" id="area-Reference_Guide-Search_Configuration-Global_Search_Index-StandardFilter" />
+ <area coords="5" id="area-Reference_Guide-Search_Configuration-Global_Search_Index-LowerCaseFilter" />
+ <area coords="6" id="area-Reference_Guide-Search_Configuration-Global_Search_Index-StopFilter" />
- </areaspec>
-
+ </areaspec>
+
<programlisting language="Java" role="Java"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default62.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-Search_Configuration-Global_Search_Index-StandardFilter">
- <para>
- The first filter (StandardFilter) removes possessive apostrophes (<emphasis role="bold">'s</emphasis>) from the end of words and removes periods (<emphasis role="bold">.</emphasis>) from acronyms.
- </para>
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide-Search_Configuration-Global_Search_Index-StandardFilter">
+ <para>
+ The first filter (StandardFilter) removes possessive apostrophes (<emphasis role="bold">'s</emphasis>) from the end of words and removes periods (<emphasis role="bold">.</emphasis>) from acronyms.
+ </para>
- </callout>
- <callout arearefs="area-Reference_Guide-Search_Configuration-Global_Search_Index-LowerCaseFilter">
- <para>
- The second filter (LowerCaseFilter) normalizes token text to lower case.
- </para>
+ </callout>
+ <callout arearefs="area-Reference_Guide-Search_Configuration-Global_Search_Index-LowerCaseFilter">
+ <para>
+ The second filter (LowerCaseFilter) normalizes token text to lower case.
+ </para>
- </callout>
- <callout arearefs="area-Reference_Guide-Search_Configuration-Global_Search_Index-StopFilter">
- <para>
- The last filter (StopFilter) removes stop words from a token stream. The stop set is defined in the analyzer.
- </para>
+ </callout>
+ <callout arearefs="area-Reference_Guide-Search_Configuration-Global_Search_Index-StopFilter">
+ <para>
+ The last filter (StopFilter) removes stop words from a token stream. The stop set is defined in the analyzer.
+ </para>
- </callout>
+ </callout>
- </calloutlist>
+ </calloutlist>
- </programlistingco>
-
- <para>
- The global search index is configured in the <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><VERSION></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename> configuration file within the "query-handler" tag.
- </para>
-
+ </programlistingco>
+
+ <para>
+ The global search index is configured in the <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><VERSION></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename> configuration file within the "query-handler" tag.
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
</programlisting>
- <para>
- The same analyzer should always be used for indexing and for querying in lucene. Results may be unpredictable in other instances. eXo JCR does this automatically. The StandardAnalyzer (configured by default) can, however, be replaced with another.
- </para>
- <para>
- A customized QueryHandler can also be easily created.
- </para>
- <formalpara id="form-Reference_Guide-Global_Search_Index-Customized_Search_Indexes_and_Analyzers">
- <title>Customized Search Indexes and Analyzers</title>
- <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>
+ <para>
+ The same analyzer should always be used for indexing and for querying in lucene. Results may be unpredictable in other instances. eXo JCR does this automatically. The StandardAnalyzer (configured by default) can, however, be replaced with another.
+ </para>
+ <para>
+ A customized QueryHandler can also be easily created.
+ </para>
+ <formalpara id="form-Reference_Guide-Global_Search_Index-Customized_Search_Indexes_and_Analyzers">
+ <title>Customized Search Indexes and Analyzers</title>
+ <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>
- <para>
- In order to use a different filter, a new analyzer must be created, as well as new search index to use the analyzer. These are packaged into a jar file, which is then deployed with the application.
- </para>
- <procedure id="proc-Reference_Guide-Global_Search_Index-Create_a_new_filter_analyzer_and_search_index">
- <title>Create a new filter, analyzer and search index</title>
- <step>
- <para>
- Create a new filter with the method:
- </para>
-
+ </formalpara>
+ <para>
+ The <phrase>ISOLatin1AccentFilter</phrase> is not present in the current lucene version used by eXo.
+ </para>
+ <para>
+ In order to use a different filter, a new analyzer must be created, as well as new search index to use the analyzer. These are packaged into a jar file, which is then deployed with the application.
+ </para>
+ <procedure id="proc-Reference_Guide-Global_Search_Index-Create_a_new_filter_analyzer_and_search_index">
+ <title>Create a new filter, analyzer and search index</title>
+ <step>
+ <para>
+ Create a new filter with the method:
+ </para>
+
<programlisting language="Java" role="JAVA">public final Token next(final Token reusableToken) throws java.io.IOException
</programlisting>
- <para>
- This defines how characters are read and used by the filter.
- </para>
+ <para>
+ This defines how characters are read and used by the filter.
+ </para>
- </step>
- <step>
- <para>
- Create the analyzer.
- </para>
- <para>
- The analyzer must extend <literal>org.apache.lucene.analysis.standard.StandardAnalyzer</literal> and overload the method.
- </para>
- <para>
- Use the following to use new filters.
- </para>
-
+ </step>
+ <step>
+ <para>
+ Create the analyzer.
+ </para>
+ <para>
+ The analyzer must extend <literal>org.apache.lucene.analysis.standard.StandardAnalyzer</literal> and overload the method.
+ </para>
+ <para>
+ Use the following to use new filters.
+ </para>
+
<programlisting language="Java" role="JAVA">public TokenStream tokenStream(String fieldName, Reader reader)
</programlisting>
- </step>
- <step>
- <para>
- To create the new search index, extend <literal>org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex</literal> and write the constructor to set the correct analyzer.
- </para>
- <para>
- Use the method below to return your analyzer:
- </para>
-
+ </step>
+ <step>
+ <para>
+ To create the new search index, extend <literal>org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex</literal> and write the constructor to set the correct analyzer.
+ </para>
+ <para>
+ Use the method below to return your analyzer:
+ </para>
+
<programlisting language="Java" role="JAVA">public Analyzer getAnalyzer() {
return MyAnalyzer;
}
</programlisting>
- </step>
+ </step>
- </procedure>
-
- <note>
- <para>
- In eXo JCR version 1.12 (and later) the analyzer can be directly set in the configuration. For users with this version the creation of a new SearchIndex for new analyzers is redundant.
- </para>
+ </procedure>
+
+ <note>
+ <para>
+ In eXo JCR version 1.12 (and later) the analyzer can be directly set in the configuration. For users with this version the creation of a new SearchIndex for new analyzers is redundant.
+ </para>
- </note>
- <para>
- To configure an application to use a new <literal>SearchIndex</literal>, replace the following code:
- </para>
-
+ </note>
+ <para>
+ To configure an application to use a new <literal>SearchIndex</literal>, replace the following code:
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
</programlisting>
- <para>
- in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><VERSION></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename> with the new class:
- </para>
-
+ <para>
+ in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><VERSION></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename> with the new class:
+ </para>
+
<programlisting language="XML" role="XML"><query-handler class="mypackage.indexation.MySearchIndex>
</programlisting>
- <para>
- To configure an application to use a new analyzer, add the <parameter>analyzer</parameter> parameter to each query-handler configuration in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><VERSION></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename>:
- </para>
-
+ <para>
+ To configure an application to use a new analyzer, add the <parameter>analyzer</parameter> parameter to each query-handler configuration in <filename><replaceable>JBOSS_HOME</replaceable>/server/<replaceable><VERSION></replaceable>/deploy/gatein.ear/02portal.war/WEB-INF/conf/jcr/repository-configuration.xml</filename>:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default69.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The new <literal>SearchIndex</literal> will start to index contents with the specified filters when the JCR is next started.
- </para>
+ <para>
+ The new <literal>SearchIndex</literal> will start to index contents with the specified filters when the JCR is next started.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-Search_Configuration-IndexingConfiguration">
- <title>IndexingConfiguration</title>
- <para>
- From version 1.9, the default search index implementation in JCR allows user control over which properties of a node are indexed. Different analyzers can also be set for different nodes.
- </para>
- <para>
- The configuration parameter is called <literal>indexingConfiguration</literal> and is not set by default. This means all properties of a node are indexed.
- </para>
- <para>
- To configure the indexing behavior add a parameter to the query-handler element in your configuration file.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Search_Configuration-IndexingConfiguration">
+ <title>IndexingConfiguration</title>
+ <para>
+ From version 1.9, the default search index implementation in JCR allows user control over which properties of a node are indexed. Different analyzers can also be set for different nodes.
+ </para>
+ <para>
+ The configuration parameter is called <literal>indexingConfiguration</literal> and is not set by default. This means all properties of a node are indexed.
+ </para>
+ <para>
+ To configure the indexing behavior add a parameter to the query-handler element in your configuration file.
+ </para>
+
<programlisting language="XML" role="XML"><param name="indexing-configuration-path" value="/indexing_configuration.xml"/>
</programlisting>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Node_Scope_Limit">
- <title>Node Scope Limit</title>
- <para>
- The node scope can be limited so that only certain properties of a node type are indexed. This can optimize the index size.
- </para>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Node_Scope_Limit">
+ <title>Node Scope Limit</title>
+ <para>
+ The node scope can be limited so that only certain properties of a node type are indexed. This can optimize the index size.
+ </para>
- </formalpara>
- <para>
- With the configuration below only properties named <parameter>Text</parameter> are indexed for <parameter>nt:unstructured</parameter> node types. This configuration also applies to all nodes whose type extends from <parameter>nt:unstructured</parameter>.
- </para>
-
+ </formalpara>
+ <para>
+ With the configuration below only properties named <parameter>Text</parameter> are indexed for <parameter>nt:unstructured</parameter> node types. This configuration also applies to all nodes whose type extends from <parameter>nt:unstructured</parameter>.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default71.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <note>
- <title>Namespace Prefixes</title>
- <para>
- The <phrase>namespace prefixes</phrase> must be declared throughout the XML file in the configuration element that is being used.
- </para>
+ <note>
+ <title>Namespace Prefixes</title>
+ <para>
+ The <phrase>namespace prefixes</phrase> must be declared throughout the XML file in the configuration element that is being used.
+ </para>
- </note>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Indexing_Boost_Value">
- <title>Indexing Boost Value</title>
- <para>
- It is also possible to configure a <phrase>boost value</phrase> for the nodes that match the index rule. The default boost value is 1.0. Higher boost values (a reasonable range is 1.0 - 5.0) will yield a higher score value and appear as more relevant.
- </para>
+ </note>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Indexing_Boost_Value">
+ <title>Indexing Boost Value</title>
+ <para>
+ It is also possible to configure a <phrase>boost value</phrase> for the nodes that match the index rule. The default boost value is 1.0. Higher boost values (a reasonable range is 1.0 - 5.0) will yield a higher score value and appear as more relevant.
+ </para>
- </formalpara>
-
+ </formalpara>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default72.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- If you do not wish to boost the complete node, but only certain properties, you can also provide a boost value for the listed properties:
- </para>
-
+ <para>
+ If you do not wish to boost the complete node, but only certain properties, you can also provide a boost value for the listed properties:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default73.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Conditional_Index_Rules">
- <title>Conditional Index Rules</title>
- <para>
- You may also add a <phrase>condition</phrase> to the index rule and have multiple rules with the same nodeType. The first index rule that matches will apply and all remaining ones are ignored:
- </para>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Conditional_Index_Rules">
+ <title>Conditional Index Rules</title>
+ <para>
+ You may also add a <phrase>condition</phrase> to the index rule and have multiple rules with the same nodeType. The first index rule that matches will apply and all remaining ones are ignored:
+ </para>
- </formalpara>
-
+ </formalpara>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default74.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- In the above example the first rule only applies if the <parameter>nt:unstructured</parameter> node has a priority property with a value <parameter>high</parameter>. The condition syntax only supports the equals operator and a string literal.
- </para>
- <para>
- Properties may also be referenced on the condition that are not on the current node:
- </para>
-
+ <para>
+ In the above example the first rule only applies if the <parameter>nt:unstructured</parameter> node has a priority property with a value <parameter>high</parameter>. The condition syntax only supports the equals operator and a string literal.
+ </para>
+ <para>
+ Properties may also be referenced on the condition that are not on the current node:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default75.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The indexing configuration allows the type of a node in the condition to be specified. Please note however that the type match must be exact. It does not consider sub types of the specified node type.
- </para>
-
+ <para>
+ The indexing configuration allows the type of a node in the condition to be specified. Please note however that the type match must be exact. It does not consider sub types of the specified node type.
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default76.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Exclusion_from_the_Node_Scope_Index">
- <title>Exclusion from the Node Scope Index</title>
- <para>
- All configured properties are full-text indexed by default (if they are of type STRING and included in the node scope index).
- </para>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Exclusion_from_the_Node_Scope_Index">
+ <title>Exclusion from the Node Scope Index</title>
+ <para>
+ All configured properties are full-text indexed by default (if they are of type STRING and included in the node scope index).
+ </para>
- </formalpara>
- <para>
- A node scope search normally finds all nodes of an index. That is to say; <literal>jcr:contains(., 'foo')</literal> returns all nodes that have a string property containing the word '<replaceable>foo</replaceable>'.
- </para>
- <para>
- Properties can be explicitly excluded from the node scope index with:
- </para>
-
+ </formalpara>
+ <para>
+ A node scope search normally finds all nodes of an index. That is to say; <literal>jcr:contains(., 'foo')</literal> returns all nodes that have a string property containing the word '<replaceable>foo</replaceable>'.
+ </para>
+ <para>
+ Properties can be explicitly excluded from the node scope index with:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default77.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Index_Aggregates">
- <title>Index Aggregates</title>
- <para>
- Sometimes it is useful to include the contents of descendant nodes into a single node to more easily search on content that is scattered across multiple nodes.
- </para>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Index_Aggregates">
+ <title>Index Aggregates</title>
+ <para>
+ Sometimes it is useful to include the contents of descendant nodes into a single node to more easily search on content that is scattered across multiple nodes.
+ </para>
- </formalpara>
- <para>
- JCR allows the definition of index aggregates based on relative path patterns and primary node types.
- </para>
- <para>
- The following example creates an index aggregate on <literal>nt:file</literal> that includes the content of the jcr:content node:
- </para>
-
+ </formalpara>
+ <para>
+ JCR allows the definition of index aggregates based on relative path patterns and primary node types.
+ </para>
+ <para>
+ The following example creates an index aggregate on <literal>nt:file</literal> that includes the content of the jcr:content node:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default78.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- Included nodes can also be restricted to a certain type:
- </para>
-
+ <para>
+ Included nodes can also be restricted to a certain type:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default79.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The <emphasis role="bold">*</emphasis> wild-card can be used to match all child nodes:
- </para>
-
+ <para>
+ The <emphasis role="bold">*</emphasis> wild-card can be used to match all child nodes:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default80.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- Nodes to a certain depth below the current node can be included by adding multiple include elements. The <parameter>nt:file</parameter> node may contain a complete XML document under jcr:content for example:
- </para>
-
+ <para>
+ Nodes to a certain depth below the current node can be included by adding multiple include elements. The <parameter>nt:file</parameter> node may contain a complete XML document under jcr:content for example:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default81.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Property_Level_Analyzers">
- <title>Property-Level Analyzers</title>
- <para>
- How a property has to be analyzed can be defined in the following configuration section. If there is an analyzer configuration for a property, this analyzer is used for indexing and searching of this property. For example:
- </para>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Property_Level_Analyzers">
+ <title>Property-Level Analyzers</title>
+ <para>
+ How a property has to be analyzed can be defined in the following configuration section. If there is an analyzer configuration for a property, this analyzer is used for indexing and searching of this property. For example:
+ </para>
- </formalpara>
-
+ </formalpara>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../../extras/Advanced_Development_JCR_search-configuration/default82.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <para>
- The configuration above sets lucene <emphasis role="bold">KeywordAnalyzer</emphasis> to index and search the property "<replaceable>mytext</replaceable>" across the entire workspace while the "<replaceable>mytext2</replaceable>" property is searched with the <emphasis role="bold">WhitespaceAnalyzer</emphasis>.
- </para>
- <para>
- The <emphasis role="bold">WhitespaceAnalyzer</emphasis> tokenizes a property, the <emphasis role="bold">KeywordAnalyzer</emphasis> takes the property as a whole.
- </para>
- <para>
- Using different analyzers for different languages can be particularly useful.
- </para>
- <formalpara id="form-Reference_Guide-IndexingConfiguration-Characteristics_of_Node_Scope_Searches">
- <title>Characteristics of Node Scope Searches</title>
- <para>
- Unexpected behavior may be encountered when using analyzers to search within a <emphasis>property</emphasis> compared to searching within a <emphasis>node scope</emphasis>. This is because the node scope always uses the global analyzer.
- </para>
+ <para>
+ The configuration above sets lucene <emphasis role="bold">KeywordAnalyzer</emphasis> to index and search the property "<replaceable>mytext</replaceable>" across the entire workspace while the "<replaceable>mytext2</replaceable>" property is searched with the <emphasis role="bold">WhitespaceAnalyzer</emphasis>.
+ </para>
+ <para>
+ The <emphasis role="bold">WhitespaceAnalyzer</emphasis> tokenizes a property, the <emphasis role="bold">KeywordAnalyzer</emphasis> takes the property as a whole.
+ </para>
+ <para>
+ Using different analyzers for different languages can be particularly useful.
+ </para>
+ <formalpara id="form-Reference_Guide-IndexingConfiguration-Characteristics_of_Node_Scope_Searches">
+ <title>Characteristics of Node Scope Searches</title>
+ <para>
+ Unexpected behavior may be encountered when using analyzers to search within a <emphasis>property</emphasis> compared to searching within a <emphasis>node scope</emphasis>. This is because the node scope always uses the global analyzer.
+ </para>
- </formalpara>
- <para>
- For example: the property "<parameter>mytext</parameter>" contains the text; "<emphasis>testing my analyzers</emphasis>" but no analyzers have been configured for this property (and the default analyzer in SearchIndex has not been changed).
- </para>
- <para>
- If the query is:
- </para>
-
+ </formalpara>
+ <para>
+ For example: the property "<parameter>mytext</parameter>" contains the text; "<emphasis>testing my analyzers</emphasis>" but no analyzers have been configured for this property (and the default analyzer in SearchIndex has not been changed).
+ </para>
+ <para>
+ If the query is:
+ </para>
+
<programlisting language="Java" role="JAVA">xpath = "//*[jcr:contains(mytext,'analyzer')]"
</programlisting>
- <para>
- The <literal>xpath</literal> does not return a result in the node with the property above and default analyzers.
- </para>
- <para>
- Also, if a search is done on the node scope as follows:
- </para>
-
+ <para>
+ The <literal>xpath</literal> does not return a result in the node with the property above and default analyzers.
+ </para>
+ <para>
+ Also, if a search is done on the node scope as follows:
+ </para>
+
<programlisting language="Java" role="JAVA">xpath = "//*[jcr:contains(.,'analyzer')]"
</programlisting>
- <para>
- No result will be returned.
- </para>
- <para>
- Only specific analyzers can be set on a node property, and the node scope indexing and analyzing is always done with the globally defined analyzer in the SearchIndex element.
- </para>
- <para>
- If the analyzer used to index the "mytext" property above is changed to:
- </para>
-
+ <para>
+ No result will be returned.
+ </para>
+ <para>
+ Only specific analyzers can be set on a node property, and the node scope indexing and analyzing is always done with the globally defined analyzer in the SearchIndex element.
+ </para>
+ <para>
+ If the analyzer used to index the "mytext" property above is changed to:
+ </para>
+
<programlisting language="XML" role="XML"><analyzer class="org.apache.lucene.analysis.Analyzer.GermanAnalyzer">
<property>mytext</property>
</analyzer>
</programlisting>
- <para>
- The search below would return a result because of the word stemming (analyzers - analyzer).
- </para>
-
+ <para>
+ The search below would return a result because of the word stemming (analyzers - analyzer).
+ </para>
+
<programlisting language="Java" role="JAVA">xpath = "//*[jcr:contains(mytext,'analyzer')]"
</programlisting>
- <para>
- The second search in the example:
- </para>
-
+ <para>
+ The second search in the example:
+ </para>
+
<programlisting language="Java" role="JAVA">xpath = "//*[jcr:contains(.,'analyzer')]"
</programlisting>
- <para>
- Would still not give a result, since the node scope is indexed with the global analyzer, which in this case does not take into account any word stemming.
- </para>
- <para>
- Be aware that when using analyzers for specific properties, a result may be found in a property for certain search text, but the same search text in the node scope of the property may not find a result.
- </para>
- <note>
- <para>
- Both index rules and index aggregates influence how content is indexed in JCR. If the configuration is changed, the existing content is not automatically re-indexed according to the new rules.
- </para>
- <para>
- Content must be manually re-indexed when the configuration is changed.
- </para>
+ <para>
+ Would still not give a result, since the node scope is indexed with the global analyzer, which in this case does not take into account any word stemming.
+ </para>
+ <para>
+ Be aware that when using analyzers for specific properties, a result may be found in a property for certain search text, but the same search text in the node scope of the property may not find a result.
+ </para>
+ <note>
+ <para>
+ Both index rules and index aggregates influence how content is indexed in JCR. If the configuration is changed, the existing content is not automatically re-indexed according to the new rules.
+ </para>
+ <para>
+ Content must be manually re-indexed when the configuration is changed.
+ </para>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide-Search_Configuration-Advanced_features">
- <title>Advanced features</title>
- <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-Searching_Repository_Content-High_lighting_Since_1.9" />.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Search a term and its <emphasis role="bold">synonyms</emphasis>: <xref linkend="sect-Reference_Guide-Searching_Repository_Content-SynonymSearch_since_1.9" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- Search <emphasis role="bold">similar</emphasis> nodes: <xref linkend="sect-Reference_Guide-Searching_Repository_Content-Similarity_Since_1.12" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- Check <emphasis role="bold">spelling</emphasis> of a full text query statement: <xref linkend="sect-Reference_Guide-Searching_Repository_Content-SpellChecker" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- Define index <emphasis role="bold">aggregates and rules</emphasis>: IndexingConfiguration.
- </para>
-
- </listitem>
-
- </itemizedlist>
-
- </section>
-
+ </section>
+
</section>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/configuration/workspace-persistence-storage.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Workspace_Data_Container">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container-howto.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container-howto.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container-howto.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-How_to_implement_Workspace_Data_Container">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/data-container.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_Workspace_Data_Container_architecture_contract">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/db-cleaner-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/db-cleaner-service.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/db-cleaner-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-DBCleanService">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/intro.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/intro.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/intro.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Introduction">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbosscache-configuration-templates.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbosscache-configuration-templates.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbosscache-configuration-templates.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JBoss_Cache_configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbossts-transaction-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbossts-transaction-service.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jbossts-transaction-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JBossTransactionsService">
@@ -8,10 +8,10 @@
<section id="sect-Reference_Guide-JBossTransactionsService-Introduction">
<title>Introduction</title>
<para>
- JBossTransactionsService implements eXo <xref linkend="sect-Reference_Guide-TransactionService" /> and provides access to <ulink url="http://www.jboss.org/jbosstm/">JBoss Transaction Service (JBossTS)</ulink> JTA implementation via eXo container dependency.
+ JBossTransactionsService implements eXo TransactionService and provides access to <ulink url="http://www.jboss.org/jbosstm/">JBoss Transaction Service (JBossTS)</ulink> JTA implementation via eXo container dependency.
</para>
<para>
- TransactionService used in JCR cache <emphasis>org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache</emphasis> implementation. See <xref linkend="sect-Reference_Guide-Cluster_Config" /> for example.
+ TransactionService used in JCR cache <emphasis>org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache</emphasis> implementation.
</para>
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jca.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jca.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jca.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-The_JCA_Resource_Adapter">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jta.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jta.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/jta.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JTA">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/lock-manager-config.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,41 +1,41 @@
<?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-LockManager">
- <title>LockManager</title>
- <para>
- The LockManager stores lock objects. It can lock or release objects as required. It is also responsible for removing stale locks.
- </para>
- <para>
- The LockManager in JBoss Enterprise Portal Platform is implemented with <classname>org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl</classname>.
- </para>
- <para>
- It is enabled by adding <literal>lock-manager-configuration</literal> to <literal>workspace-configuration</literal>.
- </para>
- <para>
- For example:
- </para>
-
+ <title>LockManager</title>
+ <para>
+ The LockManager stores lock objects. It can lock or release objects as required. It is also responsible for removing stale locks.
+ </para>
+ <para>
+ The LockManager in JBoss Enterprise Portal Platform is implemented with <classname>org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl</classname>.
+ </para>
+ <para>
+ It is enabled by adding <literal>lock-manager-configuration</literal> to <literal>workspace-configuration</literal>.
+ </para>
+ <para>
+ For example:
+ </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-LockManager-CacheableLockManagerImpl">
- <title>CacheableLockManagerImpl</title>
- <para>
- <classname>CacheableLockManagerImpl</classname> stores lock objects in JBoss-cache (which implements JDBCCacheLoader to store locks in a database). This means its locks are replicable and can affect an entire cluster rather than just a single node.
- </para>
- <para>
- The length of time LockManager allows a lock to remain in place can be configured with the "<literal>time-out</literal>" property.
- </para>
- <para>
- The LockRemover thread periodically polls LockManager for locks that have passed the time-out limit and must be removed.
- </para>
- <para>
- The time-out for LockRemover is set as follows (the default value is 30m):
- </para>
-
+ <section id="sect-Reference_Guide-LockManager-CacheableLockManagerImpl">
+ <title>CacheableLockManagerImpl</title>
+ <para>
+ <classname>CacheableLockManagerImpl</classname> stores lock objects in JBoss-cache (which implements JDBCCacheLoader to store locks in a database). This means its locks are replicable and can affect an entire cluster rather than just a single node.
+ </para>
+ <para>
+ The length of time LockManager allows a lock to remain in place can be configured with the "<literal>time-out</literal>" property.
+ </para>
+ <para>
+ The LockRemover thread periodically polls LockManager for locks that have passed the time-out limit and must be removed.
+ </para>
+ <para>
+ The time-out for LockRemover is set as follows (the default value is 30m):
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/default48.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <!-- Doesn't seem necessary
+ <!-- Doesn't seem necessary
<formalpara>
<title>Configuration</title>
<para>
@@ -62,322 +62,309 @@
</para>
</listitem>
</itemizedlist> --> <para>
- There are a number of ways to configure <classname>CacheableLockManagerImpl</classname>. Each involves configuring JBoss Cache and JDBCCacheLoader.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-CacheableLockManagerImpl-Simple_JBoss_Cache_Configuration" />
- </para>
+ There are a number of ways to configure <classname>CacheableLockManagerImpl</classname>. Each involves configuring JBoss Cache and JDBCCacheLoader.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-CacheableLockManagerImpl-Simple_JBoss_Cache_Configuration" />
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration" />
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration" />
+ </para>
- </listitem>
+ </listitem>
- </itemizedlist>
- <para>
- Refer to <ulink url="http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader">http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader</ulink> for more information about JBoss Cache and JDBCCacheLoader.
- </para>
- <section id="sect-Reference_Guide-CacheableLockManagerImpl-Simple_JBoss_Cache_Configuration">
- <title>Simple JBoss Cache Configuration</title>
- <para>
- One method to configure the LockManager is to put a JBoss Cache configuration file path into <classname>CacheableLockManagerImpl</classname>.
- </para>
- <note>
- <para>
- This is not the most efficient method for configuring the LockManager as it requires a JBoss Cache configuration file for each LockManager configuration in each workspace of each repository. The configuration set up can subsequently become quite difficult to manage.
- </para>
- <para>
- This method is useful, however, if a single, specially configured LockManager is required.
- </para>
+ </itemizedlist>
+ <para>
+ Refer to <ulink url="http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader">http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader</ulink> for more information about JBoss Cache and JDBCCacheLoader.
+ </para>
+ <section id="sect-Reference_Guide-CacheableLockManagerImpl-Simple_JBoss_Cache_Configuration">
+ <title>Simple JBoss Cache Configuration</title>
+ <para>
+ One method to configure the LockManager is to put a JBoss Cache configuration file path into <classname>CacheableLockManagerImpl</classname>.
+ </para>
+ <note>
+ <para>
+ This is not the most efficient method for configuring the LockManager as it requires a JBoss Cache configuration file for each LockManager configuration in each workspace of each repository. The configuration set up can subsequently become quite difficult to manage.
+ </para>
+ <para>
+ This method is useful, however, if a single, specially configured LockManager is required.
+ </para>
- </note>
- <para>
- The required configuration is shown in the example below:
- </para>
- <programlistingco>
- <areaspec>
- <area coords="4 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-test-jbosscache-lock-config.xml" />
+ </note>
+ <para>
+ The required configuration is shown in the example below:
+ </para>
+ <programlistingco>
+ <areaspec>
+ <area coords="4 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-test-jbosscache-lock-config.xml" />
- </areaspec>
-
+ </areaspec>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/default49.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-test-jbosscache-lock-config.xml">
- <para>
- The <replaceable>test-jbosscache-lock-config.xml</replaceable> is shown below.
- </para>
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-test-jbosscache-lock-config.xml">
+ <para>
+ The <replaceable>test-jbosscache-lock-config.xml</replaceable> is shown below.
+ </para>
- </callout>
+ </callout>
- </calloutlist>
+ </calloutlist>
- </programlistingco>
-
- <para>
- The <filename>test-jbosscache-lock-config.xml</filename> file:
- </para>
- <programlistingco>
- <areaspec>
- <area coords="6 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-clusterName" />
- <area coords="41 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.table.name" />
- <areaset coords="" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.types">
- <area coords="48 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.node.type" />
- <area coords="46 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.fqn.type" />
+ </programlistingco>
+
+ <para>
+ The <filename>test-jbosscache-lock-config.xml</filename> file:
+ </para>
+ <programlistingco>
+ <areaspec>
+ <area coords="6 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-clusterName" />
+ <area coords="41 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.table.name" />
+ <areaset coords="" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.types">
+ <area coords="48 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.node.type" />
+ <area coords="46 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.fqn.type" />
- </areaset>
+ </areaset>
- </areaspec>
-
+ </areaspec>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/default50.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-clusterName">
- <para>
- The cluster name at <parameter>clustering mode="replication" clusterName="JBoss-Cache-Lock-Cluster_Name"</parameter> must be unique;
- </para>
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-clusterName">
+ <para>
+ The cluster name at <parameter>clustering mode="replication" clusterName="JBoss-Cache-Lock-Cluster_Name"</parameter> must be unique;
+ </para>
- </callout>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.table.name">
- <para>
- The <parameter>cache.jdbc.table.name</parameter> must be unique per datasource.
- </para>
+ </callout>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.table.name">
+ <para>
+ The <parameter>cache.jdbc.table.name</parameter> must be unique per datasource.
+ </para>
- </callout>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.types">
- <para>
- The <parameter>cache.jdbc.node.type</parameter> and <parameter>cache.jdbc.fqn.type</parameter> parameters must be configured according to the database in use.
- </para>
- <para>
- Refer to the table below for information about data types.
- </para>
+ </callout>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Simple_Jboss_Cache_Configuration-cache.jdbc.types">
+ <para>
+ The <parameter>cache.jdbc.node.type</parameter> and <parameter>cache.jdbc.fqn.type</parameter> parameters must be configured according to the database in use.
+ </para>
+ <para>
+ Refer to the table below for information about data types.
+ </para>
- </callout>
+ </callout>
- </calloutlist>
+ </calloutlist>
- </programlistingco>
-
- <table id="tabl-Reference_Guide-Simple_JBoss_Cache_Configuration-Data_Types_in_Different_Databases">
- <title>Data Types in Different Databases</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- DataBase name
- </entry>
- <entry>
- Node data type
- </entry>
- <entry>
- FQN data type
- </entry>
+ </programlistingco>
+
+ <table id="tabl-Reference_Guide-Simple_JBoss_Cache_Configuration-Data_Types_in_Different_Databases">
+ <title>Data Types in Different Databases</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ DataBase name
+ </entry>
+ <entry>
+ Node data type
+ </entry>
+ <entry>
+ FQN data type
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- default
- </entry>
- <entry>
- BLOB
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ default
+ </entry>
+ <entry>
+ BLOB
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- HSSQL
- </entry>
- <entry>
- OBJECT
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ HSSQL
+ </entry>
+ <entry>
+ OBJECT
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- MySQL
- </entry>
- <entry>
- LONGBLOB
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ MySQL
+ </entry>
+ <entry>
+ LONGBLOB
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- ORACLE
- </entry>
- <entry>
- BLOB
- </entry>
- <entry>
- VARCHAR2(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ ORACLE
+ </entry>
+ <entry>
+ BLOB
+ </entry>
+ <entry>
+ VARCHAR2(512)
+ </entry>
- </row>
- <row>
- <entry>
- PostgreSQL
- </entry>
- <entry>
- bytea
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ PostgreSQL
+ </entry>
+ <entry>
+ bytea
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- MSSQL
- </entry>
- <entry>
- VARBINARY(MAX)
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ MSSQL
+ </entry>
+ <entry>
+ VARBINARY(MAX)
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- DB2
- </entry>
- <entry>
- BLOB
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ DB2
+ </entry>
+ <entry>
+ BLOB
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- Sybase
- </entry>
- <entry>
- IMAGE
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ <row>
+ <entry>
+ Sybase
+ </entry>
+ <entry>
+ IMAGE
+ </entry>
+ <entry>
+ VARCHAR(512)
+ </entry>
- </row>
- <row>
- <entry>
- Ingres
- </entry>
- <entry>
- long byte
- </entry>
- <entry>
- VARCHAR(512)
- </entry>
+ </row>
+ </tbody>
- </row>
+ </tgroup>
- </tbody>
+ </table>
- </tgroup>
+ </section>
+
+ <section id="sect-Reference_Guide-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration">
+ <title>Template JBoss Cache Configuration</title>
+ <para>
+ Another method to configure LockManager is to use a JBoss Cache configuration template for all LockManagers.
+ </para>
+ <para>
+ Below is an example <filename>test-jbosscache-lock.xml</filename> template file:
+ </para>
+ <programlistingco>
+ <areaspec>
+ <areaset coords="" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.templates">
+ <area coords="24 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.table.name" />
+ <area coords="35 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.datasource" />
- </table>
+ </areaset>
- </section>
-
- <section id="sect-Reference_Guide-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration">
- <title>Template JBoss Cache Configuration</title>
- <para>
- Another method to configure LockManager is to use a JBoss Cache configuration template for all LockManagers.
- </para>
- <para>
- Below is an example <filename>test-jbosscache-lock.xml</filename> template file:
- </para>
- <programlistingco>
- <areaspec>
- <areaset coords="" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.templates">
- <area coords="24 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.table.name" />
- <area coords="35 50" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.datasource" />
-
- </areaset>
-
- </areaspec>
-
+ </areaspec>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/you.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.templates">
- <para>
- All the configurable parameters in this file are populated with templates which will be replaced with LockManager's configuration parameters.
- </para>
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-cache.jdbc.templates">
+ <para>
+ All the configurable parameters in this file are populated with templates which will be replaced with LockManager's configuration parameters.
+ </para>
- </callout>
+ </callout>
- </calloutlist>
+ </calloutlist>
- </programlistingco>
-
- <para>
- The parameters that will populate the above file are shown below:
- </para>
- <programlistingco>
- <areaspec>
- <area coords="5 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-udp-mux.xml" />
- <areaset coords="" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.parameters">
- <area coords="12 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.fqn.column" />
- <area coords="15 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.node.type" />
+ </programlistingco>
+
+ <para>
+ The parameters that will populate the above file are shown below:
+ </para>
+ <programlistingco>
+ <areaspec>
+ <area coords="5 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-udp-mux.xml" />
+ <areaset coords="" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.parameters">
+ <area coords="12 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.fqn.column" />
+ <area coords="15 90" id="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.node.type" />
- </areaset>
+ </areaset>
- </areaspec>
-
+ </areaspec>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/default51.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- <calloutlist>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-udp-mux.xml">
- <para>
- The <literal>jgroups-configuration</literal> has been moved to a separate configuration file (<filename>udp-mux.xml</filename>, shown below).
- </para>
- <para>
- In this case the <filename>udp-mux.xml</filename> is a common configuration for all JGroup components (QueryHandler, cache, LockManager), but this is not a requirement of the configuration method.
- </para>
+ <calloutlist>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-udp-mux.xml">
+ <para>
+ The <literal>jgroups-configuration</literal> has been moved to a separate configuration file (<filename>udp-mux.xml</filename>, shown below).
+ </para>
+ <para>
+ In this case the <filename>udp-mux.xml</filename> is a common configuration for all JGroup components (QueryHandler, cache, LockManager), but this is not a requirement of the configuration method.
+ </para>
- </callout>
- <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.parameters">
- <para>
- The <parameter>jbosscache-cl-cache.jdbc.fqn.column</parameter> and <parameter>jbosscache-cl-cache.jdbc.node.type</parameter> parameters are not explicitly defined as <parameter>cache.jdbc.fqn.type</parameter> and <parameter>cache.jdbc.node.type</parameter> are defined in the JBoss Cache configuration.
- </para>
- <para>
- Refer to <xref linkend="tabl-Reference_Guide-Simple_JBoss_Cache_Configuration-Data_Types_in_Different_Databases" /> for information about setting these parameters or set them as <parameter>AUTO</parameter> and the data type will by detected automatically.
- </para>
+ </callout>
+ <callout arearefs="area-Reference_Guide-LockManager_configuration-CacheableLockManagerImpl-Template_JBoss_Cache_Configuration-jbosscache-cl-cache.jdbc.parameters">
+ <para>
+ The <parameter>jbosscache-cl-cache.jdbc.fqn.column</parameter> and <parameter>jbosscache-cl-cache.jdbc.node.type</parameter> parameters are not explicitly defined as <parameter>cache.jdbc.fqn.type</parameter> and <parameter>cache.jdbc.node.type</parameter> are defined in the JBoss Cache configuration.
+ </para>
+ <para>
+ Refer to <xref linkend="tabl-Reference_Guide-Simple_JBoss_Cache_Configuration-Data_Types_in_Different_Databases" /> for information about setting these parameters or set them as <parameter>AUTO</parameter> and the data type will by detected automatically.
+ </para>
- </callout>
+ </callout>
- </calloutlist>
+ </calloutlist>
- </programlistingco>
-
- <para>
- <filename>udp-mux.xml</filename>:
- </para>
-
+ </programlistingco>
+
+ <para>
+ <filename>udp-mux.xml</filename>:
+ </para>
+
<programlisting language="XML" role="XML"><xi:include href="../../../../extras/Advanced_Development_JCR_lock-manager-config/default52.xml" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude" /></programlisting>
- </section>
-
+ </section>
+
- </section>
-
+ </section>
+
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl-ext.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl-ext.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl-ext.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Access_Control_Extension">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/acl.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Access_Control">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/binary-values-processing.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/binary-values-processing.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/binary-values-processing.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Binary_Values_Processing">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/jcr-resources.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/jcr-resources.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/jcr-resources.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_Resources">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/link-producer.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/link-producer.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/other/link-producer.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Link_Producer_Service">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/performance-tuning-guide.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_Performance_Tuning_Guide">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/ftp.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-FTP">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/protocols/webdav.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,66 +1,65 @@
<?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-WebDAV">
- <!-- This document was created with Syntext Serna Free. --> <title>WebDAV</title>
- <section id="sect-Reference_Guide-WebDAV-Related_documents">
- <title>Related documents</title>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Link_Producer_Service" />
- </para>
+ <!-- This document was created with Syntext Serna Free. -->
+ <title>WebDAV</title>
+ <section id="sect-Reference_Guide-WebDAV-Related_documents">
+ <title>Related documents</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <xref linkend="sect-Reference_Guide-Link_Producer_Service" />
+ </para>
+ </listitem>
+ </itemizedlist>
- </listitem>
-
- </itemizedlist>
-
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-Introduction">
- <title>Introduction</title>
- <para>
- The WebDAV protocol enables you to use the third party tools to communicate with hierarchical content servers via HTTP. It is possible to add and remove documents or a set of documents from a path on the server. DeltaV is an extension of the WebDav protocol that allows managing document versioning. Locking guarantees protection against multiple access when writing resources. The ordering support allows changing the position of the resource in the list and sort the directory to make the directory tree viewed conveniently. The full-text search makes it easy to find the necessary documents. You can search by using two languages: SQL and XPATH.
- </para>
- <para>
- In eXo JCR, we plug in the WebDAV layer - based on the code taken from the extension modules of the reference implementation - on the top of our JCR implementation so that it is possible to browse a workspace using the third party tools (it can be Windows folders or Mac ones as well as a Java WebDAV client, such as DAVExplorer or IE using File->Open as a Web Folder).
- </para>
- <para>
- Now WebDav is an extension of the REST service. To get the WebDav server ready, you must deploy the REST application. Then, you can access any workspaces of your repository by using the following URL:
- </para>
- <para>
- Standalone mode:
- </para>
- <para>
- <uri>http://host:port/rest/jcr/{RepositoryName}/{WorkspaceName}/{Path}</uri>
- </para>
- <para>
- Portal mode:
- </para>
- <para>
- <uri>http://host:port/portal/rest/private/jcr/{RepositoryName}/{WorkspaceName}...</uri>
- </para>
- <para>
- When accessing the WebDAV server with the URL<uri>http://localhost:8080/rest/jcr/repository/production</uri>, you might also use "collaboration" (instead of "production") which is the default workspace in eXo products. You will be asked to enter your login and password. Those will then be checked by using the organization service that can be implemented thanks to an InMemory (dummy) module or a DB module or an LDAP one and the JCR user session will be created with the correct JCR Credentials.
- </para>
- <note>
- <para>
- If you try the "in ECM" option, add "@ecm" to the user's password. Alternatively, you may modify jaas.conf by adding the <emphasis role="bold">domain=ecm</emphasis> option as follows:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-WebDAV-Introduction">
+ <title>Introduction</title>
+ <para>
+ The <application>WebDAV</application> protocol enables you to use third party tools to communicate with hierarchical content servers via HTTP. It is possible to add and remove documents or a set of documents from a path on the server.
+ </para>
+ <para>
+ <application>DeltaV</application> is an extension of the WebDav protocol that allows managing document versioning. Locking guarantees protection against multiple access when writing resources. The ordering support allows changing the position of the resource in the list and sort the directory to make the directory tree viewed conveniently. The full-text search makes it easy to find the necessary documents. You can search by using two languages: SQL and XPATH.
+ </para>
+ <para>
+ In the eXo JCR, the WebDAV layer (based on the code taken from the extension modules of the reference implementation) is plugged in on top of our JCR implementation. This makes it possible to browse a workspace using the third party tools regardless of operating system environments. You can use a Java WebDAV client, such as DAVExplorer or Internet Explorer using <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice> as a Web Folder.
+ </para>
+ <para>
+ WebDav is an extension of the REST service. To get the WebDav server ready, you must deploy the REST application. Then, you can access any workspaces of your repository by using the following URL:
+ </para>
+ <para>
+ <ulink type="http" url="http://host:port/portal/rest/private/jcr/{RepositoryName}/{WorkspaceName}..."></ulink>
+ </para>
+ <para>
+ When accessing the WebDAV server via <ulink type="http" url="http://localhost:8080/rest/jcr/repository/production"></ulink>, you can substitute <ulink type="http" url="http://localhost:8080/rest/jcr/repository/production">production</ulink> with <ulink type="http" url="http://localhost:8080/rest/jcr/repository/collaboration">collaboration</ulink>.
+ </para>
+ <para>
+ You will be asked to enter your login and password. Those will then be checked by using the organization service that can be implemented thanks to an InMemory (dummy) module or a DB module or an LDAP one and the JCR user session will be created with the correct JCR Credentials.
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ If you try the "in ECM" option, add "@ecm" to the user's password. Alternatively, you may modify jaas.conf by adding the <emphasis role="bold">domain=ecm</emphasis> option as follows:
+ </para>
+ <remark>DOCS NOTE: I have no idea what this means!</remark>
<programlisting>exo-domain {
org.exoplatform.services.security.jaas.BasicLoginModule required domain=ecm;
};</programlisting>
- </note>
+ </note>
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-Configuration">
- <title>Configuration</title>
-
+ </section>
+
+ <section id="sect-Reference_Guide-WebDAV-Configuration">
+ <title>WebDAV Configuration</title>
+ <para>
+ The WebDAV configuration is defined in the <remark><filename>DOC NOTE: where/is/this/file.xml</filename></remark> file:
+ </para>
<programlisting language="XML" role="XML"><component>
<key>org.exoplatform.services.webdav.WebDavServiceImpl</key>
<type>org.exoplatform.services.webdav.WebDavServiceImpl</type>
@@ -144,390 +143,409 @@
</init-params
</component></programlisting>
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-Screenshots">
- <title>Screenshots</title>
- <para>
- At present, eXo JCR WebDav server is tested by using MS Internet Explorer, <ulink url="http://www.ics.uci.edu/~webdav">Dav Explorer</ulink>, <ulink url="http://www.xythos.com/home/xythos/products/xythos_drive.html">Xythos Drive</ulink>, Microsoft Office 2003 (as client), and Ubuntu Linux.
- </para>
- <section id="sect-Reference_Guide-Screenshots-MS_Internet_Explorer">
- <title>MS Internet Explorer</title>
- <para>
- (File -> Open as Web Folder)
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/protocols/webdav_explorer.jpg" width="444" />
- </imageobject>
+ </section>
+
+ <!-- Removed as possibly inappropriate for RH documentation
+ <section id="sect-Reference_Guide-WebDAV-Screenshots">
+ <title>Screenshots</title>
+ <para>
+ At present, eXo JCR WebDav server is tested by using MS Internet Explorer, <ulink url="http://www.ics.uci.edu/~webdav">Dav Explorer</ulink>, <ulink url="http://www.xythos.com/home/xythos/products/xythos_drive.html">Xythos Drive</ulink>, Microsoft Office 2003 (as client), and Ubuntu Linux.
+ </para>
+ <section id="sect-Reference_Guide-Screenshots-MS_Internet_Explorer">
+ <title>MS Internet Explorer</title>
+ <para>
+ (File -> Open as Web Folder)
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/protocols/webdav_explorer.jpg" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Dav_Explorer">
- <title>Dav Explorer</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/protocols/webdav_davexplorer.jpg" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide-Screenshots-Dav_Explorer">
+ <title>Dav Explorer</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/protocols/webdav_davexplorer.jpg" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Xythos_Drive">
- <title>Xythos Drive</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/protocols/webdav_xythosdrive.jpg" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide-Screenshots-Xythos_Drive">
+ <title>Xythos Drive</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/protocols/webdav_xythosdrive.jpg" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Microsoft_Office_2003">
- <title>Microsoft Office 2003</title>
- <para>
- (as client) (File->Open with typing http://... href in the file name box)
- </para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/protocols/webdav_msoffice2003.jpg" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide-Screenshots-Microsoft_Office_2003">
+ <title>Microsoft Office 2003</title>
+ <para>
+ (as client) (File->Open with typing http://... href in the file name box)
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/protocols/webdav_msoffice2003.jpg" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
- <section id="sect-Reference_Guide-Screenshots-Ubuntu_Linux">
- <title>Ubuntu Linux</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/eXoJCR/protocols/webdav_ubuntulinux.jpg" width="444" />
- </imageobject>
+ </section>
+
+ <section id="sect-Reference_Guide-Screenshots-Ubuntu_Linux">
+ <title>Ubuntu Linux</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/eXoJCR/protocols/webdav_ubuntulinux.jpg" width="444" />
+ </imageobject>
- </mediaobject>
+ </mediaobject>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-Comparison_table_of_WebDav_and_JCR_commands">
- <title>Comparison table of WebDav and JCR commands</title>
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- WebDav
- </entry>
- <entry>
- JCR
- </entry>
+ </section> -->
+
+ <section id="sect-Reference_Guide-WebDAV-Comparison_table_of_WebDav_and_JCR_commands">
+ <title>Corresponding WebDav and JCR actions</title>
+ <table>
+ <title></title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>
+ WebDav
+ </entry>
+ <entry>
+ JCR
+ </entry>
- </row>
+ </row>
- </thead>
- <tbody>
- <row>
- <entry>
- COPY
- </entry>
- <entry>
- Workspace.copy(...)
- </entry>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ COPY
+ </entry>
+ <entry>
+ Workspace.copy(...)
+ </entry>
- </row>
- <row>
- <entry>
- DELETE
- </entry>
- <entry>
- Node.remove()
- </entry>
+ </row>
+ <row>
+ <entry>
+ DELETE
+ </entry>
+ <entry>
+ Node.remove()
+ </entry>
- </row>
- <row>
- <entry>
- GET
- </entry>
- <entry>
- Node.getProperty(...); Property.getValue()
- </entry>
+ </row>
+ <row>
+ <entry>
+ GET
+ </entry>
+ <entry>
+ Node.getProperty(...); Property.getValue()
+ </entry>
- </row>
- <row>
- <entry>
- HEAD
- </entry>
- <entry>
- Node.getProperty(...); Property.getLength()
- </entry>
+ </row>
+ <row>
+ <entry>
+ HEAD
+ </entry>
+ <entry>
+ Node.getProperty(...); Property.getLength()
+ </entry>
- </row>
- <row>
- <entry>
- MKCOL
- </entry>
- <entry>
- Node.addNode(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ MKCOL
+ </entry>
+ <entry>
+ Node.addNode(...)
+ </entry>
- </row>
- <row>
- <entry>
- MOVE
- </entry>
- <entry>
- Session.move(...) or Workspace.move(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ MOVE
+ </entry>
+ <entry>
+ Session.move(...) or Workspace.move(...)
+ </entry>
- </row>
- <row>
- <entry>
- PROPFIND
- </entry>
- <entry>
- Session.getNode(...); Node.getNode(...); Node.getNodes(...); Node.getProperties()
- </entry>
+ </row>
+ <row>
+ <entry>
+ PROPFIND
+ </entry>
+ <entry>
+ Session.getNode(...); Node.getNode(...); Node.getNodes(...); Node.getProperties()
+ </entry>
- </row>
- <row>
- <entry>
- PROPPATCH
- </entry>
- <entry>
- Node.setProperty(...); Node.getProperty(...).remove()
- </entry>
+ </row>
+ <row>
+ <entry>
+ PROPPATCH
+ </entry>
+ <entry>
+ Node.setProperty(...); Node.getProperty(...).remove()
+ </entry>
- </row>
- <row>
- <entry>
- PUT
- </entry>
- <entry>
- Node.addNode("node","nt:file"); Node.setProperty("jcr:data", "data")
- </entry>
+ </row>
+ <row>
+ <entry>
+ PUT
+ </entry>
+ <entry>
+ Node.addNode("node","nt:file"); Node.setProperty("jcr:data", "data")
+ </entry>
- </row>
- <row>
- <entry>
- CHECKIN
- </entry>
- <entry>
- Node.checkin()
- </entry>
+ </row>
+ <row>
+ <entry>
+ CHECKIN
+ </entry>
+ <entry>
+ Node.checkin()
+ </entry>
- </row>
- <row>
- <entry>
- CHECKOUT
- </entry>
- <entry>
- Node.checkout()
- </entry>
+ </row>
+ <row>
+ <entry>
+ CHECKOUT
+ </entry>
+ <entry>
+ Node.checkout()
+ </entry>
- </row>
- <row>
- <entry>
- REPORT
- </entry>
- <entry>
- Node.getVersionHistory(); VersionHistory.getAllVersions(); Version.getProperties()
- </entry>
+ </row>
+ <row>
+ <entry>
+ REPORT
+ </entry>
+ <entry>
+ Node.getVersionHistory(); VersionHistory.getAllVersions(); Version.getProperties()
+ </entry>
- </row>
- <row>
- <entry>
- RESTORE
- </entry>
- <entry>
- Node.restore(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ RESTORE
+ </entry>
+ <entry>
+ Node.restore(...)
+ </entry>
- </row>
- <row>
- <entry>
- UNCHECKOUT
- </entry>
- <entry>
- Node.restore(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ UNCHECKOUT
+ </entry>
+ <entry>
+ Node.restore(...)
+ </entry>
- </row>
- <row>
- <entry>
- VERSION-CONTROL
- </entry>
- <entry>
- Node.addMixin("mix:versionable")
- </entry>
+ </row>
+ <row>
+ <entry>
+ VERSION-CONTROL
+ </entry>
+ <entry>
+ Node.addMixin("mix:versionable")
+ </entry>
- </row>
- <row>
- <entry>
- LOCK
- </entry>
- <entry>
- Node.lock(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ LOCK
+ </entry>
+ <entry>
+ Node.lock(...)
+ </entry>
- </row>
- <row>
- <entry>
- UNLOCK
- </entry>
- <entry>
- Node.unlock()
- </entry>
+ </row>
+ <row>
+ <entry>
+ UNLOCK
+ </entry>
+ <entry>
+ Node.unlock()
+ </entry>
- </row>
- <row>
- <entry>
- ORDERPATCH
- </entry>
- <entry>
- Node.orderBefore(...)
- </entry>
+ </row>
+ <row>
+ <entry>
+ ORDERPATCH
+ </entry>
+ <entry>
+ Node.orderBefore(...)
+ </entry>
- </row>
- <row>
- <entry>
- SEARCH
- </entry>
- <entry>
- Workspace.getQueryManager(); QueryManager.createQuery(); Query.execute()
- </entry>
+ </row>
+ <row>
+ <entry>
+ SEARCH
+ </entry>
+ <entry>
+ Workspace.getQueryManager(); QueryManager.createQuery(); Query.execute()
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
+ <section id="sect-Reference_Guide-WebDAV-WebDAV_Considerations">
+ <title>WebDAV Considerations</title>
+ <para>
+ There are some restrictions for WebDAV in different Operating systems.
+ </para>
+ <section id="sect-Reference_Guide-Restrictions-Windows_7">
+ <title>Windows 7</title>
+ <para>
+ When attemping to set up a web folder through <guilabel>Add a Network Location</guilabel> or <guilabel>Map a Network Drive</guilabel> through <guilabel>My Computer</guilabel>, an error message stating <guilabel>The folder you entered does not appear to be valid. Please choose another</guilabel> or <guilabel>Windows cannot access … Check the spelling of the name. Otherwise, there might be …</guilabel> may be encountered. These errors may appear when you are using SSL or non-SSL.
+ </para>
+ <para>
+ To fix this, do as follows:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Go to Windows Registry Editor.
+ </para>
- </row>
+ </listitem>
+ <listitem>
+ <para>
+ Find a key: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\services\WebClient\Parameters\BasicAuthLevel .
+ </para>
- </tbody>
+ </listitem>
+ <listitem>
+ <para>
+ Change the value to 2.
+ </para>
+ </listitem>
+ </orderedlist>
+ </section>
+
+ <section id="sect-Reference_Guide-Restrictions-Microsoft_Office_2010">
+ <title>Microsoft Office 2010</title>
+ <para>
+ If you have:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Microsoft Office 2007/2010 applications installed on a client computer and...
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The client computer is connected to a web server configured for Basic authentication via...
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ A connection that does not use Secure Sockets Layer (SSL) and...
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You try to access an Office file that is stored on the remote server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You might experience the following symptoms when you try to open or to download the file:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The Office file does not open or download.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You do not receive a Basic authentication password prompt when you try to open or to download the file.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You do not receive an error message when you try to open the file. The associated Office application starts. However, the selected file does not open.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ <para>
+ These outcomes can be circumvented by enabling Basic authentication on the client machine.
+ </para>
- </tgroup>
+ <para>
+ To enable Basic authentication on the client computer, follow these steps:
+ </para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Click Start, type regedit in the Start Search box, and then press Enter.
+ </para>
- </table>
+ </listitem>
+ <listitem>
+ <para>
+ Locate and then click the following registry subkey:
+ </para>
+ <para>
+ HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-WebDAV-Restrictions">
- <title>Restrictions</title>
- <para>
- There are some restrictions for WebDAV in different Operating systems.
- </para>
- <section id="sect-Reference_Guide-Restrictions-Windows_7">
- <title>Windows 7</title>
- <para>
- When you try to set up a web folder by “adding a network location” or “map a network drive” through My Computer, you can get an error message saying that either “The folder you entered does not appear to be valid. Please choose another” or “Windows cannot access… Check the spelling of the name. Otherwise, there might be…”. These errors may appear when you are using SSL or non-SSL.
- </para>
- <para>
- To fix this, do as follows:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Go to Windows Registry Editor.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ On the Edit menu, point to New, and then click DWORD Value.
+ </para>
- </listitem>
- <listitem>
- <para>
- Find a key: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\services\WebClient\Parameters\BasicAuthLevel .
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Type BasicAuthLevel, and then press Enter.
+ </para>
- </listitem>
- <listitem>
- <para>
- Change the value to 2.
- </para>
+ </listitem>
+ <listitem>
+ <para>
+ Right-click BasicAuthLevel, and then click Modify.
+ </para>
- </listitem>
+ </listitem>
+ <listitem>
+ <para>
+ In the Value data box, type 2, and then click OK.
+ </para>
- </orderedlist>
+ </listitem>
- </section>
-
- <section id="sect-Reference_Guide-Restrictions-Microsoft_Office_2010">
- <title>Microsoft Office 2010</title>
- <para>
- If you have Microsoft Office 2010 applications or Microsoft Office 2007 applications installed on a client computer. From that client computer, you try to access an Office file that is stored on a web server that is configured for Basic authentication. The connection between your computer and the web server does not use Secure Sockets Layer (SSL). When you try to open or to download the file, you experience the following symptoms:
- <itemizedlist>
- <listitem>
- <para>
- The Office file does not open or download.
- </para>
+ </orderedlist>
- </listitem>
- <listitem>
- <para>
- You do not receive a Basic authentication password prompt when you try to open or to download the file.
- </para>
+ </section>
+
- </listitem>
- <listitem>
- <para>
- You do not receive an error message when you try to open the file. The associated Office application starts. However, the selected file does not open.
- </para>
+ </section>
- </listitem>
-
- </itemizedlist>
-
- </para>
- <para>
- To enable Basic authentication on the client computer, follow these steps:
- </para>
- <orderedlist>
- <listitem>
- <para>
- Click Start, type regedit in the Start Search box, and then press Enter.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Locate and then click the following registry subkey:
- </para>
- <para>
- HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Internet
- </para>
-
- </listitem>
- <listitem>
- <para>
- On the Edit menu, point to New, and then click DWORD Value.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Type BasicAuthLevel, and then press Enter.
- </para>
-
- </listitem>
- <listitem>
- <para>
- Right-click BasicAuthLevel, and then click Modify.
- </para>
-
- </listitem>
- <listitem>
- <para>
- In the Value data box, type 2, and then click OK.
- </para>
-
- </listitem>
-
- </orderedlist>
-
- </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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/query-handler-config.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-QueryHandler_configuration">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/repository-creation-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-RepositoryCreationService">
@@ -13,7 +13,7 @@
</section>
- <section id="sect-Reference_Guide-RepositoryCreationService-Dependencies">
+ <!--<section id="sect-Reference_Guide-RepositoryCreationService-Dependencies">
<title>Dependencies</title>
<para>
RepositoryConfigurationService depends to next components:
@@ -21,13 +21,13 @@
<itemizedlist>
<listitem>
<para>
- <!--<xref linkend="sect-Reference_Guide-Database_Creator" />--> DBCreator used to create new database for each unbinded datasource.
+ <xref linkend="sect-Reference_Guide-Database_Creator" /> DBCreator used to create new database for each unbinded datasource.
</para>
</listitem>
<listitem>
<para>
- <!--<xref linkend="sect-Reference_Guide-eXo_JCR_Backup_Service" /> --> BackupManager used to created repository from backup.
+ <xref linkend="sect-Reference_Guide-eXo_JCR_Backup_Service" /> BackupManager used to created repository from backup.
</para>
</listitem>
@@ -40,7 +40,7 @@
</itemizedlist>
- </section>
+ </section> -->
<section id="sect-Reference_Guide-RepositoryCreationService-How_it_works">
<title>How it works</title>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/aggregation-rule.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/aggregation-rule.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/aggregation-rule.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_ntfile_node_by_content_of_child_jcrcontent_node">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/and-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/and-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/and-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-AND_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/child-node-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/child-node-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/child-node-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Child_Node_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/date-property-comparison.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/date-property-comparison.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/date-property-comparison.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Date_Property_Comparison">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/escaping-like-statements.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/escaping-like-statements.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/escaping-like-statements.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Escaping_in_LIKE_Statements">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/exact-path-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/exact-path-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/exact-path-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Exact_Path_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-descendant-nodes.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-descendant-nodes.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-descendant-nodes.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_All_Descendant_Nodes">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-nodes.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-nodes.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-all-nodes.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_All_Nodes">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-mixin-type.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_Nodes_by_Mixin_Type">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-by-primary-type.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_Nodes_by_Primary_Type">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-nodes-case-insensitive.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_Nodes_in_a_Case_Insensitive_Way">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/find-similar-nodes.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Finding_Similar_Nodes">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-and-settings.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-and-settings.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-and-settings.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Fulltext_Search_And_Affecting_Settings">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-all-properties.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Fulltext_Search_by_All_Properties_in_Node">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-property.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-property.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/fulltext-search-by-property.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Fulltext_Search_by_Property">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/higlight.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/higlight.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/higlight.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,12 +1,12 @@
<?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-High_lighting_Result_of_Fulltext_Search">
<title>High-lighting Result of Fulltext Search</title>
<para>
- It's also called excerption (see Excerpt configuration in <xref linkend="sect-Reference_Guide-Search_Configuration" /> and in <xref linkend="sect-Reference_Guide-Searching_Repository_Content-High_lighting_Since_1.9" /> article).
+ It's also called excerption (see Excerpt configuration in <xref linkend="sect-Reference_Guide-Search_Configuration" /> article).
</para>
<para>
The goal of this query is to find words "eXo" and "implementation" with fulltext search and high-light this words in result value.
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/ignore-accent-symbols.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/ignore-accent-symbols.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/ignore-accent-symbols.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Ignoring_Accent_Symbols._New_Analyzer_Setting.">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/index-boost-value.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/index-boost-value.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/index-boost-value.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Changing_Priority_of_Node">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/jcr-query-usecases.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JCR_Query_Usecases">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/like-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/like-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/like-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-LIKE_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/multivalue-property-comparison.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/multivalue-property-comparison.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/multivalue-property-comparison.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Multivalue_Property_Comparison">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-name-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-name-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-name-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Node_Name_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-scope-index.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-scope-index.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/node-scope-index.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Removing_Nodes_Property_From_Indexing_Scope">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/not-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/not-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/not-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-NOT_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/offset-and-limit.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/offset-and-limit.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/offset-and-limit.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-SetOffset_and_SetLimit">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/or-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/or-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/or-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-OR_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-descendant.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-descendant.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-descendant.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Ordering_by_Descendant_Nodes_Property_XPath_only">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-path-or-name.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-path-or-name.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-path-or-name.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Ordering_by_Path_or_Name">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-property.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-property.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-property.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Sorting_Nodes_by_Property">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-score.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-score.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/order-by-score.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Ordering_by_Score">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-comparison.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-comparison.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-comparison.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Property_Comparison">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-existance-constraint.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-existance-constraint.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/property-existance-constraint.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Property_Existence_Constraint">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/regexp-indexing-rule.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/regexp-indexing-rule.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/regexp-indexing-rule.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Regular_Expression_as_Property_Name_in_Indexing_Rules">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/searching-repository-content.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Searching_Repository_Content">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/spell-checker.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Checking_the_spelling_of_Phrase">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/synonim-provider.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Searching_By_Synonym">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/tip-nodename-with-number.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/tip-nodename-with-number.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/searching/tip-nodename-with-number.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-XPath_queries_containing_node_names_starting_with_a_number">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/statistics.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-eXo_JCR_statistics">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/transaction-manager-lookup.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/transaction-manager-lookup.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr/transaction-manager-lookup.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-TransactionManagerLookup">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gatein.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gatein.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gatein.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-eXo_JCR_with_GateIn">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gtn/managed-datasources-under-jboss-as.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gtn/managed-datasources-under-jboss-as.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr-with-gtn/managed-datasources-under-jboss-as.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-How_to_use_AS_Managed_DataSource_under_JBoss_AS">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/jcr.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-eXoJCR">
@@ -31,7 +31,7 @@
<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/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" />
<xi:include href="jcr/lock-manager-config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="jcr/query-handler-config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
@@ -39,19 +39,19 @@
<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 -->
+ <!-- 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" /> -->
<!-- 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
+ <!-- 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" /> -->
+ <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" />
@@ -65,10 +65,11 @@
<!-- 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/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 -->
+ <!-- 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" />
</section>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/cache.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-eXo_Cache">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/component-plugin-priority.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/component-plugin-priority.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/component-plugin-priority.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Component_Plugin_Priority">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/container-configuration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Container_Configuration">
@@ -13,10 +13,6 @@
<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>
- <para>
- Confused? - You might be interested in the <xref linkend="sect-Reference_Guide-Service_Configuration_for_Beginners" /> article, which explains the basics.
- </para>
-
</section>
<section id="sect-Reference_Guide-Container_Configuration-Kernel_configuration_namespace">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/data-source-provider.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/data-source-provider.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/data-source-provider.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-The_data_source_provider">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/exo-container.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/exo-container.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/exo-container.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-ExoContainer_info">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/initialcontext-binder-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/initialcontext-binder-service.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/initialcontext-binder-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,12 +1,12 @@
<?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-Initial_Context_Binder">
<title>Initial Context Binder</title>
<para>
- Initial Context Binder is responsible for binding references at runtime, persisting in file and automatically rebinding. Java temp directory is used to persist references in bind-references.xml file by default. In case when need to define special file it can be done by add parameter to <xref linkend="sect-Reference_Guide-JNDI_naming" /> configuration.
+ Initial Context Binder is responsible for binding references at runtime, persisting in file and automatically rebinding. Java temp directory is used to persist references in bind-references.xml file by default. In case when need to define special file it can be done by add parameter to JNDI naming configuration.
</para>
<section id="sect-Reference_Guide-Initial_Context_Binder-API">
<title>API</title>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/inversion-of-control.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/inversion-of-control.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/inversion-of-control.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Inversion_Of_Control">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/jndi-naming.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/jndi-naming.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/jndi-naming.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JNDI_naming">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/job-scheduler-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Job_Schedule">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/kernel.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/kernel.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/kernel.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-eXo_Kernel">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/listener-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-ListenerService">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/logging.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/logging.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/logging.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Logs_configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/manageability.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/manageability.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/manageability.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Manageability">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/rpc-service.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/rpc-service.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/rpc-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-RPC_Service">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-for-beginners.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-for-beginners.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-for-beginners.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Service_Configuration_for_Beginners">
@@ -145,14 +145,6 @@
</section>
- <section id="sect-Reference_Guide-Service_Configuration_for_Beginners-Execution_Modes">
- <title>Execution Modes</title>
- <para>
- One important thing to understand concerns execution modes. There are only two modes:
- </para>
-
- </section>
-
<section id="sect-Reference_Guide-Service_Configuration_for_Beginners-Containers">
<title>Containers</title>
<para>
@@ -502,13 +494,6 @@
</section>
-
- <section id="sect-Reference_Guide-Service_Configuration_for_Beginners-Further_Reading">
- <title>Further Reading</title>
- <para>
- Do you feel an expert now? Not yet. Get a deeper look and read this <xref linkend="sect-Reference_Guide-Services_Wiring" /> article. You read so much about configuration, that you should wonder what the <xref linkend="sect-Reference_Guide-Container_Configuration-Kernel_configuration_namespace" /> looks like.
- </para>
- </section>
</section>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/service-configuration-in-detail.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,34 +1,11 @@
<?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-Service_Configuration_in_Detail">
<title>Service Configuration in Detail</title>
- <para>
- <emphasis role="bold">Related documents</emphasis>
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Service_Configuration_for_Beginners" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Services_Wiring" />
- </para>
-
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Container_Configuration-Kernel_configuration_namespace" />
- </para>
-
- </listitem>
-
- </itemizedlist>
+
<section id="sect-Reference_Guide-Service_Configuration_in_Detail-Objectives">
<title>Objectives</title>
<para>
@@ -37,14 +14,6 @@
</section>
- <section id="sect-Reference_Guide-Service_Configuration_in_Detail-Requirements">
- <title>Requirements</title>
- <para>
- You should have read and understood <xref linkend="sect-Reference_Guide-Service_Configuration_for_Beginners" />. Obviously you should know java and xml. We are working with examples that are created for teaching reasons only and you will see extracts from the eXo Products default installation. When reading this article, you do not forget that the terms service and component are interchangeable in eXo Products.
- </para>
-
- </section>
-
<section id="sect-Reference_Guide-Service_Configuration_in_Detail-Sample_Service">
<title>Sample Service</title>
<section id="sect-Reference_Guide-Sample_Service-Java_Class">
@@ -487,7 +456,7 @@
The External Plugin allows you to add configuration on the fly.
</para>
<para>
- As you have carefully read <xref linkend="sect-Reference_Guide-Service_Configuration_for_Beginners" /> you know that <emphasis role="bold">normally</emphasis> newer configurations always <emphasis role="bold">replaces</emphasis> previous configurations. An external plugin allows you to <emphasis role="bold">add</emphasis> configuration without replacing previous configurations.
+ <emphasis role="bold">Normally</emphasis> newer configurations always <emphasis role="bold">replaces</emphasis> previous configurations. An external plugin allows you to <emphasis role="bold">add</emphasis> configuration without replacing previous configurations.
</para>
<para>
That can be interesting if you adapt a service configuration for your project-specific needs (country, language, branch, project, etc.).
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/services-wiring.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/services-wiring.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/services-wiring.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,50 +1,50 @@
<?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-Services_Wiring">
- <title>Services Wiring</title>
- <section id="sect-Reference_Guide-Services_Wiring-Overview">
- <title>Overview</title>
- <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>
+ <title>Services Wiring</title>
+ <section id="sect-Reference_Guide-Services_Wiring-Overview">
+ <title>Overview</title>
+ <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>
- </section>
-
- <section id="sect-Reference_Guide-Services_Wiring-Portal_Instance">
- <title>Portal Instance</title>
- <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. For more information refer to <xref linkend="sect-Reference_Guide-Service_Configuration_for_Beginners" />.
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Services_Wiring-Portal_Instance">
+ <title>Portal Instance</title>
+ <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>
- </section>
-
- <section id="sect-Reference_Guide-Services_Wiring-Introduction_to_the_XML_schema_of_the_configuration.xml_file">
- <title>Introduction to the XML schema of the configuration.xml file</title>
- <para>
- After deploying you find the configuration.xml file in webapps/portal/WEB-INF/conf Use component registration tags. Let's look at the key tag that defines the interface and the type tag that defines the implementation. Note that the key tag is not mandatory, but it improves performance.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Services_Wiring-Introduction_to_the_XML_schema_of_the_configuration.xml_file">
+ <title>Introduction to the XML schema of the configuration.xml file</title>
+ <para>
+ After deploying you find the configuration.xml file in webapps/portal/WEB-INF/conf Use component registration tags. Let's look at the key tag that defines the interface and the type tag that defines the implementation. Note that the key tag is not mandatory, but it improves performance.
+ </para>
+
<programlisting language="XML" role="XML"><!-- Portlet container hooks -->
<component>
<key>org.exoplatform.services.portletcontainer.persistence.PortletPreferencesPersister</key>
<type>org.exoplatform.services.portal.impl.PortletPreferencesPersisterImpl</type>
</component></programlisting>
- <para>
- Register plugins that can act as listeners or external plugin to bundle some plugin classes in other jar modules. The usual example is the hibernate service to which we can add hbm mapping files even if those are deployed in an other maven artifact.
- </para>
-
+ <para>
+ Register plugins that can act as listeners or external plugin to bundle some plugin classes in other jar modules. The usual example is the hibernate service to which we can add hbm mapping files even if those are deployed in an other maven artifact.
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<target-component>org.exoplatform.services.database.HibernateService</target-component>
<component-plugin>
@@ -61,16 +61,16 @@
</init-params>
</component-plugin>
</external-component-plugins></programlisting>
- <para>
- In that sample we target the HibernateService and we will call its addPlugin() method with an argument of the type AddHibernateMappingPlugin. That object will first have been filled with the init parameters.
- </para>
- <para>
- Therefore, it is possible to define services that will be able to receive plugins without implementing any framework interface.
- </para>
- <para>
- Another example of use is the case of listeners as in the following code where a listener is added to the OrganisationService and will be called each time a new user is created:
- </para>
-
+ <para>
+ In that sample we target the HibernateService and we will call its addPlugin() method with an argument of the type AddHibernateMappingPlugin. That object will first have been filled with the init parameters.
+ </para>
+ <para>
+ Therefore, it is possible to define services that will be able to receive plugins without implementing any framework interface.
+ </para>
+ <para>
+ Another example of use is the case of listeners as in the following code where a listener is added to the OrganisationService and will be called each time a new user is created:
+ </para>
+
<programlisting language="XML" role="XML"><external-component-plugins>
<target-component>org.exoplatform.services.organization.OrganizationService</target-component>
<component-plugin>
@@ -100,41 +100,41 @@
</init-params>
</component-plugin>
...</programlisting>
- <para>
- In the previous XML configuration, we refer the organization service and we will call its method addListenerPlugin with an object of type PortalUserEventListenerImpl. Each time a new user will be created (apart the predefined ones in the list above) methods of the PortalUserEventListenerImpl will be called by the service.
- </para>
- <para>
- As you can see, there are several types of init parameters, from a simple value param which binds a key with a value to a more complex object mapping that fills a JavaBean with the info defined in the XML.
- </para>
- <para>
- Many other examples exist such as for the Scheduler Service where you can add a job with a simple XML configuration or the JCR Service where you can add a NodeType from your own configuration.xml file.
- </para>
+ <para>
+ In the previous XML configuration, we refer the organization service and we will call its method addListenerPlugin with an object of type PortalUserEventListenerImpl. Each time a new user will be created (apart the predefined ones in the list above) methods of the PortalUserEventListenerImpl will be called by the service.
+ </para>
+ <para>
+ As you can see, there are several types of init parameters, from a simple value param which binds a key with a value to a more complex object mapping that fills a JavaBean with the info defined in the XML.
+ </para>
+ <para>
+ Many other examples exist such as for the Scheduler Service where you can add a job with a simple XML configuration or the JCR Service where you can add a NodeType from your own configuration.xml file.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-Services_Wiring-Configuration_retrieval_and_log_of_this_retrieval">
- <title>Configuration retrieval and log of this retrieval</title>
- <para>
- When the RootContainer is starting the configuration retrieval looks for configuration files in each jar available from the classpath at jar path /conf/portal/configuration.xml and from each war at path /WEB-INF/conf/configuration.xml. These configurations are added to a set. If a component was configured in a previous jar and the current jar contains a new configuration of that component the latest (from the current jar) will replace the previous configuration.
- </para>
- <para>
- After the processing of all configurations available on the system the container will initialize it and start each component in order of the dependency injection (DI).
- </para>
- <para>
- So, in general the user/developer should be careful when configuring the same components in different configuration files. It's recommended to configure service in its own jar only. Or, in case of a portal configuration, strictly reconfigure the component in portal files.
- </para>
- <para>
- But, there are components that can be (or should be) configured more than one time. This depends on the business logic of the component. A component may initialize the same resource (shared with other players) or may add a particular object to a set of objects (shared with other players too). In the first case it's critical who will be the last, i.e. whose configuration will be used. In second case it doesn't matter who is the first and who is the last (if the parameter objects are independent).
- </para>
- <para>
- In case of problems with configuration of component it's important to know from which jar/war it comes. For that purpose user/developer can set JVM system property <emphasis role="bold">org.exoplatform.container.configuration.debug</emphasis>, in command line:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Services_Wiring-Configuration_retrieval_and_log_of_this_retrieval">
+ <title>Configuration retrieval and log of this retrieval</title>
+ <para>
+ When the RootContainer is starting the configuration retrieval looks for configuration files in each jar available from the classpath at jar path /conf/portal/configuration.xml and from each war at path /WEB-INF/conf/configuration.xml. These configurations are added to a set. If a component was configured in a previous jar and the current jar contains a new configuration of that component the latest (from the current jar) will replace the previous configuration.
+ </para>
+ <para>
+ After the processing of all configurations available on the system the container will initialize it and start each component in order of the dependency injection (DI).
+ </para>
+ <para>
+ So, in general the user/developer should be careful when configuring the same components in different configuration files. It's recommended to configure service in its own jar only. Or, in case of a portal configuration, strictly reconfigure the component in portal files.
+ </para>
+ <para>
+ But, there are components that can be (or should be) configured more than one time. This depends on the business logic of the component. A component may initialize the same resource (shared with other players) or may add a particular object to a set of objects (shared with other players too). In the first case it's critical who will be the last, i.e. whose configuration will be used. In second case it doesn't matter who is the first and who is the last (if the parameter objects are independent).
+ </para>
+ <para>
+ In case of problems with configuration of component it's important to know from which jar/war it comes. For that purpose user/developer can set JVM system property <emphasis role="bold">org.exoplatform.container.configuration.debug</emphasis>, in command line:
+ </para>
+
<programlisting>java -Dorg.exoplatform.container.configuration.debug ...</programlisting>
- <para>
- With that property container configuration manager will report configuration adding process to the standard output (System.out).
- </para>
-
+ <para>
+ With that property container configuration manager will report configuration adding process to the standard output (System.out).
+ </para>
+
<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
@@ -145,7 +145,7 @@
import jndi:/localhost/portal/WEB-INF/conf/jcr/jcr-configuration.xml
......</programlisting>
- </section>
+ </section>
</section>
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/transaction-service.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-TransactionService">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel/understanding-listnerservice.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,61 +1,38 @@
<?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-Understanding_the_ListenerService">
- <title>Understanding the ListenerService</title>
- <para>
- <emphasis role="bold">Related documents</emphasis>
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Service_Configuration_for_Beginners" />
- </para>
+ <title>Understanding the ListenerService</title>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Service_Configuration_in_Detail" />
- </para>
+ <section id="sect-Reference_Guide-Understanding_the_ListenerService-Objectives">
+ <title>Objectives</title>
+ <para>
+ This article will first describe how the ListenerService works and then it will show you how to configure the ListenerService.
+ </para>
- </listitem>
- <listitem>
- <para>
- <xref linkend="sect-Reference_Guide-Container_Configuration" />
- </para>
+ </section>
+
+ <section id="sect-Reference_Guide-Understanding_the_ListenerService-What_is_the_ListenerService_">
+ <title>What is the ListenerService ?</title>
+ <para>
+ Inside eXo, an event mechanism allows to trigger and listen to events under specific conditions. This mechanism is used in several places in eXo such as login/logout time.
+ </para>
- </listitem>
-
- </itemizedlist>
- <section id="sect-Reference_Guide-Understanding_the_ListenerService-Objectives">
- <title>Objectives</title>
- <para>
- This article will first describe how the ListenerService works and then it will show you how to configure the ListenerService.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Understanding_the_ListenerService-What_is_the_ListenerService_">
- <title>What is the ListenerService ?</title>
- <para>
- Inside eXo, an event mechanism allows to trigger and listen to events under specific conditions. This mechanism is used in several places in eXo such as login/logout time.
- </para>
-
- </section>
-
- <section id="sect-Reference_Guide-Understanding_the_ListenerService-How_does_it_work">
- <title>How does it work?</title>
- <para>
- Listeners must be subclasses of org.exoplatform.services.listener.Listener registered by the ListenerService.
- </para>
- <section id="sect-Reference_Guide-How_does_it_work-Registering_a_listener">
- <title>Registering a listener</title>
- <para>
- To register a listener, you need to call the addListener() method.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Understanding_the_ListenerService-How_does_it_work">
+ <title>How does it work?</title>
+ <para>
+ Listeners must be subclasses of org.exoplatform.services.listener.Listener registered by the ListenerService.
+ </para>
+ <section id="sect-Reference_Guide-How_does_it_work-Registering_a_listener">
+ <title>Registering a listener</title>
+ <para>
+ To register a listener, you need to call the addListener() method.
+ </para>
+
<programlisting language="Java" role="Java">/**
* This method is used to register a listener with the service. The method
* should: 1. Check to see if there is a list of listener with the listener
@@ -67,18 +44,18 @@
public void addListener(Listener listener) {
...
}</programlisting>
- <para>
- By convention, we use the listener name as the name of the event to listen to.
- </para>
+ <para>
+ By convention, we use the listener name as the name of the event to listen to.
+ </para>
- </section>
-
- <section id="sect-Reference_Guide-How_does_it_work-Triggering_an_event">
- <title>Triggering an event</title>
- <para>
- To trigger an event, an application can call one of the broadcast() methods of ListenerService.
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-How_does_it_work-Triggering_an_event">
+ <title>Triggering an event</title>
+ <para>
+ To trigger an event, an application can call one of the broadcast() methods of ListenerService.
+ </para>
+
<programlisting language="Java" role="Java">/**
* This method is used to broadcast an event. This method should: 1. Check if
* there is a list of listener that listen to the event name. 2. If there is a
@@ -112,13 +89,13 @@
public <T extends Event> void broadcast(T event) throws Exception {
...
}</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.
- </para>
- <para>
- Each listener is a class that extends org.exoplatform.services.listener.Listener, as you can see below:
- </para>
-
+ <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.
+ </para>
+ <para>
+ Each listener is a class that extends org.exoplatform.services.listener.Listener, as you can see below:
+ </para>
+
<programlisting language="Java" role="Java">public abstract class Listener<S, D> extends BaseComponentPlugin {
/**
@@ -127,16 +104,16 @@
*/
public abstract void onEvent(Event<S, D> event) throws Exception;
}</programlisting>
- <warning>
- <para>
- As you can see we use generics to limit the source of the event to the type 'S' and the data of the event to the type 'D', so we expect that listeners implement the method onEvent() with the corresponding types
- </para>
+ <warning>
+ <para>
+ As you can see we use generics to limit the source of the event to the type 'S' and the data of the event to the type 'D', so we expect that listeners implement the method onEvent() with the corresponding types
+ </para>
- </warning>
- <para>
- Each listener is also a ComponentPlugin with a name and a description, in other words, the name of the listener will be the name given in the configuration file, for more details see the next section.
- </para>
-
+ </warning>
+ <para>
+ Each listener is also a ComponentPlugin with a name and a description, in other words, the name of the listener will be the name given in the configuration file, for more details see the next section.
+ </para>
+
<programlisting language="Java" role="Java">public interface ComponentPlugin {
public String getName();
@@ -147,17 +124,17 @@
public void setDescription(String description);
}</programlisting>
- </section>
-
+ </section>
+
- </section>
-
- <section id="sect-Reference_Guide-Understanding_the_ListenerService-How_to_configure_a_listener">
- <title>How to configure a listener?</title>
- <para>
- All listeners are in fact a ComponentPlugin so it must be configured as below:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Understanding_the_ListenerService-How_to_configure_a_listener">
+ <title>How to configure a listener?</title>
+ <para>
+ All listeners are in fact a ComponentPlugin so it must be configured as below:
+ </para>
+
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1"?>
<configuration>
...
@@ -177,22 +154,22 @@
</external-component-plugins>
</configuration></programlisting>
- </section>
-
- <section id="sect-Reference_Guide-Understanding_the_ListenerService-Concrete_Example">
- <title>Concrete Example</title>
- <para>
- The org.exoplatform.services.security.ConversationRegistry uses the ListenerService to notify that a user has just signed in or just left the application. For example, when a new user signs in, the following code is called:
- </para>
-
+ </section>
+
+ <section id="sect-Reference_Guide-Understanding_the_ListenerService-Concrete_Example">
+ <title>Concrete Example</title>
+ <para>
+ The org.exoplatform.services.security.ConversationRegistry uses the ListenerService to notify that a user has just signed in or just left the application. For example, when a new user signs in, the following code is called:
+ </para>
+
<programlisting language="Java" role="Java">listenerService.broadcast("exo.core.security.ConversationRegistry.register", this, state);</programlisting>
- <para>
- This code will in fact create a new Event which name is "exo.core.security.ConversationRegistry.register", which source is the current instance of ConversationRegistry and which data is the given state. The ListenerService will call the method onEvent(Event<ConversationRegistry, ConversationState> event) on all the listeners which name is "exo.core.security.ConversationRegistry.register".
- </para>
- <para>
- In the example below, we define a Listener that will listen the event "exo.core.security.ConversationRegistry.register".
- </para>
-
+ <para>
+ This code will in fact create a new Event which name is "exo.core.security.ConversationRegistry.register", which source is the current instance of ConversationRegistry and which data is the given state. The ListenerService will call the method onEvent(Event<ConversationRegistry, ConversationState> event) on all the listeners which name is "exo.core.security.ConversationRegistry.register".
+ </para>
+ <para>
+ In the example below, we define a Listener that will listen the event "exo.core.security.ConversationRegistry.register".
+ </para>
+
<programlisting language="XML" role="XML"><?xml version="1.0" encoding="ISO-8859-1"?>
<configuration>
...
@@ -213,7 +190,7 @@
</configuration>
...</programlisting>
- </section>
+ </section>
</section>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR/kernel.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,29 +1,29 @@
<?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-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" />
- <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" />
+ <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.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced/eXoJCR.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,12 +1,12 @@
<?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-eXo_JCR">
<title>eXo JCR</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/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" />
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Advanced.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE part 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;
]>
<part id="part-Reference_Guide-Advanced_Development">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AccessingUserProfile.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AccessingUserProfile.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AccessingUserProfile.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Accessing_User_Profile">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AuthenticationTokenConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AuthenticationTokenConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/AuthenticationTokenConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Authentication_Token_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/BackendConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-PicketLink_IDM_integration">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/LDAP.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-LDAP_Integration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/OrganizationAPI.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/OrganizationAPI.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/OrganizationAPI.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Organization_API">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/PredefinedUserConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/PredefinedUserConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/PredefinedUserConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Predefined_User_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-SSO_Single_Sign_On">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Authentication_and_Identity">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/DatabaseConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/DatabaseConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/DatabaseConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Database_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/EMailServiceConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/EMailServiceConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration/EMailServiceConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-E_Mail_Service_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Configuration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/Gadgets.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/Gadgets.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/Gadgets.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Concept">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment/SetupGadgetServer.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Advanced_Gadget_Administration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/GadgetDevelopment.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Gadgets">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Introduction.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Introduction.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/Introduction.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Introduction">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Default_Portal_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalNavigationConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalPermissionConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalPermissionConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/DefaultPortalPermissionConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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_Default_Permission_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/InternationalizationConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/InternationalizationConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/InternationalizationConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Internationalization_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Javascript_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptInterApplicationCommunication.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptInterApplicationCommunication.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/JavascriptInterApplicationCommunication.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-JavaScript_Inter_Application_Communication">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/LocalizationConfiguration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/LocalizationConfiguration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/LocalizationConfiguration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Localization_Configuration">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/PortalLifecycle.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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_Life_cycle">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/RTLFramework.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/RTLFramework.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/RTLFramework.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Right_To_Left_RTL_Framework">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/Skinning.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Skinning_the_Portal">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/XMLResourceBundles.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/XMLResourceBundles.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment/XMLResourceBundles.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-XML_Resources_Bundles">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortalDevelopment.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE part 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;
]>
<part id="part-Reference_Guide-Portal_Development">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Global_Portlet.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Global_Portlet.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Global_Portlet.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Global_Portlet_Data">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/configuration.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Bridge_Configuration">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/gettingstarted.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/gettingstarted.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/gettingstarted.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Getting_started_with_JBoss_Portlet_Bridge">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/overview.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/overview.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/overview.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-JBoss_Portlet_Bridge_Overview">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge/portlet_development.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Reference_Guide_eXo_JCR_1.14.ent">
%BOOK_ENTITIES;
]>
<section id="sect-Reference_Guide-Developing_Portlets_with_the_Bridge">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/PortletBridge.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Building_JSF_Portlets">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Standard.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Standard.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment/Standard.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Portlet_Primer">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/PortletDevelopment.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE part 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;
]>
<part id="part-Reference_Guide-Portlet_development">
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml 2011-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/WSRP.xml 2011-10-03 04:22:11 UTC (rev 7593)
@@ -1,6 +1,6 @@
<?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-Web_Services_for_Remote_Portlets_WSRP">
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-10-03 03:47:26 UTC (rev 7592)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/publican.cfg 2011-10-03 04:22:11 UTC (rev 7593)
@@ -9,4 +9,5 @@
brand: JBoss
debug: 1
type: Book
+toc_section_depth: 10
13 years, 2 months
gatein SVN: r7592 - portal/trunk.
by do-not-reply@jboss.org
Author: kien_nguyen
Date: 2011-10-02 23:47:26 -0400 (Sun, 02 Oct 2011)
New Revision: 7592
Modified:
portal/trunk/pom.xml
Log:
GTNPORTAL-2142 Upgrade to Shindig 2.0.2-Beta03
Modified: portal/trunk/pom.xml
===================================================================
--- portal/trunk/pom.xml 2011-10-03 03:22:11 UTC (rev 7591)
+++ portal/trunk/pom.xml 2011-10-03 03:47:26 UTC (rev 7592)
@@ -41,7 +41,7 @@
<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.exoplatform.jcr.version>1.14.1-GA</org.exoplatform.jcr.version>
- <org.shindig.version>2.0.2-Beta02</org.shindig.version>
+ <org.shindig.version>2.0.2-Beta03</org.shindig.version>
<nl.captcha.simplecaptcha.version>1.1.1-GA-Patch01</nl.captcha.simplecaptcha.version>
<org.gatein.common.version>2.0.4-Beta03</org.gatein.common.version>
<org.gatein.wci.version>2.1.0-Beta06</org.gatein.wci.version>
13 years, 2 months
gatein SVN: r7591 - in portal/trunk: web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIPortalComponent and 8 other directories.
by do-not-reply@jboss.org
Author: phuong_vu
Date: 2011-10-02 23:22:11 -0400 (Sun, 02 Oct 2011)
New Revision: 7591
Modified:
portal/trunk/web/eXoResources/src/main/webapp/javascript/eXo/portal/UIPortal.js
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIPortalComponent/Stylesheet.css
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UITabContainer/Stylesheet.css
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/application/UIPortlet.gtmpl
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/container/UITabContainer.gtmpl
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/portal/UIPortalComposerContent.gtmpl
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletForm.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIColumnContainer.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIContainerForm.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UITabContainer.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponent.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java
Log:
GTNPORTAL-2113 Edit control of UITabContainer is not shown
Modified: portal/trunk/web/eXoResources/src/main/webapp/javascript/eXo/portal/UIPortal.js
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/javascript/eXo/portal/UIPortal.js 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/web/eXoResources/src/main/webapp/javascript/eXo/portal/UIPortal.js 2011-10-03 03:22:11 UTC (rev 7591)
@@ -233,156 +233,12 @@
var uiWorkingWorkspace = document.getElementById("UIWorkingWorkspace") ;
return new UIComponent(eXo.core.DOMUtil.findFirstDescendantByClass(uiWorkingWorkspace, "div", "UIPortal"));
};
-/**
- * Change page mode from view mode to layout mode
- * @param {Object} uicomponent component contains this view (layout)
- * @param {boolean} swapContent indicate changing content or not
- */
-UIPortal.prototype.switchViewModeToLayoutMode = function(uicomponent, swapContent) {
- var layoutBlock = uicomponent.getLayoutBlock() ;
- if(!layoutBlock || layoutBlock.style.display == 'block') return ;
- var viewBlock = uicomponent.getViewBlock() ;
- if(swapContent && viewBlock) {
- var contentNode = eXo.core.DOMUtil.findDescendantById(viewBlock, uicomponent.getId()) ;
- if(contentNode != null) {
- layoutBlock.innerHTML = "";
- layoutBlock.appendChild(contentNode) ;
- }
- }
- try {
- layoutBlock.style.display = "block" ;
- viewBlock.style.display = "none" ;
- } catch (err) {}
-};
-/**
- * Change page mode from layout mode to view mode
- * @param {Object} uicomponent component contains this layout (view)
- * @param {boolean} swapContent indicate changing content or not
- */
-UIPortal.prototype.switchLayoutModeToViewMode = function(uicomponent, swapContent) {
- var viewBlock = uicomponent.getViewBlock() ;
- if(!viewBlock || viewBlock.style.display == 'block') return ;
- var layoutBlock = uicomponent.getLayoutBlock() ;
- if(swapContent && layoutBlock) {
- var contentNode = eXo.core.DOMUtil.findDescendantById(layoutBlock, uicomponent.getId()) ;
- if(contentNode != null) {
- viewBlock.innerHTML = "";
- viewBlock.appendChild(contentNode) ;
- }
- }
- try{
- viewBlock.style.display = "block" ;
- layoutBlock.style.display = "none" ;
- } catch(err) {}
-} ;
-UIPortal.prototype.switchMode = function(elemtClicked) {
- if(elemtClicked.className == "Icon PreviewIcon") {
- elemtClicked.className = "Icon LayoutModeIcon" ;
- this.showViewMode() ;
- this.showMaskLayer() ;
-// eXo.core.Browser.onScrollCallback("", eXo.portal.UIPortal.showMaskLayer()) ;
- } else {
- this.hideMaskLayer() ;
- elemtClicked.className = "Icon PreviewIcon" ;
- this.showLayoutModeForPortal() ;
- }
- /*
- * minh.js.exo
- * fix bug portal 1757;
- */
- //eXo.portal.PortalDragDrop.fixCss();
-} ;
-
-//TODO: No longer use. Prepare to remove
-//UIPortal.prototype.switchPortalMode = function(elemtClicked) {
-// if(eXo.portal.portalMode%2 == 0) {
-// this.showViewMode() ;
-// } else {
-// this.showLayoutModeForPortal() ;
-// }
-//};
-/**
- * Switch mode of page
- * @param {Object} elemtClicked clicked element
- */
-UIPortal.prototype.switchModeForPage = function(elemtClicked) {
- var layoutMode = this.showViewLayoutModeForPage();
- if(layoutMode == 1) {
- elemtClicked.className = "Icon PagePreviewIcon" ;
- this.hideMaskLayer() ;
- } else if(layoutMode == 0) {
- elemtClicked.className = "Icon PageLayoutModeIcon" ;
- this.showMaskLayer() ;
- }
-} ;
-/**
- * Show area for dnd into this UIComponent
- * @param {Object} uiComponent component contains control block
- * @param {boolean} flag display (blocking) or hide control block
- */
-UIPortal.prototype.showUIComponentControl = function(uicomponent, flag) {
- var controlBlock = uicomponent.getControlBlock() ;
- if(!controlBlock) return ;
- var clickObject = eXo.core.DOMUtil.findFirstDescendantByClass(controlBlock, "div", "DragControlArea") ;
-// if(flag) {
-// clickObject.onmousedown = eXo.portal.PortalDragDrop.init ;
-// controlBlock.style.display = 'block' ;
-// } else {
-// controlBlock.onmousedown = null ;
-// controlBlock.style.display = 'none' ;
-// }
-};
-/**
- * Change page to layout view
- * @return layoutMode type of view mode (0, 1)
- */
-UIPortal.prototype.showViewLayoutModeForPage = function() {
- /*
- * minh.js.exo;
- */
- var layoutMode = -1;
- var container = this.getUIContainers() ;
- var portlet = this.getUIPortletsInUIPage() ;
-
- if(portlet.length > 0 && container.length >= 0) {
-
- for(var i = 0; i < container.length; i++) {
- var viewBlock = container[i].getViewBlock() ;
- if(viewBlock.style.display == 'block') {
- this.switchViewModeToLayoutMode(container[i], true) ;
- this.showUIComponentControl(container[i], this.component == 'UIContainer') ;
- if(layoutMode == -1) layoutMode = 1;
- } else if(viewBlock.style.display == 'none') {
- this.switchLayoutModeToViewMode(container[i], true) ;
- this.showUIComponentControl(container[i], false) ;
- if(layoutMode == -1) layoutMode = 0;
- }
- }
- for(var i = 0; i < portlet.length; i++) {
- var viewBlock = portlet[i].getViewBlock() ;
- if(viewBlock.style.display == 'block') {
- this.switchViewModeToLayoutMode(portlet[i], false) ;
- this.showUIComponentControl(portlet[i], this.component == 'UIPortlet') ;
- if(layoutMode == -1) layoutMode = 1;
- } else if(viewBlock.style.display == 'none') {
- this.switchLayoutModeToViewMode(portlet[i], false) ;
- this.showUIComponentControl(portlet[i], false) ;
- if(layoutMode == -1) layoutMode = 0;
- }
- }
-
- }
-
- return layoutMode;
-};
-
/**Repaired: by Vu Duy Tu 25/04/07**/
-UIPortal.prototype.showLayoutModeForPage = function(control) {
+UIPortal.prototype.showLayoutModeForPage = function() {
var uiPage = eXo.core.DOMUtil.findFirstDescendantByClass(document.body, "div", "UIPage") ;
if(uiPage == null) return;
var viewPage = eXo.core.DOMUtil.findFirstDescendantByClass(uiPage, "div", "VIEW-PAGE") ;
- var uiPageDesktop = document.getElementById("UIPageDesktop") ;
var uiPortalApplication = document.getElementById("UIPortalApplication");
if(uiPortalApplication.className != "Vista") {
viewPage.style.border = "solid 3px #dadada" ;
@@ -392,121 +248,40 @@
viewPage.style.paddingRight = "0px";
viewPage.style.paddingBottom = "50px";
viewPage.style.paddingLeft = "0px";
-
- if(control) this.component = control ;
- var container = this.getUIContainers() ;
- for(var i = 0; i < container.length; i++) {
- this.switchViewModeToLayoutMode(container[i], true) ;
- this.showUIComponentControl(container[i], this.component == 'UIContainer') ;
- var uiContainer = eXo.core.DOMUtil.findFirstDescendantByClass(viewPage, "div", "UIContainer") ;
- if(uiContainer != null) {
- viewPage.style.border = "none" ;
- viewPage.style.paddingTop = "5px" ;
- viewPage.style.paddingRight = "5px";
- viewPage.style.paddingBottom = "5px";
- viewPage.style.paddingLeft = "5px";
- }
- }
-
- var portlet = this.getUIPortletsInUIPage() ;
- for(var i = 0; i < portlet.length; i++) {
- this.switchViewModeToLayoutMode(portlet[i], false) ;
- this.showUIComponentControl(portlet[i], this.component == 'UIPortlet') ;
-
- var uiPortlet = eXo.core.DOMUtil.findFirstDescendantByClass(viewPage, "div", "UIPortlet") ;
- if(uiPortlet != null) {
- viewPage.style.border = "none" ;
- viewPage.style.paddingTop = "5px" ;
- viewPage.style.paddingRight = "5px" ;
- viewPage.style.paddingBottom = "5px" ;
- viewPage.style.paddingLeft = "5px" ;
- }
- }
+ var uiContainer = eXo.core.DOMUtil.findFirstDescendantByClass(viewPage, "div", "UIContainer") ;
+ var uiPortlet = eXo.core.DOMUtil.findFirstDescendantByClass(viewPage, "div", "UIPortlet") ;
+ if(uiContainer != null || uiPortlet != null) {
+ viewPage.style.border = "none" ;
+ viewPage.style.paddingTop = "5px" ;
+ viewPage.style.paddingRight = "5px";
+ viewPage.style.paddingBottom = "5px";
+ viewPage.style.paddingLeft = "5px";
+ }
};
-UIPortal.prototype.showViewMode = function() {
- var uiWorkingWS = document.getElementById("UIWorkingWorkspace");
- var isRTL = eXo.core.I18n.isRT();
- var portal = this.getUIPortal() ;
- this.switchLayoutModeToViewMode(portal, true) ;
- this.showUIComponentControl(portal, false) ;
-
- var uiPageDesktop = document.getElementById("UIPageDesktop") ;
+UIPortal.prototype.showViewMode = function() {
var pageBody = this.getUIPageBody() ;
- if(!uiPageDesktop) {
- this.switchLayoutModeToViewMode(pageBody, true) ;
- this.showUIComponentControl(pageBody, false) ;
- }
+ var container = this.getUIContainers() ;
+ var portlet = this.getUIPortlets() ;
- var container = this.getUIContainers() ;
- for(var i = 0; i < container.length; i++) {
- this.switchLayoutModeToViewMode(container[i], false) ;
- this.showUIComponentControl(container[i], eXo.portal.portalMode > 2) ;
- }
-
- var portlet = this.getUIPortlets() ;
- for(var i = 0; i < portlet.length; i++) {
- this.switchLayoutModeToViewMode(portlet[i], false) ;
- this.showUIComponentControl(portlet[i], true) ;
- var component = portlet[i].getUIComponentBlock();
- var mask = eXo.core.DOMUtil.findFirstDescendantByClass(component, "div", "UIPortletMask");
- if(eXo.portal.portalMode && mask && !eXo.core.DOMUtil.hasAncestor(portlet[i].getElement(), pageBody.getElement())) {
- mask.style.display = "block";
- mask.style.height = component.offsetHeight + "px";
- mask.style.width = component.offsetWidth + "px";
- mask.style.top = -component.offsetHeight + "px";
- } else if(mask) {
- mask.style.display = "none";
- }
- }
-
- //mask for pagebody
- if(!uiPageDesktop) {
- if(container.length == 0 && portlet.length == 0) {
+ if(container.length == 0 && portlet.length == 0) {
var pageIdElemt = document.getElementById("UIPage");
var viewPage = eXo.core.DOMUtil.findAncestorByClass(pageIdElemt, "VIEW-PAGE");
viewPage.style.paddingTop = "50px" ;
- viewPage.style.paddingRight = "0px";
- viewPage.style.paddingBottom = "50px";
- viewPage.style.paddingLeft = "0px";
+ viewPage.style.paddingRight = "0px";
+ viewPage.style.paddingBottom = "50px";
+ viewPage.style.paddingLeft = "0px";
}
var pageBodyBlock = pageBody.getUIComponentBlock();
var mask = eXo.core.DOMUtil.findFirstDescendantByClass(pageBodyBlock, "div", "UIPageBodyMask");
if(mask) {
mask.style.top = - pageBodyBlock.offsetHeight + "px";
- mask.style.height = pageBodyBlock.offsetHeight + "px";
- mask.style.width = pageBodyBlock.offsetWidth + "px";
+ mask.style.height = pageBodyBlock.offsetHeight + "px";
+ mask.style.width = pageBodyBlock.offsetWidth + "px";
}
- }
};
-UIPortal.prototype.showLayoutModeForPortal = function(control) {
- if(control) this.component = control;
- var portal = this.getUIPortal() ;
- this.switchViewModeToLayoutMode(portal, true) ;
- this.showUIComponentControl(portal, this.component == 'UIPortal') ;
-
- var pageBody = this.getUIPageBody() ;
- this.switchViewModeToLayoutMode(pageBody, false) ;
- this.showUIComponentControl(pageBody, this.component == 'UIPageBody') ;
- var pageBodyBlock = pageBody.getUIComponentBlock();
- var mask = eXo.core.DOMUtil.findFirstDescendantByClass(pageBodyBlock, "div", "UIPageBodyMask");
- if(mask) mask.style.display = "none";
-
- var container = this.getUIContainers() ;
- for(var i = 0; i < container.length; i++) {
- this.switchViewModeToLayoutMode(container[i], false) ;
- this.showUIComponentControl(container[i], true) ;
- }
-
- var portlet = this.getUIPortlets() ;
- for(var i = 0; i < portlet.length; i++) {
- this.switchViewModeToLayoutMode(portlet[i], false) ;
- this.showUIComponentControl(portlet[i], this.component == 'UIPortlet') ;
- }
-} ;
-
/**
* Return the closest container of the element.
* It might be one of these : UIPortlet, UIContainer, UIPageBody, UIPortal
@@ -526,47 +301,8 @@
return null ;
};
-/**
- * Display Mask layer infront of page's surface
- */
-UIPortal.prototype.showMaskLayer = function() {
- var uiPortalApplication = document.getElementById("UIPortalApplication") ;
- var object = document.createElement("div") ;
- object.className = "PreviewMode" ;
- object.style.display = "none" ;
- uiPortalApplication.appendChild(object) ;
- this.maskLayer = eXo.core.UIMaskLayer.createMask("UIPortalApplication", object, 30, "TOP-RIGHT") ;
- this.maskLayer.title = this.previewTitle ;
- this.maskLayer.style.cursor = "pointer" ;
- this.maskLayer.onclick = function() {
- var layoutModeIcon = eXo.core.DOMUtil.findFirstDescendantByClass(uiPortalApplication, "a", "LayoutModeIcon") ;
- var pageLayoutModeIcon = eXo.core.DOMUtil.findFirstDescendantByClass(uiPortalApplication, "a", "PageLayoutModeIcon") ;
-
- if(layoutModeIcon) {
- eXo.portal.UIPortal.switchMode(layoutModeIcon) ;
- }
-
- if(pageLayoutModeIcon) {
- eXo.portal.UIPortal.switchModeForPage(pageLayoutModeIcon) ;
- }
- }
- this.maskLayer.style.zIndex = parseInt(object.style.zIndex) + 1 ;
- eXo.core.Browser.addOnScrollCallback("3743892", eXo.core.UIMaskLayer.setPosition) ;
-} ;
/**
- * Hide (remove) mask layer from page's surface
- */
-UIPortal.prototype.hideMaskLayer = function() {
- if(this.maskLayer) {
- var uiPortalApplication = document.getElementById("UIPortalApplication") ;
- eXo.core.UIMaskLayer.removeMask(this.maskLayer) ;
- this.maskLayer = null ;
- var maskObject = eXo.core.DOMUtil.findFirstDescendantByClass(uiPortalApplication, "div", "PreviewMode") ;
- uiPortalApplication.removeChild(maskObject) ;
- }
-} ;
-/**
* Change skin of Portal
* @param url
*/
@@ -657,6 +393,22 @@
ajaxAsyncGetRequest(requestStr);
};
+UIPortal.prototype.composerTabChanged = function(tabId) {
+ var toolPanel = document.getElementById("UIPortalToolPanel");
+ if (!tabId || !toolPanel) return;
+
+ var removeCls, addCls;
+ if (tabId === "UIApplicationList") {
+ addCls = "ApplicationMode";
+ removeCls = "ContainerMode";
+ } else {
+ addCls = "ContainerMode";
+ removeCls = "ApplicationMode";
+ }
+ eXo.core.DOMUtil.removeClass(toolPanel, removeCls);
+ eXo.core.DOMUtil.addClass(toolPanel, addCls);
+}
+
/**
* Clollapse or expand an element (all its children) of tree
* @param {Object} element object to collapse or expand
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIPortalComponent/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIPortalComponent/Stylesheet.css 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIPortalComponent/Stylesheet.css 2011-10-03 03:22:11 UTC (rev 7591)
@@ -205,12 +205,6 @@
filter: alpha(opacity=30);
}
-.UIPortletMask {
- opacity: 0;
- filter: alpha(opacity=0);
- background: #ffffff;
-}
-
.UIPageBodyMask {
opacity: 0;
filter: alpha(opacity=0);
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UITabContainer/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UITabContainer/Stylesheet.css 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UITabContainer/Stylesheet.css 2011-10-03 03:22:11 UTC (rev 7591)
@@ -45,16 +45,25 @@
.UITabContainer .UIHorizontalTabs .UITab {
height: 24px;
-}
+}
+
+.UITabContainer .UIHorizontalTabs .AddTab {
+ height: 24px;
+ width: 23px;
+ background: url("background/AddTab.gif") no-repeat left top;
+ float: left; /* orientation=lt */
+ float: right; /* orientation=rt */
+ cursor: pointer;
+}
+
+.ApplicationMode .UITabContainer .AddTab {
+ display: none;
+}
+
+.ApplicationMode .UITabContainer .EditIcon {
+ display: none;
+}
-.UITabContainer .UIHorizontalTabs .AddTab {
- height: 24px;
- width: 23px;
- background: url("background/AddTab.gif") no-repeat left top;
- float: left;
- cursor: pointer;
-}
-
.UITabContainer .SelectedTab .EditIcon {
width: 16px; height: 24px;
background: url('/eXoResources/skin/DefaultSkin/skinIcons/16x16/icons/SelectedEditTab.gif') no-repeat center; /* orientation=lt */
Modified: portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/application/UIPortlet.gtmpl
===================================================================
--- portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/application/UIPortlet.gtmpl 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/application/UIPortlet.gtmpl 2011-10-03 03:22:11 UTC (rev 7591)
@@ -211,9 +211,6 @@
if(uiPortalApp.isEditing()) {
if(portalMode != uiPortalApp.CONTAINER_BLOCK_EDIT_MODE && portalMode != uiPortalApp.APP_BLOCK_EDIT_MODE) {
%>
- <div class="UIPortletMaskParent" style="height: 0px;position:relative;">
- <div class="UIPortlet-$portletId UIPortletMask" style="position: absolute;"><span></span></div>
- </div>
</div>
<%} %>
Modified: portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/container/UITabContainer.gtmpl
===================================================================
--- portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/container/UITabContainer.gtmpl 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/container/UITabContainer.gtmpl 2011-10-03 03:22:11 UTC (rev 7591)
@@ -1,6 +1,7 @@
<%
import org.exoplatform.web.application.JavascriptManager;
import org.exoplatform.commons.utils.ExpressionUtil;
+ import org.exoplatform.portal.webui.util.Util;
def rcontext = _ctx.getRequestContext();
ResourceBundle res = rcontext.getApplicationResourceBundle();
@@ -33,7 +34,8 @@
}
}
- String id = uicomponent.getId();
+ String id = uicomponent.getId();
+ def modeState = Util.getUIPortalApplication().getModeState();
%>
<% if(children != null && children.size() > 0) { %>
<div class="UITabContainer" id="$id">
@@ -62,7 +64,7 @@
<div class="LeftTab">
<div class="RightTab">
<%
- if(uiChild.isShowEditControl()){
+ if(modeState > 0){
String actionLink = uicomponent.event("EditContainer", "$uiChild.id") - "javascript:";
String showCategory = "eXo.webui.UIPopupSelectCategory.show(this, event);"
String moveLeftAction = uicomponent.event("MoveLeft", tabId);
@@ -118,7 +120,7 @@
}
%>
<% String addTabLink = uicomponent.event("AddTab");
- if (uicomponent.isShowEditControl()) {
+ if (modeState > 0) {
%>
<div class="AddTab" onclick="$addTabLink;eXo.portal.UIPortal.changeComposerSaveButton()">
<span></span>
Modified: portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/portal/UIPortalComposerContent.gtmpl
===================================================================
--- portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/portal/UIPortalComposerContent.gtmpl 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/portal/UIPortalComposerContent.gtmpl 2011-10-03 03:22:11 UTC (rev 7591)
@@ -3,7 +3,8 @@
import org.exoplatform.portal.webui.portal.UIContainerList;
def rcontext = _ctx.getRequestContext();
- rcontext.getJavascriptManager().importJavascript('eXo.webui.UIHorizontalTabs');
+ def jsManager = rcontext.getJavascriptManager();
+ jsManager.importJavascript('eXo.webui.UIHorizontalTabs');
%>
<div class="UITabPane" id="$uicomponent.id">
@@ -12,6 +13,7 @@
<%
String url = uicomponent.url("SelectTab");
String selTabId = uicomponent.getSelectedTabId();
+ jsManager.addCustomizedOnLoadScript("eXo.portal.UIPortal.composerTabChanged('" + selTabId + "');");
UIApplicationList appList = uicomponent.getChild(UIApplicationList.class);
UIContainerList contList = uicomponent.getChild(UIContainerList.class);
@@ -21,7 +23,9 @@
<div class="LeftTab">
<div class="RightTab">
<% String appLink = "ajaxAsyncGetRequest('" + uicomponent.url("SelectTab",appList.getId()) + "', true)" %>
- <div class="MiddleTab" onclick="eXo.webui.UIHorizontalTabs.changeTabForUITabPane(this, '${appList.getId()}', '$url');$appLink;if(eXo.portal.portalMode) eXo.portal.portalMode -= 2;">
+ <div class="MiddleTab" onclick="eXo.webui.UIHorizontalTabs.changeTabForUITabPane(this, '${appList.getId()}', '$url');
+ eXo.portal.UIPortal.composerTabChanged('${appList.getId()}');
+ $appLink;if(eXo.portal.portalMode) eXo.portal.portalMode -= 2;">
<%=_ctx.appRes("UITabPane.title." + appList.getId());%>
</div>
</div>
@@ -33,7 +37,9 @@
<div class="LeftTab">
<div class="RightTab">
<% String contLink = "ajaxAsyncGetRequest('" + uicomponent.url("SelectTab",contList.getId()) + "', true)" %>
- <div class="MiddleTab" onclick="eXo.webui.UIHorizontalTabs.changeTabForUITabPane(this, '${contList.getId()}', '$url');$contLink;if(eXo.portal.portalMode) eXo.portal.portalMode += 2;">
+ <div class="MiddleTab" onclick="eXo.webui.UIHorizontalTabs.changeTabForUITabPane(this, '${contList.getId()}', '$url');
+ eXo.portal.UIPortal.composerTabChanged('${contList.getId()}');
+ $contLink;if(eXo.portal.portalMode) eXo.portal.portalMode += 2;">
<%=_ctx.appRes("UITabPane.title." + contList.getId());%>
</div>
</div>
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletForm.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletForm.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletForm.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -403,7 +403,6 @@
UIWorkingWorkspace uiWorkingWS = uiPortalApp.getChildById(UIPortalApplication.UI_WORKING_WS_ID);
pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
pcontext.ignoreAJAXUpdateOnPortlets(true);
- Util.showComponentLayoutMode(UIPortlet.class);
}
}
@@ -425,7 +424,6 @@
uiMaskWorkspace.setWindowSize(-1, -1);
pcontext.addUIComponentToUpdateByAjax(uiMaskWorkspace);
pcontext.ignoreAJAXUpdateOnPortlets(true);
- Util.showComponentLayoutMode(UIPortlet.class);
}
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIColumnContainer.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIColumnContainer.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIColumnContainer.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -76,8 +76,6 @@
UIColumnContainer.insertColumn(uiSelectedColumn, false);
}
- Util.showComponentLayoutMode(uiSelectedColumn.getClass());
-
PortalRequestContext pcontext = (PortalRequestContext) event.getRequestContext();
pcontext.addUIComponentToUpdateByAjax(uiParent);
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIContainerForm.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIContainerForm.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UIContainerForm.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -146,7 +146,6 @@
pcontext.getJavascriptManager().addJavascript("eXo.portal.UIPortal.changeComposerSaveButton();");
pcontext.addUIComponentToUpdateByAjax(uiWorkingWS);
pcontext.ignoreAJAXUpdateOnPortlets(true);
- Util.showComponentLayoutMode(UIContainer.class);
}
}
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UITabContainer.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UITabContainer.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/container/UITabContainer.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -169,7 +169,6 @@
child.setRendered(false);
newTabContainer.setRendered(true);
newTabContainer.setId(String.valueOf(newTabContainer.hashCode()));
- newTabContainer.setShowEditControl(true);
pcontext.addUIComponentToUpdateByAjax(container);
return;
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponent.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponent.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponent.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -47,8 +47,6 @@
private String[] accessPermissions = {UserACL.EVERYONE};
- private boolean showEditControl_ = false;
-
protected int mode_ = COMPONENT_VIEW_MODE;
final static public int COMPONENT_VIEW_MODE = 1;
@@ -134,16 +132,6 @@
title_ = s;
}
- public boolean isShowEditControl()
- {
- return showEditControl_;
- }
-
- public void setShowEditControl(boolean show)
- {
- showEditControl_ = show;
- }
-
public String getName()
{
return name_;
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -135,7 +135,6 @@
}
}
}
- Util.showComponentLayoutMode(uiComponentTobeRemoved.getClass());
PortalRequestContext pcontext = (PortalRequestContext)event.getRequestContext();
@@ -333,7 +332,6 @@
uiPortlet.setState(new PortletState(state, applicationType));
}
uiPortlet.setPortletInPortal(uiTarget instanceof UIPortal);
- uiPortlet.setShowEditControl(true);
//TODO Wait to fix issue EXOGTN-213 and then
//we should get "showInfobar" from current UI portal instead of Storage service
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComposer.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -539,12 +539,10 @@
if (portalMode % 2 == 0)
{
uiPortalApp.setModeState(UIPortalApplication.APP_VIEW_EDIT_MODE);
- Util.showComponentEditInViewMode(UIPortlet.class);
}
else
{
uiPortalApp.setModeState(UIPortalApplication.APP_BLOCK_EDIT_MODE);
- Util.showComponentLayoutMode(UIPortlet.class);
}
}
else if (uiComponent instanceof UIContainerList)
@@ -553,16 +551,12 @@
if (portalMode % 2 == 0)
{
uiPortalApp.setModeState(UIPortalApplication.CONTAINER_VIEW_EDIT_MODE);
- Util.showComponentEditInViewMode(org.exoplatform.portal.webui.container.UIContainer.class);
}
else
{
uiPortalApp.setModeState(UIPortalApplication.CONTAINER_BLOCK_EDIT_MODE);
- Util.showComponentLayoutMode(org.exoplatform.portal.webui.container.UIContainer.class);
}
}
- event.getRequestContext().addUIComponentToUpdateByAjax(
- Util.getUIPortalApplication().getChildById(UIPortalApplication.UI_WORKING_WS_ID));
}
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java 2011-10-02 22:49:59 UTC (rev 7590)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/util/Util.java 2011-10-03 03:22:11 UTC (rev 7591)
@@ -71,39 +71,6 @@
return getUIPortalApplication().findFirstComponentOfType(UIPortalToolPanel.class);
}
- private static void setShowEditControl(UIComponent uiComponent, Class clazz)
- {
- if (uiComponent == null)
- return;
- if (uiComponent instanceof UIPortalComponent)
- {
- UIPortalComponent uiContainer = (UIPortalComponent)uiComponent;
- if (clazz.isInstance(uiContainer))
- {
- uiContainer.setShowEditControl(true);
- }
- else
- {
- uiContainer.setShowEditControl(false);
- }
- }
- if (uiComponent instanceof org.exoplatform.webui.core.UIContainer)
- {
- List<UIComponent> children = ((org.exoplatform.webui.core.UIContainer)uiComponent).getChildren();
- for (UIComponent comp : children)
- setShowEditControl(comp, clazz);
- return;
- }
-
- if (uiComponent instanceof UIComponentDecorator)
- {
- UIComponentDecorator uiDecorator = (UIComponentDecorator)uiComponent;
- if (uiDecorator.getUIComponent() == null)
- return;
- setShowEditControl(uiDecorator.getUIComponent(), clazz);
- }
- }
-
/**
* View component on UIWorkspaceWorking
* $uicomp : current component on UIWorkspaceWorking
@@ -221,17 +188,11 @@
if (uiParent == null)
return;
String layoutMode = clazz.getSimpleName();
- setShowEditControl(uiParent, clazz);
PortalRequestContext context = Util.getPortalRequestContext();
- if (uiParent instanceof UIPortal)
+ if (uiParent instanceof UIPage)
{
context.getJavascriptManager().addCustomizedOnLoadScript(
- "eXo.portal.UIPortal.showLayoutModeForPortal('" + layoutMode + "');");
- }
- else
- {
- context.getJavascriptManager().addCustomizedOnLoadScript(
"eXo.portal.UIPortal.showLayoutModeForPage('" + layoutMode + "');");
}
}
@@ -242,25 +203,15 @@
return;
UIPortalApplication portalApp = getUIPortalApplication();
UIEditInlineWorkspace uiEditWS = portalApp.findFirstComponentOfType(UIEditInlineWorkspace.class);
- UIContainer uiParent = null;
UIComponent uiComponent = uiEditWS.getUIComponent();
if (uiComponent instanceof UIPortal)
{
UIPortal uiPortal = (UIPortal)uiComponent;
uiPortal.setMaximizedUIComponent(null);
- uiParent = uiPortal;
}
- else
- {
- UIPortalToolPanel uiPortalToolPanel = getUIPortalToolPanel();
- UIPage uiPage = uiPortalToolPanel.findFirstComponentOfType(UIPage.class);
- uiParent = uiPage;
- }
- if (uiParent == null)
- return;
+
String layoutMode = clazz.getSimpleName();
- setShowEditControl(uiParent, clazz);
PortalRequestContext context = Util.getPortalRequestContext();
context.getJavascriptManager().addCustomizedOnLoadScript(
13 years, 2 months
gatein SVN: r7590 - in epp/portal/branches/EPP_5_2_Branch: component and 1 other directories.
by do-not-reply@jboss.org
Author: hfnukal
Date: 2011-10-02 18:49:59 -0400 (Sun, 02 Oct 2011)
New Revision: 7590
Added:
epp/portal/branches/EPP_5_2_Branch/settings-nomead.xml
Modified:
epp/portal/branches/EPP_5_2_Branch/component/
epp/portal/branches/EPP_5_2_Branch/wsrp-integration/
Log:
JBEPP-1091 distribution
exo components builds in maven2
settings-nomead.xml - settings without using mead repo, for signing issue
Property changes on: epp/portal/branches/EPP_5_2_Branch/component
___________________________________________________________________
Modified: svn:mergeinfo
- /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795/component:5868
/portal/branches/branch-GTNPORTAL-1592/component:4894
/portal/branches/branch-GTNPORTAL-1643/component:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700/component:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731/component:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745/component:5765
/portal/branches/branch-GTNPORTAL-1790/component:5871
/portal/branches/branch-GTNPORTAL-1822/component:5943,5952
/portal/branches/branch-GTNPORTAL-1832/component:6030,6063
/portal/branches/branch-GTNPORTAL-1872/component:6400,6551
/portal/branches/branch-GTNPORTAL-1921/component:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963/component:6904,6915-6916
/portal/trunk/component:4876,4891,5269,5744,5822,5943,6031,6033,6168,6196,6201-6203,6205-6206,6223,6292,6323,6437,6440,6449,6452,6573,6783-6784,6912-6913,6960,7042,7061,7095,7117,7120,7125,7132-7134,7186,7239,7262,7308,7326,7331,7359,7367,7433,7452,7454,7478,7497
+ /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795/component:5868
/portal/branches/branch-GTNPORTAL-1592/component:4894
/portal/branches/branch-GTNPORTAL-1643/component:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700/component:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731/component:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745/component:5765
/portal/branches/branch-GTNPORTAL-1790/component:5871
/portal/branches/branch-GTNPORTAL-1822/component:5943,5952
/portal/branches/branch-GTNPORTAL-1832/component:6030,6063
/portal/branches/branch-GTNPORTAL-1872/component:6400,6551
/portal/branches/branch-GTNPORTAL-1921/component:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963/component:6904,6915-6916
/portal/trunk/component:4876,4891,5269,5744,5822,5943,6031,6033,6168,6196,6201-6203,6205-6206,6223,6292,6323,6437,6440,6449,6452,6573,6783-6784,6912-6913,6960,7042,7061,7095,7117,7120,7125,7132-7134,7186,7239,7262,7308,7326,7331,7359,7367,7433,7450-7452,7454,7478,7497,7500,7552,7554-7555
Added: epp/portal/branches/EPP_5_2_Branch/settings-nomead.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/settings-nomead.xml (rev 0)
+++ epp/portal/branches/EPP_5_2_Branch/settings-nomead.xml 2011-10-02 22:49:59 UTC (rev 7590)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ User-specific configuration for maven. Includes things that should not
+ be distributed with the pom.xml file, such as developer identity, along with
+ local settings, like proxy information. The default location for the
+ settings file is ~/.m2/settings.xml
+-->
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+ <!--proxies>
+ <proxy>
+ <host>my.proxy.host</host>
+ </proxy>
+ </proxies-->
+
+ <!--pluginGroups>
+ <pluginGroup>org.codehaus.mojo</pluginGroup>
+ </pluginGroups-->
+<!--
+<localRepository>${env.HOME}/.m2_EPP</localRepository>
+-->
+ <profiles>
+ <profile>
+ <id>my-jboss-maven2</id>
+ <repositories>
+<!--
+ <repository>
+ <id>jboss-maven2-brew</id>
+ <name>JBoss Maven 2 Brew Repository</name>
+ <url>http://download.devel.redhat.com/brewroot/repos/jboss-epp-5-build/latest/...</url>
+ <layout>default</layout>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+-->
+ <repository>
+ <id>jboss-maven2-nexus</id>
+ <name>JBoss Maven 2 nexus Repository</name>
+ <url>https://repository.jboss.org/nexus/content/groups/public</url>
+ <layout>default</layout>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>exo-maven</id>
+ <name>Exo Maven 2 Repository</name>
+ <url>http://maven2.exoplatform.org/content/repositories/public/</url>
+ <layout>default</layout>
+ <releases>
+ <enabled>false</enabled>
+ <updatePolicy>never</updatePolicy>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>jboss-maven2-deprecated</id>
+ <name>JBoss Maven 2 deprecated Repository</name>
+ <url>https://repository.jboss.org/nexus/content/repositories/deprecated/</url>
+ <layout>default</layout>
+ <releases>
+ <enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ </profile>
+
+ </profiles>
+ <activeProfiles>
+ <activeProfile>my-jboss-maven2</activeProfile>
+ </activeProfiles>
+<!-- <mirrors>
+ <mirror>
+ <id>internal-repository</id>
+ <name>Maven Repository Manager running on repo.mycompany.com</name>
+ <url>http://download.devel.redhat.com/brewroot/repos/jboss-epp-5-build/latest/...</url>
+ <url>http://repository.jboss.org/nexus/content/groups/public</url>
+ <mirrorOf>*</mirrorOf>
+ </mirror>
+ </mirrors>-->
+</settings>
Property changes on: epp/portal/branches/EPP_5_2_Branch/wsrp-integration
___________________________________________________________________
Modified: svn:mergeinfo
- /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795/wsrp-integration:5868
/portal/branches/branch-GTNPORTAL-1592/wsrp-integration:4894
/portal/branches/branch-GTNPORTAL-1643/wsrp-integration:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700/wsrp-integration:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731/wsrp-integration:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745/wsrp-integration:5765
/portal/branches/branch-GTNPORTAL-1790/wsrp-integration:5871
/portal/branches/branch-GTNPORTAL-1822/wsrp-integration:5943,5952
/portal/branches/branch-GTNPORTAL-1832/wsrp-integration:6030,6063
/portal/branches/branch-GTNPORTAL-1872/wsrp-integration:6400,6551
/portal/branches/branch-GTNPORTAL-1921/wsrp-integration:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963/wsrp-integration:6904,6915-6916
/portal/branches/decoupled-webos/wsrp-integration:6214-6243
/portal/branches/gatein-management/wsrp-integration:6920-6958
/portal/branches/global-portlet-metadata/wsrp-integration:6298-6384
/portal/branches/site-describability/wsrp-integration:6171-6235
/portal/trunk/wsrp-integration:4876,4891,5269,5744,5822,5943,6168,6196,6201-6203,6205-6206,6223,6323,6437,6440,6449,6452,6573,6741,6783-6784,6912-6913,6960,7042,7061,7095,7117,7125,7132-7134,7186,7198,7239,7262,7308,7326,7331,7359,7367,7433,7452,7454,7478,7497
+ /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795/wsrp-integration:5868
/portal/branches/branch-GTNPORTAL-1592/wsrp-integration:4894
/portal/branches/branch-GTNPORTAL-1643/wsrp-integration:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700/wsrp-integration:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731/wsrp-integration:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745/wsrp-integration:5765
/portal/branches/branch-GTNPORTAL-1790/wsrp-integration:5871
/portal/branches/branch-GTNPORTAL-1822/wsrp-integration:5943,5952
/portal/branches/branch-GTNPORTAL-1832/wsrp-integration:6030,6063
/portal/branches/branch-GTNPORTAL-1872/wsrp-integration:6400,6551
/portal/branches/branch-GTNPORTAL-1921/wsrp-integration:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963/wsrp-integration:6904,6915-6916
/portal/branches/decoupled-webos/wsrp-integration:6214-6243
/portal/branches/gatein-management/wsrp-integration:6920-6958
/portal/branches/global-portlet-metadata/wsrp-integration:6298-6384
/portal/branches/site-describability/wsrp-integration:6171-6235
/portal/trunk/wsrp-integration:4876,4891,5269,5744,5822,5943,6168,6196,6201-6203,6205-6206,6223,6323,6437,6440,6449,6452,6573,6741,6783-6784,6912-6913,6960,7042,7061,7095,7117,7125,7132-7134,7186,7198,7239,7262,7308,7326,7331,7359,7367,7433,7450-7452,7454,7478,7497,7500,7552,7554-7555
13 years, 2 months
gatein SVN: r7589 - in epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools: exo-jcr and 4 other directories.
by do-not-reply@jboss.org
Author: hfnukal
Date: 2011-10-02 17:39:37 -0400 (Sun, 02 Oct 2011)
New Revision: 7589
Modified:
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-core/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-jcr/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-kernel/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-ws/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-pc/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/src/brewscripts/import
Log:
JBEPP-1091 distribution
exo components builds in maven2
settings-nomead.xml - settings without using mead repo, for signing issue
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-core/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-core/pom.xml 2011-10-02 17:25:59 UTC (rev 7588)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-core/pom.xml 2011-10-02 21:39:37 UTC (rev 7589)
@@ -15,7 +15,9 @@
<packaging>pom</packaging>
<properties>
-
+ <!-- TODO: upgrade to maven 3 -->
+ <mead.target>jboss-epp-5-maven2</mead.target>
+
<mead.svn.base>${svn.base}</mead.svn.base>
<mead.svn.repo>${svn.exo.repo}</mead.svn.repo>
<mead.svn.path>${exo-core.svnpath}</mead.svn.path>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-jcr/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-jcr/pom.xml 2011-10-02 17:25:59 UTC (rev 7588)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-jcr/pom.xml 2011-10-02 21:39:37 UTC (rev 7589)
@@ -15,6 +15,8 @@
<packaging>pom</packaging>
<properties>
+ <!-- TODO: upgrade to maven 3 -->
+ <mead.target>jboss-epp-5-maven2</mead.target>
<mead.svn.base>${svn.base}</mead.svn.base>
<mead.svn.repo>${svn.exo.repo}</mead.svn.repo>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-kernel/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-kernel/pom.xml 2011-10-02 17:25:59 UTC (rev 7588)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-kernel/pom.xml 2011-10-02 21:39:37 UTC (rev 7589)
@@ -15,7 +15,9 @@
<packaging>pom</packaging>
<properties>
-
+ <!-- TODO: upgrade to maven 3 -->
+ <mead.target>jboss-epp-5-maven2</mead.target>
+
<mead.svn.base>${svn.base}</mead.svn.base>
<mead.svn.repo>${svn.exo.repo}</mead.svn.repo>
<mead.svn.path>${exo-kernel.svnpath}</mead.svn.path>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-ws/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-ws/pom.xml 2011-10-02 17:25:59 UTC (rev 7588)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/exo-ws/pom.xml 2011-10-02 21:39:37 UTC (rev 7589)
@@ -15,7 +15,9 @@
<packaging>pom</packaging>
<properties>
-
+ <!-- TODO: upgrade to maven 3 -->
+ <mead.target>jboss-epp-5-maven2</mead.target>
+
<mead.svn.base>${svn.base}</mead.svn.base>
<mead.svn.repo>${svn.exo.repo}</mead.svn.repo>
<mead.svn.path>${exo-ws.svnpath}</mead.svn.path>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-pc/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-pc/pom.xml 2011-10-02 17:25:59 UTC (rev 7588)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-pc/pom.xml 2011-10-02 21:39:37 UTC (rev 7589)
@@ -15,7 +15,9 @@
<packaging>pom</packaging>
<properties>
-
+ <!-- TODO: upgrade to maven 3 -->
+ <mead.target>jboss-epp-5-maven2</mead.target>
+
<mead.svn.base>${svn.base}</mead.svn.base>
<mead.svn.repo>${svn.gatein.repo}</mead.svn.repo>
<mead.svn.path>${gatein-pc.svnpath}</mead.svn.path>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/src/brewscripts/import
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/src/brewscripts/import 2011-10-02 17:25:59 UTC (rev 7588)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/src/brewscripts/import 2011-10-02 21:39:37 UTC (rev 7589)
@@ -8,7 +8,7 @@
mkdir $TMPDIR
cd $TMPDIR
$WORKDIR/get-maven-artifacts $i
- $WORKDIR/import-maven *
+ $WORKDIR/import-maven --owner hfnukal *
cd $WORKDIR
rm -Rf $TMPDIR
done
13 years, 2 months
gatein SVN: r7588 - in epp/portal/branches/EPP_5_2_Branch: component/portal/src/main/java/org and 4 other directories.
by do-not-reply@jboss.org
Author: hfnukal
Date: 2011-10-02 13:25:59 -0400 (Sun, 02 Oct 2011)
New Revision: 7588
Removed:
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportStrategy.java
Modified:
epp/portal/branches/EPP_5_2_Branch/
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/binding/xml/NavigationMarshaller.java
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportTask.java
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/NavigationImportTask.java
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/PageImportTask.java
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/SiteLayoutImportTask.java
epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/operations/MopImportResource.java
epp/portal/branches/EPP_5_2_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/management/exportimport/PageImportTaskTest.java
epp/portal/branches/EPP_5_2_Branch/pom.xml
Log:
JBEPP-825 EPP52_300: [PARTIAL] Portal Lifecycle Management and Deployment
Property changes on: epp/portal/branches/EPP_5_2_Branch
___________________________________________________________________
Modified: svn:mergeinfo
- /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795:5868
/portal/branches/branch-GTNPORTAL-1592:4894
/portal/branches/branch-GTNPORTAL-1643:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745:5765
/portal/branches/branch-GTNPORTAL-1790:5871
/portal/branches/branch-GTNPORTAL-1822:5943,5952
/portal/branches/branch-GTNPORTAL-1832:6030,6063
/portal/branches/branch-GTNPORTAL-1872:6400,6551
/portal/branches/branch-GTNPORTAL-1921:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963:6904,6915-6916
/portal/branches/decoupled-webos:6214-6243
/portal/branches/gatein-management:6920-6958
/portal/branches/global-portlet-metadata:6298-6384
/portal/branches/site-describability:6171-6235
/portal/trunk:4876,4891,5269,5744,5822,5943,6168,6196,6201-6203,6205-6206,6223,6323,6437,6440,6449,6452,6573,6783-6784,6912-6913,6960,7042,7061,7095,7117,7125,7132-7134,7186,7239,7262,7308,7326,7331,7359,7367,7433,7452,7454,7478,7497
+ /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795:5868
/portal/branches/branch-GTNPORTAL-1592:4894
/portal/branches/branch-GTNPORTAL-1643:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745:5765
/portal/branches/branch-GTNPORTAL-1790:5871
/portal/branches/branch-GTNPORTAL-1822:5943,5952
/portal/branches/branch-GTNPORTAL-1832:6030,6063
/portal/branches/branch-GTNPORTAL-1872:6400,6551
/portal/branches/branch-GTNPORTAL-1921:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963:6904,6915-6916
/portal/branches/decoupled-webos:6214-6243
/portal/branches/gatein-management:6920-6958
/portal/branches/global-portlet-metadata:6298-6384
/portal/branches/site-describability:6171-6235
/portal/trunk:4876,4891,5269,5744,5822,5943,6168,6196,6201-6203,6205-6206,6223,6323,6437,6440,6449,6452,6573,6783-6784,6912-6913,6960,7042,7061,7095,7117,7125,7132-7134,7186,7239,7262,7308,7326,7331,7359,7367,7433,7452,7454,7478,7497,7552,7554-7555
Property changes on: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org
___________________________________________________________________
Modified: svn:mergeinfo
- /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795/component/portal/src/main/java/org:5868
/portal/branches/branch-GTNPORTAL-1592/component/portal/src/main/java/org:4894
/portal/branches/branch-GTNPORTAL-1643/component/portal/src/main/java/org:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700/component/portal/src/main/java/org:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731/component/portal/src/main/java/org:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745/component/portal/src/main/java/org:5765
/portal/branches/branch-GTNPORTAL-1790/component/portal/src/main/java/org:5871
/portal/branches/branch-GTNPORTAL-1822/component/portal/src/main/java/org:5943,5952
/portal/branches/branch-GTNPORTAL-1832/component/portal/src/main/java/org:6030,6063
/portal/branches/branch-GTNPORTAL-1872/component/portal/src/main/java/org:6400,6551
/portal/branches/branch-GTNPORTAL-1921/component/portal/src/main/java/org:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963/component/portal/src/main/java/org:6904,6915-6916
/portal/trunk/component/portal/src/main/java/org:4876,4891,5269,5744,5822,5943,6031,6033,6168,6196,6201-6203,6205-6206,6223,6292,6323,6437,6440,6449,6452,6573,6741,6783-6784,6912-6913,6960,7042,7061,7095,7117,7120,7125,7132-7134,7186,7198,7239,7262,7308,7326,7331,7359,7367,7433,7452,7454,7478,7497
+ /epp/portal/branches/EPP_5_1_0_GA_JBEPP-795/component/portal/src/main/java/org:5868
/portal/branches/branch-GTNPORTAL-1592/component/portal/src/main/java/org:4894
/portal/branches/branch-GTNPORTAL-1643/component/portal/src/main/java/org:5002,5063,5167
/portal/branches/branch-GTNPORTAL-1700/component/portal/src/main/java/org:5348,5363,5402,5445
/portal/branches/branch-GTNPORTAL-1731/component/portal/src/main/java/org:5622,5644,5668
/portal/branches/branch-GTNPORTAL-1745/component/portal/src/main/java/org:5765
/portal/branches/branch-GTNPORTAL-1790/component/portal/src/main/java/org:5871
/portal/branches/branch-GTNPORTAL-1822/component/portal/src/main/java/org:5943,5952
/portal/branches/branch-GTNPORTAL-1832/component/portal/src/main/java/org:6030,6063
/portal/branches/branch-GTNPORTAL-1872/component/portal/src/main/java/org:6400,6551
/portal/branches/branch-GTNPORTAL-1921/component/portal/src/main/java/org:6603,6771-6772,6774
/portal/branches/branch-GTNPORTAL-1963/component/portal/src/main/java/org:6904,6915-6916
/portal/trunk/component/portal/src/main/java/org:4876,4891,5269,5744,5822,5943,6031,6033,6168,6196,6201-6203,6205-6206,6223,6292,6323,6437,6440,6449,6452,6573,6741,6783-6784,6912-6913,6960,7042,7061,7095,7117,7120,7125,7132-7134,7186,7198,7239,7262,7308,7326,7331,7359,7367,7433,7452,7454,7478,7497,7552,7554-7555
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/binding/xml/NavigationMarshaller.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/binding/xml/NavigationMarshaller.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/binding/xml/NavigationMarshaller.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -132,6 +132,8 @@
{
for (LocalizedString label : node.getLabels())
{
+ if (label.getValue() == null) continue;
+
writer.writeStartElement(Element.LABEL);
if (label.getLang() != null)
{
Deleted: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportStrategy.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportStrategy.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportStrategy.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -1,78 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2011, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.portal.mop.management.exportimport;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:nscavell@redhat.com">Nick Scavelli</a>
- * @version $Revision$
- */
-public enum ImportStrategy
-{
- /**
- * Import when data does not exist. Otherwise do nothing.
- */
- CONSERVE("conserve"),
-
- /**
- * Import when data does not exist. Otherwise perform a merge
- */
- MERGE("merge"),
-
- /**
- * Delete existing data, import new data.
- */
- OVERWRITE("overwrite");
-
- private String name;
-
- ImportStrategy(String name)
- {
- this.name = name;
- }
-
- private static final Map<String, ImportStrategy> MAP;
-
- static
- {
- Map<String, ImportStrategy> tmp = new HashMap<String, ImportStrategy>(3);
- for (ImportStrategy strategy : ImportStrategy.values())
- {
- tmp.put(strategy.name, strategy);
- }
-
- MAP = tmp;
- }
-
- public String getName()
- {
- return name;
- }
-
- public static ImportStrategy forName(String name)
- {
- return MAP.get(name);
- }
-}
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportTask.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportTask.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/ImportTask.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -22,6 +22,8 @@
package org.exoplatform.portal.mop.management.exportimport;
+import org.exoplatform.portal.mop.importer.ImportMode;
+
/**
* @author <a href="mailto:nscavell@redhat.com">Nick Scavelli</a>
* @version $Revision$
@@ -34,7 +36,7 @@
this.data = data;
}
- public abstract void importData(ImportStrategy importStrategy) throws Exception;
+ public abstract void importData(ImportMode importMode) throws Exception;
public abstract void rollback() throws Exception;
}
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/NavigationImportTask.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/NavigationImportTask.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/NavigationImportTask.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -67,24 +67,8 @@
}
@Override
- public void importData(ImportStrategy importStrategy) throws Exception
+ public void importData(ImportMode importMode) throws Exception
{
- ImportMode mode;
- switch (importStrategy)
- {
- case CONSERVE:
- mode = ImportMode.INSERT;
- break;
- case MERGE:
- mode = ImportMode.MERGE;
- break;
- case OVERWRITE:
- mode = ImportMode.OVERWRITE;
- break;
- default:
- throw new Exception("Could not map import strategy " + importStrategy.getName() + " to import mode.");
- }
-
PortalConfig portalConfig = dataStorage.getPortalConfig(siteKey.getTypeName(), siteKey.getName());
if (portalConfig == null) throw new Exception("Cannot import navigation because site does not exist for " + siteKey);
@@ -154,7 +138,7 @@
}
// Import navigation using gatein navigation importer.
- NavigationImporter importer = new NavigationImporter(locale, mode, data, navigationService, descriptionService);
+ NavigationImporter importer = new NavigationImporter(locale, importMode, data, navigationService, descriptionService);
importer.perform();
}
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/PageImportTask.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/PageImportTask.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/PageImportTask.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -27,6 +27,7 @@
import org.exoplatform.portal.config.Query;
import org.exoplatform.portal.config.model.Page;
import org.exoplatform.portal.mop.SiteKey;
+import org.exoplatform.portal.mop.importer.ImportMode;
import org.exoplatform.portal.mop.management.operations.page.PageUtils;
import java.util.ArrayList;
@@ -49,7 +50,7 @@
}
@Override
- public void importData(ImportStrategy strategy) throws Exception
+ public void importData(ImportMode importMode) throws Exception
{
if (data == null || data.getPages() == null || data.getPages().isEmpty()) return;
@@ -58,7 +59,7 @@
int size = list.getAvailable();
Page.PageSet dst = null;
- switch (strategy)
+ switch (importMode)
{
case CONSERVE:
if (size == 0)
@@ -68,6 +69,17 @@
}
else
{
+ dst = null;
+ }
+ break;
+ case INSERT:
+ if (size == 0)
+ {
+ dst = data; // No pages exist yet.
+ rollbackDeletes = data;
+ }
+ else
+ {
dst = new Page.PageSet();
dst.setPages(new ArrayList<Page>());
List<Page> existingPages = list.getAll();
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/SiteLayoutImportTask.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/SiteLayoutImportTask.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/exportimport/SiteLayoutImportTask.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -25,6 +25,7 @@
import org.exoplatform.portal.config.DataStorage;
import org.exoplatform.portal.config.model.PortalConfig;
import org.exoplatform.portal.mop.SiteKey;
+import org.exoplatform.portal.mop.importer.ImportMode;
import org.exoplatform.portal.mop.management.operations.page.PageUtils;
/**
@@ -44,11 +45,11 @@
}
@Override
- public void importData(ImportStrategy importStrategy) throws Exception
+ public void importData(ImportMode importMode) throws Exception
{
PortalConfig dst = dataStorage.getPortalConfig(siteKey.getTypeName(), siteKey.getName());
- switch (importStrategy)
+ switch (importMode)
{
// Really doesn't make sense to "merge" site layout data. Really two modes, conserve (keep) and overwrite.
case CONSERVE:
@@ -62,6 +63,7 @@
dst = null;
}
break;
+ case INSERT:
case MERGE:
case OVERWRITE:
if (dst == null)
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/operations/MopImportResource.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/operations/MopImportResource.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/main/java/org/exoplatform/portal/mop/management/operations/MopImportResource.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -28,7 +28,7 @@
import org.exoplatform.portal.config.model.PortalConfig;
import org.exoplatform.portal.mop.SiteKey;
import org.exoplatform.portal.mop.description.DescriptionService;
-import org.exoplatform.portal.mop.management.exportimport.ImportStrategy;
+import org.exoplatform.portal.mop.importer.ImportMode;
import org.exoplatform.portal.mop.management.exportimport.NavigationExportTask;
import org.exoplatform.portal.mop.management.exportimport.NavigationImportTask;
import org.exoplatform.portal.mop.management.exportimport.PageExportTask;
@@ -96,12 +96,18 @@
DescriptionService descriptionService = operationContext.getRuntimeContext().getRuntimeComponent(DescriptionService.class);
if (descriptionService == null) throw new OperationException(operationName, "Description service was null");
- String strategyAttribute = operationContext.getAttributes().getValue("import-strategy");
- ImportStrategy strategy = ImportStrategy.MERGE;
- if (strategyAttribute != null)
+ ImportMode importMode = ImportMode.MERGE;
+ String mode = operationContext.getAttributes().getValue("importMode");
+ if (mode != null)
{
- strategy = ImportStrategy.forName(strategyAttribute);
- if (strategy == null) throw new OperationException(operationName, "Unknown import strategy " + strategyAttribute);
+ try
+ {
+ importMode = ImportMode.valueOf(mode.trim().toUpperCase());
+ }
+ catch (Exception e)
+ {
+ throw new OperationException(operationName, "Unknown importMode " + mode);
+ }
}
Map<SiteKey, MopImport> importMap = new HashMap<SiteKey, MopImport>();
@@ -200,7 +206,7 @@
Map<SiteKey, MopImport> importsRan = new HashMap<SiteKey, MopImport>();
try
{
- log.info("Performing import using strategy '" + strategy.getName() + "'");
+ log.info("Performing import using importMode '" + mode + "'");
for (Map.Entry<SiteKey, MopImport> mopImportEntry : importMap.entrySet())
{
SiteKey siteKey = mopImportEntry.getKey();
@@ -220,7 +226,7 @@
{
log.debug("Importing site layout data.");
ran.siteTask = mopImport.siteTask;
- mopImport.siteTask.importData(strategy);
+ mopImport.siteTask.importData(importMode);
}
// Page import
@@ -228,7 +234,7 @@
{
log.debug("Importing page data.");
ran.pageTask = mopImport.pageTask;
- mopImport.pageTask.importData(strategy);
+ mopImport.pageTask.importData(importMode);
}
// Navigation import
@@ -236,7 +242,7 @@
{
log.debug("Importing navigation data.");
ran.navigationTask = mopImport.navigationTask;
- mopImport.navigationTask.importData(strategy);
+ mopImport.navigationTask.importData(importMode);
}
}
log.info("Import successful !");
Modified: epp/portal/branches/EPP_5_2_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/management/exportimport/PageImportTaskTest.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/management/exportimport/PageImportTaskTest.java 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/component/portal/src/test/java/org/exoplatform/portal/mop/management/exportimport/PageImportTaskTest.java 2011-10-02 17:25:59 UTC (rev 7588)
@@ -30,6 +30,7 @@
import org.exoplatform.portal.config.Query;
import org.exoplatform.portal.config.model.Page;
import org.exoplatform.portal.mop.SiteKey;
+import org.exoplatform.portal.mop.importer.ImportMode;
import org.exoplatform.portal.pom.data.ComponentData;
import org.exoplatform.portal.pom.data.PageData;
import org.mockito.ArgumentMatcher;
@@ -66,7 +67,7 @@
when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
when(list.getAvailable()).thenReturn(0); // no pages exist
- task.importData(ImportStrategy.CONSERVE);
+ task.importData(ImportMode.CONSERVE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -88,6 +89,90 @@
public void testConserve_SamePages() throws Exception
{
Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").build();
+ PageImportTask task = new PageImportTask(importing, siteKey, dataStorage);
+
+ when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
+ when(list.getAvailable()).thenReturn(3);
+
+ task.importData(ImportMode.CONSERVE);
+
+ verify(dataStorage).find(query("user", "foo"));
+ verify(list).getAvailable();
+
+ verifyNoMoreInteractions(dataStorage, list);
+
+ assertNullOrEmpty(task.getRollbackDeletes());
+ assertNullOrEmpty(task.getRollbackSaves());
+ }
+
+ public void testConserve_NewPages() throws Exception
+ {
+ Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").build();
+ PageImportTask task = new PageImportTask(importing, siteKey, dataStorage);
+
+ when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
+ when(list.getAvailable()).thenReturn(3);
+
+ task.importData(ImportMode.CONSERVE);
+
+ verify(dataStorage).find(query("user", "foo"));
+ verify(list).getAvailable();
+
+ verifyNoMoreInteractions(dataStorage, list);
+
+ assertNullOrEmpty(task.getRollbackDeletes());
+ assertNullOrEmpty(task.getRollbackSaves());
+ }
+
+ public void testConserve_NewAndSamePages() throws Exception
+ {
+ Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").addPage("page4").build();
+ PageImportTask task = new PageImportTask(importing, siteKey, dataStorage);
+
+ when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
+ when(list.getAvailable()).thenReturn(3);
+
+ task.importData(ImportMode.CONSERVE);
+
+ verify(dataStorage).find(query("user", "foo"));
+ verify(list).getAvailable();
+
+ verifyNoMoreInteractions(dataStorage, list);
+
+ assertNullOrEmpty(task.getRollbackDeletes());
+ assertNullOrEmpty(task.getRollbackSaves());
+ }
+
+ public void testInsert_NoPages() throws Exception
+ {
+ Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").build();
+ PageImportTask task = new PageImportTask(importing, siteKey, dataStorage);
+
+ when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
+ when(list.getAvailable()).thenReturn(0); // no pages exist
+
+ task.importData(ImportMode.INSERT);
+
+ verify(dataStorage).find(query("user", "foo"));
+ verify(list).getAvailable();
+ verify(list, never()).getAll();
+
+ for (Page page : importing.getPages())
+ {
+ verify(dataStorage).save(page);
+ }
+ verify(dataStorage, times(3)).save();
+
+ verifyNoMoreInteractions(dataStorage, list);
+
+ Assert.assertNotNull(task.getRollbackDeletes());
+ Assert.assertEquals(importing, task.getRollbackDeletes());
+ Assert.assertNull(task.getRollbackSaves());
+ }
+
+ public void testInsert_SamePages() throws Exception
+ {
+ Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").build();
Page.PageSet existing = new Builder().addPage("page1").addPage("page2").addPage("page3").build();
PageImportTask task = new PageImportTask(importing, siteKey, dataStorage);
@@ -95,7 +180,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.CONSERVE);
+ task.importData(ImportMode.INSERT);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -107,7 +192,7 @@
assertNullOrEmpty(task.getRollbackSaves());
}
- public void testConserve_NewPages() throws Exception
+ public void testInsert_NewPages() throws Exception
{
Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").build();
Page.PageSet existing = new Builder().addPage("foo").addPage("bar").addPage("baz").build();
@@ -117,7 +202,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.CONSERVE);
+ task.importData(ImportMode.INSERT);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -136,7 +221,7 @@
Assert.assertNull(task.getRollbackSaves());
}
- public void testConserve_NewAndSamePages() throws Exception
+ public void testInsert_NewAndSamePages() throws Exception
{
Page.PageSet importing = new Builder().addPage("page1").addPage("page2").addPage("page3").addPage("page4").build();
Page.PageSet existing = new Builder().addPage("page2").addPage("bar").addPage("page3").build();
@@ -146,7 +231,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.CONSERVE);
+ task.importData(ImportMode.INSERT);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -174,7 +259,7 @@
when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
when(list.getAvailable()).thenReturn(0); // no pages exist
- task.importData(ImportStrategy.MERGE);
+ task.importData(ImportMode.MERGE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -203,7 +288,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.MERGE);
+ task.importData(ImportMode.MERGE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -233,7 +318,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.MERGE);
+ task.importData(ImportMode.MERGE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -262,7 +347,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.MERGE);
+ task.importData(ImportMode.MERGE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -295,7 +380,7 @@
when(dataStorage.find(Matchers.<Query<Page>>any())).thenReturn(list);
when(list.getAvailable()).thenReturn(0); // no pages exist
- task.importData(ImportStrategy.OVERWRITE);
+ task.importData(ImportMode.OVERWRITE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -324,7 +409,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.OVERWRITE);
+ task.importData(ImportMode.OVERWRITE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -360,7 +445,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.OVERWRITE);
+ task.importData(ImportMode.OVERWRITE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
@@ -397,7 +482,7 @@
when(list.getAvailable()).thenReturn(3);
when(list.getAll()).thenReturn(existing.getPages());
- task.importData(ImportStrategy.OVERWRITE);
+ task.importData(ImportMode.OVERWRITE);
verify(dataStorage).find(query("user", "foo"));
verify(list).getAvailable();
Modified: epp/portal/branches/EPP_5_2_Branch/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/pom.xml 2011-10-02 16:57:23 UTC (rev 7587)
+++ epp/portal/branches/EPP_5_2_Branch/pom.xml 2011-10-02 17:25:59 UTC (rev 7588)
@@ -55,7 +55,7 @@
<org.picketlink.idm>1.3.0.Alpha06</org.picketlink.idm>
<org.gatein.wsrp.version>2.1.0-Beta06</org.gatein.wsrp.version>
<org.gatein.mop.version>1.1.0-Beta05</org.gatein.mop.version>
- <org.gatein.mgmt.version>1.0.0-Beta03</org.gatein.mgmt.version>
+ <org.gatein.mgmt.version>1.0.0-Beta04</org.gatein.mgmt.version>
<org.slf4j.version>1.5.8</org.slf4j.version>
<commons-pool.version>1.5.5</commons-pool.version>
<rhino.version>1.6R5</rhino.version>
13 years, 2 months
gatein SVN: r7587 - in components/mop/trunk: api and 2 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2011-10-02 12:57:23 -0400 (Sun, 02 Oct 2011)
New Revision: 7587
Modified:
components/mop/trunk/api/pom.xml
components/mop/trunk/core/pom.xml
components/mop/trunk/pom.xml
components/mop/trunk/spi/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: components/mop/trunk/api/pom.xml
===================================================================
--- components/mop/trunk/api/pom.xml 2011-10-02 16:57:12 UTC (rev 7586)
+++ components/mop/trunk/api/pom.xml 2011-10-02 16:57:23 UTC (rev 7587)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07</version>
+ <version>1.1.0-Beta08-SNAPSHOT</version>
</parent>
<!-- ****************** -->
Modified: components/mop/trunk/core/pom.xml
===================================================================
--- components/mop/trunk/core/pom.xml 2011-10-02 16:57:12 UTC (rev 7586)
+++ components/mop/trunk/core/pom.xml 2011-10-02 16:57:23 UTC (rev 7587)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07</version>
+ <version>1.1.0-Beta08-SNAPSHOT</version>
</parent>
<!-- ****************** -->
Modified: components/mop/trunk/pom.xml
===================================================================
--- components/mop/trunk/pom.xml 2011-10-02 16:57:12 UTC (rev 7586)
+++ components/mop/trunk/pom.xml 2011-10-02 16:57:23 UTC (rev 7587)
@@ -34,16 +34,16 @@
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07</version>
+ <version>1.1.0-Beta08-SNAPSHOT</version>
<packaging>pom</packaging>
<name>GateIn - MOP</name>
<description>Model Object for Portal</description>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/mop/tags/1.1.0-B...</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/mop/tags/1.1.0-Beta07</developerConnection>
- <url>http://fisheye.jboss.org/browse/gatein/components/mop/tags/1.1.0-Beta07</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/mop/trunk/</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/mop/trunk/</developerConnection>
+ <url>http://fisheye.jboss.org/browse/gatein/components/mop/trunk/</url>
</scm>
<dependencyManagement>
Modified: components/mop/trunk/spi/pom.xml
===================================================================
--- components/mop/trunk/spi/pom.xml 2011-10-02 16:57:12 UTC (rev 7586)
+++ components/mop/trunk/spi/pom.xml 2011-10-02 16:57:23 UTC (rev 7587)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07</version>
+ <version>1.1.0-Beta08-SNAPSHOT</version>
</parent>
<!-- ****************** -->
13 years, 2 months
gatein SVN: r7586 - components/mop/tags.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2011-10-02 12:57:12 -0400 (Sun, 02 Oct 2011)
New Revision: 7586
Added:
components/mop/tags/1.1.0-Beta07/
Log:
[maven-scm] copy for tag 1.1.0-Beta07
13 years, 2 months
gatein SVN: r7585 - in components/mop/trunk: api and 2 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2011-10-02 12:56:49 -0400 (Sun, 02 Oct 2011)
New Revision: 7585
Modified:
components/mop/trunk/api/pom.xml
components/mop/trunk/core/pom.xml
components/mop/trunk/pom.xml
components/mop/trunk/spi/pom.xml
Log:
[maven-release-plugin] prepare release 1.1.0-Beta07
Modified: components/mop/trunk/api/pom.xml
===================================================================
--- components/mop/trunk/api/pom.xml 2011-10-02 16:55:46 UTC (rev 7584)
+++ components/mop/trunk/api/pom.xml 2011-10-02 16:56:49 UTC (rev 7585)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07-SNAPSHOT</version>
+ <version>1.1.0-Beta07</version>
</parent>
<!-- ****************** -->
Modified: components/mop/trunk/core/pom.xml
===================================================================
--- components/mop/trunk/core/pom.xml 2011-10-02 16:55:46 UTC (rev 7584)
+++ components/mop/trunk/core/pom.xml 2011-10-02 16:56:49 UTC (rev 7585)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07-SNAPSHOT</version>
+ <version>1.1.0-Beta07</version>
</parent>
<!-- ****************** -->
Modified: components/mop/trunk/pom.xml
===================================================================
--- components/mop/trunk/pom.xml 2011-10-02 16:55:46 UTC (rev 7584)
+++ components/mop/trunk/pom.xml 2011-10-02 16:56:49 UTC (rev 7585)
@@ -34,16 +34,16 @@
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07-SNAPSHOT</version>
+ <version>1.1.0-Beta07</version>
<packaging>pom</packaging>
<name>GateIn - MOP</name>
<description>Model Object for Portal</description>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/mop/trunk/</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/mop/trunk/</developerConnection>
- <url>http://fisheye.jboss.org/browse/gatein/components/mop/trunk/</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/mop/tags/1.1.0-B...</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/mop/tags/1.1.0-Beta07</developerConnection>
+ <url>http://fisheye.jboss.org/browse/gatein/components/mop/tags/1.1.0-Beta07</url>
</scm>
<dependencyManagement>
Modified: components/mop/trunk/spi/pom.xml
===================================================================
--- components/mop/trunk/spi/pom.xml 2011-10-02 16:55:46 UTC (rev 7584)
+++ components/mop/trunk/spi/pom.xml 2011-10-02 16:56:49 UTC (rev 7585)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.gatein.mop</groupId>
<artifactId>mop-parent</artifactId>
- <version>1.1.0-Beta07-SNAPSHOT</version>
+ <version>1.1.0-Beta07</version>
</parent>
<!-- ****************** -->
13 years, 2 months
gatein SVN: r7584 - components/mop/trunk.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2011-10-02 12:55:46 -0400 (Sun, 02 Oct 2011)
New Revision: 7584
Modified:
components/mop/trunk/pom.xml
Log:
GTNMOP-45 : Update to Chromattic 1.1.0 and JCR 1.14.1
Modified: components/mop/trunk/pom.xml
===================================================================
--- components/mop/trunk/pom.xml 2011-10-02 05:00:51 UTC (rev 7583)
+++ components/mop/trunk/pom.xml 2011-10-02 16:55:46 UTC (rev 7584)
@@ -124,7 +124,7 @@
<!-- Build settings -->
<!-- ************** -->
- <org.chromattic.version>1.1.0-beta7</org.chromattic.version>
+ <org.chromattic.version>1.1.0</org.chromattic.version>
<!--
Current testuite doesn't work with surefire 2.7 defined in parent pom
13 years, 2 months