exo-jcr SVN: r5808 - in jcr/branches/1.12.x/patch: 1.12.13-GA and 1 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-06 02:08:30 -0500 (Tue, 06 Mar 2012)
New Revision: 5808
Added:
jcr/branches/1.12.x/patch/1.12.13-GA/
jcr/branches/1.12.x/patch/1.12.13-GA/JCR-1713/
jcr/branches/1.12.x/patch/1.12.13-GA/JCR-1713/JCR-1713.patch
Log:
JCR-1713: patch proposed
Added: jcr/branches/1.12.x/patch/1.12.13-GA/JCR-1713/JCR-1713.patch
===================================================================
--- jcr/branches/1.12.x/patch/1.12.13-GA/JCR-1713/JCR-1713.patch (rev 0)
+++ jcr/branches/1.12.x/patch/1.12.13-GA/JCR-1713/JCR-1713.patch 2012-03-06 07:08:30 UTC (rev 5808)
@@ -0,0 +1,2185 @@
+Index: exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml
+===================================================================
+--- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml (revision 5698)
++++ exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml (working copy)
+@@ -177,14 +177,6 @@
+ <jgroupsConfig multiplexerStack="jcr.stack" />
+ <sync />
+ </clustering>
+- <!-- Eviction configuration -->
+- <eviction wakeUpInterval="5000">
+- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
+- <property name="maxNodes" value="10000" />
+- <property name="minTimeToLive" value="60000" />
+- </default>
+- </eviction>
+-
+ </jbosscache></programlisting></para>
+
+ <para>See more about template configurations <link
+Index: exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml
+===================================================================
+--- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml (revision 5698)
++++ exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml (working copy)
+@@ -1,143 +1,160 @@
+-<?xml version='1.0' encoding='UTF-8'?>
+-<!-- This document was created with Syntext Serna Free. --><!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- This document was created with Syntext Serna Free. -->
++<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
++"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+ <chapter id="JCR.LockManagerConfiguration">
+-<?dbhtml filename="ch-lock-manager-config.html"?> <title>LockManager configuration</title>
++ <?dbhtml filename="ch-lock-manager-config.html"?>
++
++ <title>LockManager configuration</title>
++
+ <section>
+ <title>Introduction</title>
++
+ <para>What LockManager does?</para>
++
+ <para>In general, LockManager stores Lock objects, so it can give a Lock
+ object or can release it, etc.</para>
++
+ <para>Also, LockManager is responsible for removing Locks that live too
+- long. This parameter may be configured with "time-out" property.</para>
+- <para>JCR provides two basic implementations of LockManager:</para>
++ long. This parameter may be configured with "time-out" property.</para>
++
++ <para>JCR provides two basic implementations of LockManager:</para>
++
+ <itemizedlist>
+ <listitem>
+ <para><classname>org.exoplatform.services.jcr.impl.core.lock.LockManagerImpl</classname>;</para>
+ </listitem>
++
+ <listitem>
+ <para><classname>org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl</classname>;</para>
+ </listitem>
+ </itemizedlist>
++
+ <para>In this article, we will mostly mention about
+ CacheableLockManagerImpl.</para>
++
+ <para>You can enable LockManager by adding lock-manager-configuration to
+ workspace-configuration.</para>
++
+ <para>For example:</para>
+- <programlisting><workspace name="ws">
++
++ <programlisting><workspace name="ws">
+ ...
+- <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
++ <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
+ <properties>
+- <property name="time-out" value="15m" />
++ <property name="time-out" value="15m" />
+ ...
+ </properties>
+ </lock-manager>
+ ...
+ </workspace></programlisting>
+ </section>
++
+ <section>
+ <title>LockManagerImpl</title>
++
+ <para>LockManagerImpl is a simple implementation of LockManager, and also
+ faster than CacheableLockManager. It stores Lock objects in HashMap and
+ may also persist Locks if LockPersister is configured. LockManagerImpl
+ does not support replication in any way.</para>
+- <para>See more about LockManager Configuration at <link linkend="JCR.eXoJCRconfiguration">here</link>.</para>
++
++ <para>See more about LockManager Configuration at <link
++ linkend="JCR.eXoJCRconfiguration">here</link>.</para>
+ </section>
++
+ <section>
+ <title>CacheableLockManagerImpl</title>
+- <para>CacheableLockManagerImpl stores Lock objects in JBoss-cache, so Locks
+- are replicable and affect on cluster, not only a single node. Also,
++
++ <para>CacheableLockManagerImpl stores Lock objects in JBoss-cache, so
++ Locks are replicable and affect on cluster, not only a single node. Also,
+ JBoss-cache has JDBCCacheLoader, so Locks will be stored to the
+ database.</para>
+- <para>Both of the implementations support to remove Expired Locks. LockRemover separates threads, that periodically ask LockManager to remove Locks
+- that live so long. So, the timeout for LockRemover may be set
+- as follows, the default value is 30m.</para>
++
++ <para>Both of the implementations support to remove Expired Locks.
++ LockRemover separates threads, that periodically ask LockManager to remove
++ Locks that live so long. So, the timeout for LockRemover may be set as
++ follows, the default value is 30m.</para>
++
+ <programlisting><properties>
+- <property name="time-out" value="10m" />
++ <property name="time-out" value="10m" />
+ ...
+ </properties></programlisting>
++
+ <section>
+ <title>Configuration</title>
++
+ <para>Replication requirements are the same for Cache.</para>
+- <para> You can see a full JCR configuration example at <link linkend="JCR.ClusterConfig.JCRExternalConfig">here</link>.</para>
++
++ <para>You can see a full JCR configuration example at <link
++ linkend="JCR.ClusterConfig.JCRExternalConfig">here</link>.</para>
++
+ <para>Common tips:</para>
++
+ <itemizedlist>
+ <listitem>
+- <para><parameter>clusterName</parameter> ("jbosscache-cluster-name")
++ <para><parameter>clusterName</parameter> ("jbosscache-cluster-name")
+ must be unique;</para>
+ </listitem>
++
+ <listitem>
+ <para><parameter>cache.jdbc.table.name</parameter> must be unique
+ per datasource;</para>
+ </listitem>
++
+ <listitem>
+ <para><parameter>cache.jdbc.fqn.type</parameter> and
+- cache.jdbc.node.type must be configured according to used
+- database;</para>
++ cache.jdbc.node.type must be configured according to your
++ database.</para>
+ </listitem>
+ </itemizedlist>
+- <para>There are a few ways to configure CacheableLockManagerImpl, and all
+- of them configure JBoss-cache and JDBCCacheLoader.</para>
+- <para>See <ulink url="http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader">http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader</ulink></para>
++
++ <para>There are a few ways to configure CacheableLockManagerImpl, and
++ all of them configure JBoss-cache and JDBCCacheLoader.</para>
++
++ <para>See <ulink
++ url="http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader">http://community.jboss.org/wiki/JBossCacheJDBCCacheLoader</ulink></para>
+ </section>
++
+ <section>
+ <title>Simple JbossCache Configuration</title>
+- <para>The first one is putting JbossCache configuraion file path to
++
++ <para>The first one is putting JbossCache configuration file path to
+ CacheableLockManagerImpl.</para>
++
+ <para><note>
+- <para>This configuration is not so good as you think. Because
+- the repository may contain many workspaces, and each workspace must
++ <para>This configuration is not so good as you think. Because the
++ repository may contain many workspaces, and each workspace must
+ contain LockManager configuration, and LockManager configuration may
+- contain the JbossCache config file. So, the total configuration will grow
+- up. But it is useful if we want to have a single LockManager with a special
+- configuration.</para>
++ contain the JbossCache config file. So, the total configuration will
++ grow up. But it is useful if we want to have a single LockManager
++ with a special configuration.</para>
+ </note></para>
++
+ <para>Configuration is as follows:</para>
+- <programlisting><lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
++
++ <programlisting><lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
+ <properties>
+- <property name="time-out" value="15m" />
+- <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-lock-config.xml" />
++ <property name="time-out" value="15m" />
++ <property name="jbosscache-configuration" value="conf/standalone/cluster/test-jbosscache-lock-config.xml" />
+ </properties>
+ </lock-manager></programlisting>
+- <para><filename>test-jbosscache-lock-config.xml</filename><programlisting><?xml version="1.0" encoding="UTF-8"?>
+-<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.2">
+
+- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
++ <para><filename>test-jbosscache-lock-config.xml</filename><programlisting><?xml version="1.0" encoding="UTF-8"?>
++<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.2">
+
+- <clustering mode="replication" clusterName="JBoss-Cache-Lock-Cluster_Name">
+- <stateRetrieval timeout="20000" fetchInMemoryState="false" nonBlocking="true" />
+- <jgroupsConfig>
++ <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
+
+- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true" recv_buf_size="20000000" send_buf_size="640000" discard_incompatible_packets="true"
+- max_bundle_size="64000" max_bundle_timeout="30" use_incoming_packet_handler="true" enable_bundling="false" use_send_queues="false" sock_conn_timeout="300"
+- skip_suspected_members="true" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="1" thread_pool.max_threads="25"
+- thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="false" thread_pool.queue_max_size="100" thread_pool.rejection_policy="run"
+- oob_thread_pool.enabled="true" oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
+- oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="run" />
+- <MPING timeout="2000" num_initial_members="2" mcast_port="34540" bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
+-
+-
+- <MERGE2 max_interval="30000" min_interval="10000" />
+- <FD_SOCK />
+- <FD max_tries="5" shun="true" timeout="10000" />
+- <VERIFY_SUSPECT timeout="1500" />
+- <pbcast.NAKACK discard_delivered_msgs="true" gc_lag="0" retransmit_timeout="300,600,1200,2400,4800" use_mcast_xmit="false" />
+- <UNICAST timeout="300,600,1200,2400,3600" />
+- <pbcast.STABLE desired_avg_gossip="50000" max_bytes="400000" stability_delay="1000" />
+- <pbcast.GMS join_timeout="5000" print_local_addr="true" shun="false" view_ack_collection_timeout="5000" view_bundling="true" />
+- <FRAG2 frag_size="60000" />
+- <pbcast.STREAMING_STATE_TRANSFER />
+- <pbcast.FLUSH timeout="0" />
+-
+- </jgroupsConfig
+-
+- <sync />
++ <clustering mode="replication" clusterName="JBoss-Cache-Lock-Cluster_Name">
++ <stateRetrieval timeout="20000" fetchInMemoryState="false" />
++ <jgroupsConfig multiplexerStack="jcr.stack" />
++ <sync />
+ </clustering>
+
+- <loaders passivation="false" shared="true">
++ <loaders passivation="false" shared="true">
+ <preload>
+- <node fqn="/" />
++ <node fqn="/" />
+ </preload>
+- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
++ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=jcrlocks_ws
+ cache.jdbc.table.create=true
+@@ -155,53 +172,69 @@
+ </loaders>
+
+ </jbosscache></programlisting></para>
++
+ <para>Configuration requirements:</para>
++
+ <itemizedlist>
+ <listitem>
+- <para><clustering mode="replication"
+- clusterName="JBoss-Cache-Lock-Cluster_Name"> - the cluster name must
+- be unique;</para>
++ <para><clustering mode="replication"
++ clusterName="JBoss-Cache-Lock-Cluster_Name"> - the cluster name
++ must be unique;</para>
+ </listitem>
++
+ <listitem>
+ <para><parameter>cache.jdbc.table.name</parameter> must be unique
+ per datasource;</para>
+ </listitem>
++
+ <listitem>
+ <para><parameter>cache.jdbc.node.type</parameter> and
+ <parameter>cache.jdbc.fqn.type</parameter> must be configured
+- according to using the database. See <link endterm="datatypes.title" linkend="datatypes"/> .</para>
++ according to your database.</para>
++
++ <note>
++ <para>To prevent any consistency issue regarding the lock data
++ please ensure that your cache loader is
++ <emphasis>org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader</emphasis>
++ and that your database engine is transactional.</para>
++ </note>
+ </listitem>
+ </itemizedlist>
+ </section>
++
+ <section>
+ <title>Template JBossCache Configuration</title>
+- <para>The second one is using the template JBoss-cache configuration for all
+- LockManagers.</para>
++
++ <para>The second one is using the template JBoss-cache configuration for
++ all LockManagers.</para>
++
+ <para><citetitle>Lock template configuration</citetitle></para>
++
+ <para><filename>test-jbosscache-lock.xml</filename></para>
+- <programlisting><?xml version="1.0" encoding="UTF-8"?>
+-<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+- lockAcquisitionTimeout="20000" />
++ <programlisting><?xml version="1.0" encoding="UTF-8"?>
++<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+- <clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+- <stateRetrieval timeout="20000" fetchInMemoryState="false" />
+- <jgroupsConfig multiplexerStack="jcr.stack" />
++ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
++ lockAcquisitionTimeout="20000" />
++
++ <clustering mode="replication" clusterName="${jbosscache-cluster-name}">
++ <stateRetrieval timeout="20000" fetchInMemoryState="false" />
++ <jgroupsConfig multiplexerStack="jcr.stack" />
+ <sync />
+ </clustering>
+
+- <loaders passivation="false" shared="true">
++ <loaders passivation="false" shared="true">
+ <!-- All the data of the JCR locks needs to be loaded at startup -->
+ <preload>
+- <node fqn="/" />
++ <node fqn="/" />
+ </preload>
+ <!--
+ For another cache-loader class you should use another template with
+ cache-loader specific parameters
+ ->
+- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async=q"false" fetchPersistentState="false"
+- ignoreModifications="false" purgeOnStartup="false">
++ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
++ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
+ cache.jdbc.table.create=${jbosscache-cl-cache.jdbc.table.create}
+@@ -217,70 +250,76 @@
+ </loader>
+ </loaders>
+ </jbosscache></programlisting>
++
+ <para>As you see, all configurable parameters are filled by templates
+ and will be replaced by LockManagers configuration parameters:</para>
+- <programlisting><lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
++
++ <programlisting><lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
+ <properties>
+- <property name="time-out" value="15m" />
+- <property name="jbosscache-configuration" value="test-jbosscache-lock.xml" />
+- <property name="jgroups-configuration" value="udp-mux.xml" />
+- <property name="jgroups-multiplexer-stack" value="true" />
+- <property name="jbosscache-cluster-name" value="JCR-cluster-locks-ws" />
+- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_ws" />
+- <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
+- <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
+- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_ws_pk" />
+- <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
+- <property name="jbosscache-cl-cache.jdbc.fqn.type" value="AUTO"/>
+- <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
+- <property name="jbosscache-cl-cache.jdbc.node.type" value="AUTO"/>
+- <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
+- <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
++ <property name="time-out" value="15m" />
++ <property name="jbosscache-configuration" value="test-jbosscache-lock.xml" />
++ <property name="jgroups-configuration" value="udp-mux.xml" />
++ <property name="jgroups-multiplexer-stack" value="true" />
++ <property name="jbosscache-cluster-name" value="JCR-cluster-locks-ws" />
++ <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_ws" />
++ <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
++ <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
++ <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_ws_pk" />
++ <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
++ <property name="jbosscache-cl-cache.jdbc.fqn.type" value="AUTO"/>
++ <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
++ <property name="jbosscache-cl-cache.jdbc.node.type" value="AUTO"/>
++ <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
++ <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+ </properties>
+ </lock-manager></programlisting>
++
+ <para>Configuration requirements:<itemizedlist>
+ <listitem>
+ <para><parameter>jbosscache-cl-cache.jdbc.fqn.column</parameter>
+ and <parameter>jbosscache-cl-cache.jdbc.node.type</parameter> is
+- the same as cache.jdbc.fqn.type and cache.jdbc.node.type in
++ the same as cache.jdbc.fqn.type and cache.jdbc.node.type in
+ JBoss-Cache configuration. You can set those data types according
+- to database type (See <link endterm="datatypes.title" linkend="datatypes"/>) or set it as AUTO (or do not set at
+- all) and data type will be detected automatically.</para>
++ to your database type or set it as AUTO (or do not set at all) and
++ data type will be detected automatically.</para>
+ </listitem>
++
+ <listitem>
+- <para>As you see, jgroups-configuration is moved to separate the configuration
+- file - udp-mux.xml. In this case, the udp-mux.xml file is a common JGroup
+- configuration for all components (QueryHandler, Cache, LockManager), but
+- we can still create our own configuration.</para>
++ <para>As you see, jgroups-configuration is moved to separate the
++ configuration file - udp-mux.xml. In this case, the udp-mux.xml
++ file is a common JGroup configuration for all components
++ (QueryHandler, Cache, LockManager), but we can still create our
++ own configuration.</para>
+ </listitem>
+ </itemizedlist></para>
+- <para><filename>our-udp-mux.xml</filename><programlisting><protocol_stacks>
+- <stack name="jcr.stack">
++
++ <para><filename>our udp-mux.xml</filename><programlisting><protocol_stacks>
++ <stack name="jcr.stack">
+ <config>
+- <UDP mcast_addr="228.10.10.10" mcast_port="45588" tos="8" ucast_recv_buf_size="20000000"
+- ucast_send_buf_size="640000" mcast_recv_buf_size="25000000" mcast_send_buf_size="640000" loopback="false"
+- discard_incompatible_packets="true" max_bundle_size="64000" max_bundle_timeout="30"
+- use_incoming_packet_handler="true" ip_ttl="2" enable_bundling="true" enable_diagnostics="true"
+- thread_naming_pattern="cl" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="2"
+- thread_pool.max_threads="8" thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="true"
+- thread_pool.queue_max_size="1000" thread_pool.rejection_policy="discard" oob_thread_pool.enabled="true"
+- oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
+- oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="Run" />
++ <UDP mcast_addr="228.10.10.10" mcast_port="45588" tos="8" ucast_recv_buf_size="20000000"
++ ucast_send_buf_size="640000" mcast_recv_buf_size="25000000" mcast_send_buf_size="640000" loopback="false"
++ discard_incompatible_packets="true" max_bundle_size="64000" max_bundle_timeout="30"
++ use_incoming_packet_handler="true" ip_ttl="2" enable_bundling="true" enable_diagnostics="true"
++ thread_naming_pattern="cl" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="2"
++ thread_pool.max_threads="8" thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="true"
++ thread_pool.queue_max_size="1000" thread_pool.rejection_policy="discard" oob_thread_pool.enabled="true"
++ oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
++ oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="Run" />
+
+- <PING timeout="2000" num_initial_members="3" />
+- <MERGE2 max_interval="30000" min_interval="10000" />
++ <PING timeout="2000" num_initial_members="3" />
++ <MERGE2 max_interval="30000" min_interval="10000" />
+ <FD_SOCK />
+- <FD timeout="10000" max_tries="5" shun="true" />
+- <VERIFY_SUSPECT timeout="1500" />
++ <FD timeout="10000" max_tries="5" shun="true" />
++ <VERIFY_SUSPECT timeout="1500" />
+ <BARRIER />
+- <pbcast.NAKACK use_stats_for_retransmission="false" exponential_backoff="150" use_mcast_xmit="true"
+- gc_lag="0" retransmit_timeout="50,300,600,1200" discard_delivered_msgs="true" />
+- <UNICAST timeout="300,600,1200" />
+- <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="1000000" />
+- <VIEW_SYNC avg_send_interval="60000" />
+- <pbcast.GMS print_local_addr="true" join_timeout="3000" shun="false" view_bundling="true" />
+- <FC max_credits="500000" min_threshold="0.20" />
+- <FRAG2 frag_size="60000" />
++ <pbcast.NAKACK use_stats_for_retransmission="false" exponential_backoff="150" use_mcast_xmit="true"
++ gc_lag="0" retransmit_timeout="50,300,600,1200" discard_delivered_msgs="true" />
++ <UNICAST timeout="300,600,1200" />
++ <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="1000000" />
++ <VIEW_SYNC avg_send_interval="60000" />
++ <pbcast.GMS print_local_addr="true" join_timeout="3000" shun="false" view_bundling="true" />
++ <FC max_credits="500000" min_threshold="0.20" />
++ <FRAG2 frag_size="60000" />
+ <!--pbcast.STREAMING_STATE_TRANSFER /-->
+ <pbcast.STATE_TRANSFER />
+ <!-- pbcast.FLUSH /-->
+@@ -288,62 +327,94 @@
+ </stack>
+ </protocol_stacks> </programlisting></para>
+ </section>
++
+ <section id="datatypes">
+ <title id="datatypes.title">Data Types in Different Databases</title>
++
+ <table>
+ <title>FQN type and node type in different databases</title>
++
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>DataBase name</entry>
++
+ <entry>Node data type</entry>
++
+ <entry>FQN data type</entry>
+ </row>
+ </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>MySQL</entry>
++
+ <entry>LONGBLOB</entry>
++
+ <entry>VARCHAR(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>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>Sybase</entry>
++
+ <entry>IMAGE</entry>
++
+ <entry>VARCHAR(512)</entry>
+ </row>
++
+ <row>
+ <entry>Ingres</entry>
++
+ <entry>long byte</entry>
++
+ <entry>VARCHAR(512)</entry>
+ </row>
+ </tbody>
+Index: exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml
+===================================================================
+--- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml (revision 5698)
++++ exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml (working copy)
+@@ -84,7 +84,7 @@
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+ <jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
++ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
+ lockAcquisitionTimeout="20000" />
+
+ <clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+@@ -95,11 +95,11 @@
+
+ <!-- Eviction configuration -->
+ <eviction wakeUpInterval="5000">
+- <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
++ <default algorithmClass="org.jboss.cache.eviction.ExpirationAlgorithm"
+ actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
+ eventQueueSize="1000000">
+ <property name="maxNodes" value="1000000" />
+- <property name="timeToLive" value="120000" />
++ <property name="warnNoExpirationKey" value="false" />
+ </default>
+ </eviction>
+ </jbosscache></programlisting>
+@@ -133,7 +133,7 @@
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+ <jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
++ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
+ lockAcquisitionTimeout="20000" />
+ <clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+ <stateRetrieval timeout="20000" fetchInMemoryState="false" />
+@@ -144,7 +144,7 @@
+ <preload>
+ <node fqn="/" />
+ </preload>
+- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
++ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
+@@ -162,6 +162,13 @@
+ </loaders>
+ </jbosscache></programlisting>
+
++ <para><note>
++ <para>To prevent any consistency issue regarding the lock data
++ please ensure that your cache loader is
++ <emphasis>org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader</emphasis>
++ and that your database engine is transactional.</para>
++ </note></para>
++
+ <table>
+ <title>Template variables</title>
+
+@@ -228,20 +235,13 @@
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+ <jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
+- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
++ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
+ lockAcquisitionTimeout="20000" />
+ <clustering mode="replication" clusterName="${jbosscache-cluster-name}">
+ <stateRetrieval timeout="20000" fetchInMemoryState="false" />
+ <jgroupsConfig multiplexerStack="jcr.stack" />
+ <sync />
+ </clustering>
+- <!-- Eviction configuration -->
+- <eviction wakeUpInterval="5000">
+- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
+- <property name="maxNodes" value="10000" />
+- <property name="minTimeToLive" value="60000" />
+- </default>
+- </eviction>
+ </jbosscache></programlisting>
+
+ <table>
+Index: exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestJBossCacheWorkspaceStorageCacheInClusterMode.java
+===================================================================
+--- exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestJBossCacheWorkspaceStorageCacheInClusterMode.java (revision 5698)
++++ exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestJBossCacheWorkspaceStorageCacheInClusterMode.java (working copy)
+@@ -759,6 +759,10 @@
+ public void rollback() throws IllegalStateException, RepositoryException
+ {
+ }
++
++ public void prepare() throws IllegalStateException, RepositoryException
++ {
++ }
+
+ public void update(NodeData data) throws RepositoryException, UnsupportedOperationException,
+ InvalidItemStateException, IllegalStateException
+Index: exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
+===================================================================
+--- exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java (revision 5698)
++++ exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java (working copy)
+@@ -412,6 +412,10 @@
+ public void commit() throws IllegalStateException, RepositoryException
+ {
+ }
++
++ public void prepare() throws IllegalStateException, RepositoryException
++ {
++ }
+
+ public void delete(NodeData data) throws RepositoryException, UnsupportedOperationException,
+ InvalidItemStateException, IllegalStateException
+@@ -526,7 +530,6 @@
+ {
+ }
+
+- @Override
+ public int getLastOrderNumber(NodeData parent) throws RepositoryException
+ {
+ return -1;
+Index: exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml
+===================================================================
+--- exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml (revision 5698)
++++ exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jbosscache-lock.xml (working copy)
+@@ -19,7 +19,7 @@
+ For another cache-loader class you should use another template with
+ cache-loader specific parameters
+ -->
+- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
++ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
+Index: exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml
+===================================================================
+--- exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml (revision 5698)
++++ exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-lock.xml (working copy)
+@@ -13,7 +13,7 @@
+ For another cache-loader class you should use another template with
+ cache-loader specific parameters
+ -->
+- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
++ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java (revision 0)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java (revision 0)
+@@ -0,0 +1,244 @@
++/*
++ * Copyright (C) 2012 eXo Platform SAS.
++ *
++ * 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.services.jcr.impl.core.lock.jbosscache;
++
++import org.exoplatform.services.log.ExoLogger;
++import org.exoplatform.services.log.Log;
++import org.jboss.cache.loader.AdjListJDBCCacheLoaderConfig;
++import org.jboss.cache.loader.ConnectionFactory;
++
++import java.sql.Connection;
++import java.sql.SQLException;
++
++import javax.naming.InitialContext;
++import javax.naming.NamingException;
++import javax.sql.DataSource;
++
++/**
++ * @author <a href="mailto:nicolas.filotto@exoplatform.com">Nicolas Filotto</a>
++ * @version $Id$
++ */
++public class JDBCConnectionFactory implements ConnectionFactory
++{
++
++ /**
++ * Logger
++ */
++ private static final Log LOG = ExoLogger.getLogger("exo.jcr.component.core.NonManagedConnectionFactory");
++ private static final boolean trace = LOG.isTraceEnabled();
++
++ static final ThreadLocal<Connection> connection = new ThreadLocal<Connection>();
++
++ private DataSource dataSource;
++ private String datasourceName;
++
++ public void setConfig(AdjListJDBCCacheLoaderConfig config)
++ {
++ datasourceName = config.getDatasourceName();
++ }
++
++ public void start() throws Exception
++ {
++ // A datasource will be registered in JNDI in the start portion of
++ // its lifecycle, so now that we are in start() we can look it up
++ InitialContext ctx = null;
++ try
++ {
++ ctx = new InitialContext();
++ dataSource = (DataSource) ctx.lookup(datasourceName);
++ if (trace)
++ {
++ LOG.trace("Datasource lookup for " + datasourceName + " succeded: " + dataSource);
++ }
++ }
++ catch (NamingException e)
++ {
++ reportAndRethrowError("Failed to lookup datasource " + datasourceName, e);
++ }
++ finally
++ {
++ if (ctx != null)
++ {
++ try
++ {
++ ctx.close();
++ }
++ catch (NamingException e)
++ {
++ LOG.warn("Failed to close naming context.", e);
++ }
++ }
++ }
++ }
++
++ public void prepare(Object tx)
++ {
++ Connection con = getConnection();
++ try
++ {
++ if (con.getAutoCommit())
++ {
++ con.setAutoCommit(false);
++ }
++ }
++ catch (Exception e)
++ {
++ reportAndRethrowError("Failed to set auto-commit", e);
++ }
++
++ /* Connection set in ThreadLocal, no reason to return. It was previously returned for legacy purpouses
++ and to trace log the connection opening in JDBCCacheLoader. */
++ connection.set(con);
++
++ if (trace)
++ {
++ LOG.trace("opened tx connection: tx=" + tx + ", con=" + con);
++ }
++
++ }
++
++ public Connection getConnection()
++ {
++ Connection con = connection.get();
++
++ if (con == null)
++ {
++ try
++ {
++ con = checkoutConnection();
++ // connection.set(con);
++ }
++ catch (SQLException e)
++ {
++ reportAndRethrowError("Failed to get connection for datasource=" + datasourceName, e);
++ }
++ }
++
++ if (trace)
++ {
++ LOG.trace("using connection: " + con);
++ }
++
++ return con;
++ }
++
++ public Connection checkoutConnection() throws SQLException
++ {
++ return dataSource.getConnection();
++ }
++
++ public void commit(Object tx)
++ {
++ Connection con = connection.get();
++ if (con == null)
++ {
++ throw new IllegalStateException("Failed to commit: thread is not associated with the connection!");
++ }
++
++ try
++ {
++ con.commit();
++ if (trace)
++ {
++ LOG.trace("committed tx=" + tx + ", con=" + con);
++ }
++ }
++ catch (SQLException e)
++ {
++ reportAndRethrowError("Failed to commit", e);
++ }
++ finally
++ {
++ closeTxConnection(con);
++ }
++ }
++
++ public void rollback(Object tx)
++ {
++ Connection con = connection.get();
++
++ try
++ {
++ con.rollback();
++ if (trace)
++ {
++ LOG.trace("rolledback tx=" + tx + ", con=" + con);
++ }
++ }
++ catch (SQLException e)
++ {
++ reportAndRethrowError("Failed to rollback", e);
++ }
++ finally
++ {
++ closeTxConnection(con);
++ }
++ }
++
++ public void close(Connection con)
++ {
++ if (con != null && con != connection.get())
++ {
++ try
++ {
++ con.close();
++
++ if (trace)
++ {
++ LOG.trace("closed non tx connection: " + con);
++ }
++ }
++ catch (SQLException e)
++ {
++ LOG.warn("Failed to close connection " + con, e);
++ }
++ }
++ }
++
++ public void stop()
++ {
++ }
++
++ private void closeTxConnection(Connection con)
++ {
++ safeClose(con);
++ connection.set(null);
++ }
++
++ private void safeClose(Connection con)
++ {
++ if (con != null)
++ {
++ try
++ {
++ con.close();
++ }
++ catch (SQLException e)
++ {
++ LOG.warn("Failed to close connection", e);
++ }
++ }
++ }
++
++ private void reportAndRethrowError(String message, Exception cause) throws IllegalStateException
++ {
++ LOG.error(message, cause);
++ throw new IllegalStateException(message, cause);
++ }
++}
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java (revision 0)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java (revision 0)
+@@ -0,0 +1,62 @@
++/*
++ * Copyright (C) 2012 eXo Platform SAS.
++ *
++ * 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.services.jcr.impl.core.lock.jbosscache;
++
++import org.jboss.cache.config.CacheLoaderConfig;
++import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
++import org.jboss.cache.loader.AdjListJDBCCacheLoaderConfig;
++
++/**
++ * This class is used to override the method AdjListJDBCCacheLoader#setConfig in order
++ * to be able to use a data source name even in case of non managed data sources.
++ *
++ * @author <a href="mailto:nicolas.filotto@exoplatform.com">Nicolas Filotto</a>
++ * @version $Id$
++ */
++public class JDBCCacheLoader extends org.jboss.cache.loader.JDBCCacheLoader
++{
++
++ @Override
++ public void setConfig(IndividualCacheLoaderConfig base)
++ {
++ super.setConfig(base);
++ AdjListJDBCCacheLoaderConfig config = processConfig(base);
++
++ if (config.getDatasourceName() == null)
++ {
++ return;
++ }
++ /* We create the JDBCConnectionFactory instance but the JNDI lookup is no done until
++the start method is called, since that's when its registered in its lifecycle */
++ cf = new JDBCConnectionFactory();
++ /* We set the configuration */
++ cf.setConfig(config);
++ }
++
++ /**
++ * {@inheritDoc}
++ */
++ @Override
++ protected AdjListJDBCCacheLoaderConfig processConfig(CacheLoaderConfig.IndividualCacheLoaderConfig base)
++ {
++ AdjListJDBCCacheLoaderConfig config = super.processConfig(base);
++ config.setClassName(getClass().getName());
++ return config;
++ }
++}
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java (working copy)
+@@ -58,6 +58,9 @@
+
+ import javax.jcr.InvalidItemStateException;
+ import javax.jcr.RepositoryException;
++import javax.transaction.Status;
++import javax.transaction.Synchronization;
++import javax.transaction.TransactionManager;
+
+ /**
+ * Created by The eXo Platform SAS.<br>
+@@ -86,10 +89,6 @@
+ protected final WorkspaceDataContainer systemDataContainer;
+
+ /**
+- * Value sorages provider (for dest file suggestion on save).
+- */
+- // TODO protected final ValueStoragePluginProvider valueStorageProvider;
+- /**
+ * Persistent level listeners. This listeners can be filtered by filters from
+ * <code>liestenerFilters</code> list.
+ */
+@@ -109,6 +108,11 @@
+ * Read-only status.
+ */
+ protected boolean readOnly = false;
++
++ /**
++ * The transaction manager
++ */
++ protected final TransactionManager transactionManager;
+
+ /**
+ * WorkspacePersistentDataManager constructor.
+@@ -119,9 +123,24 @@
+ * holder of system workspace data container
+ */
+ public WorkspacePersistentDataManager(WorkspaceDataContainer dataContainer,
+- //ValueStoragePluginProvider valueStorageProvider,
+ SystemDataContainerHolder systemDataContainerHolder)
+ {
++ this(dataContainer, systemDataContainerHolder, null);
++ }
++
++ /**
++ * WorkspacePersistentDataManager constructor.
++ *
++ * @param dataContainer
++ * workspace data container
++ * @param systemDataContainerHolder
++ * holder of system workspace data container
++ * @param tm
++ * the transaction manager
++ */
++ public WorkspacePersistentDataManager(WorkspaceDataContainer dataContainer,
++ SystemDataContainerHolder systemDataContainerHolder, TransactionManager transactionManager)
++ {
+ this.dataContainer = dataContainer;
+ this.systemDataContainer = systemDataContainerHolder.getContainer();
+ // this.valueStorageProvider = valueStorageProvider;
+@@ -129,6 +148,7 @@
+ this.listeners = new ArrayList<ItemsPersistenceListener>();
+ this.mandatoryListeners = new ArrayList<MandatoryItemsPersistenceListener>();
+ this.liestenerFilters = new ArrayList<ItemsPersistenceListenerFilter>();
++ this.transactionManager = transactionManager;
+ }
+
+ /**
+@@ -146,7 +166,7 @@
+
+ // whole log will be reconstructed with persisted data
+ ItemStateChangesLog persistedLog;
+-
++ boolean failed = true;
+ try
+ {
+ if (changesLog instanceof PlainChangesLogImpl)
+@@ -172,7 +192,10 @@
+ // we don't support other types now... i.e. add else-if for that type here
+ throw new RepositoryException("Unsupported changes log class " + changesLog.getClass());
+ }
+- persister.commit();
++ persister.prepare();
++ notifySaveItems(persistedLog, true);
++ onCommit(persister);
++ failed = false;
+ }
+ catch (IOException e)
+ {
+@@ -180,12 +203,73 @@
+ }
+ finally
+ {
+- persister.rollback();
++ persister.clear();
++ if (failed)
++ {
++ persister.rollback();
++ }
+ }
+
+- notifySaveItems(persistedLog, true);
+ }
++
++ private void onCommit(final ChangesLogPersister persister) throws RepositoryException
++ {
++ if (transactionManager == null)
++ {
++ persister.commit();
++ }
++ else
++ {
++ try
++ {
++ transactionManager.getTransaction().registerSynchronization(new Synchronization()
++ {
+
++ public void beforeCompletion()
++ {
++ }
++
++ public void afterCompletion(int status)
++ {
++ switch (status)
++ {
++ case Status.STATUS_COMMITTED:
++ try
++ {
++ persister.commit();
++ }
++ catch (Exception e)
++ {
++ throw new RuntimeException("Could not commit the transaction", e);
++ }
++ break;
++ case Status.STATUS_UNKNOWN:
++ LOG.warn("Status UNKNOWN received in afterCompletion method, some data could have been corrupted !!");
++ case Status.STATUS_MARKED_ROLLBACK:
++ case Status.STATUS_ROLLEDBACK:
++ try
++ {
++ persister.rollback();
++ }
++ catch (Exception e)
++ {
++ LOG.error("Could not roll back the transaction", e);
++ }
++ break;
++
++ default:
++ throw new IllegalStateException("illegal status: " + status);
++ }
++ }
++ });
++ }
++ catch (Exception e)
++ {
++ throw new RepositoryException("Cannot register the synchronization for a late commit", e);
++ }
++ }
++ }
++
+ class ChangesLogPersister
+ {
+
+@@ -207,20 +291,35 @@
+ }
+ }
+
+- protected void rollback() throws IllegalStateException, RepositoryException
++ protected void prepare() throws IllegalStateException, RepositoryException
+ {
+ if (thisConnection != null && thisConnection.isOpened())
+ {
+- thisConnection.rollback();
++ thisConnection.prepare();
+ }
+ if (systemConnection != null && !systemConnection.equals(thisConnection) && systemConnection.isOpened())
+ {
+- systemConnection.rollback();
++ systemConnection.prepare();
+ }
++ }
+
++ protected void clear()
++ {
+ // help to GC
+ addedNodes.clear();
+ }
++
++ protected void rollback() throws IllegalStateException, RepositoryException
++ {
++ if (thisConnection != null && thisConnection.isOpened())
++ {
++ thisConnection.rollback();
++ }
++ if (systemConnection != null && !systemConnection.equals(thisConnection) && systemConnection.isOpened())
++ {
++ systemConnection.rollback();
++ }
++ }
+
+ protected WorkspaceStorageConnection getSystemConnection() throws RepositoryException
+ {
+@@ -475,7 +574,6 @@
+ /**
+ * {@inheritDoc}
+ */
+- @Override
+ public int getLastOrderNumber(final NodeData nodeData) throws RepositoryException
+ {
+ final WorkspaceStorageConnection con = dataContainer.openConnection();
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java (working copy)
+@@ -43,7 +43,6 @@
+ import java.util.concurrent.CountDownLatch;
+
+ import javax.jcr.RepositoryException;
+-import javax.transaction.TransactionManager;
+
+ /**
+ * Created by The eXo Platform SAS.
+@@ -67,8 +66,6 @@
+ */
+ protected final ConcurrentMap<Integer, DataRequest> requestCache;
+
+- private TransactionManager transactionManager;
+-
+ /**
+ * ItemData request, used on get operations.
+ *
+@@ -297,13 +294,11 @@
+ public CacheableWorkspaceDataManager(WorkspaceDataContainer dataContainer, WorkspaceStorageCache cache,
+ SystemDataContainerHolder systemDataContainerHolder, TransactionService transactionService)
+ {
+- super(dataContainer, systemDataContainerHolder);
++ super(dataContainer, systemDataContainerHolder, transactionService.getTransactionManager());
+ this.cache = cache;
+
+ this.requestCache = new ConcurrentHashMap<Integer, DataRequest>();
+ addItemPersistenceListener(cache);
+-
+- transactionManager = transactionService.getTransactionManager();
+ }
+
+ /**
+@@ -319,20 +314,13 @@
+ public CacheableWorkspaceDataManager(WorkspaceDataContainer dataContainer, WorkspaceStorageCache cache,
+ SystemDataContainerHolder systemDataContainerHolder)
+ {
+- super(dataContainer, systemDataContainerHolder);
++ super(dataContainer, systemDataContainerHolder, cache instanceof JBossCacheWorkspaceStorageCache
++ ? ((JBossCacheWorkspaceStorageCache)cache).getTransactionManager() : null);
+ this.cache = cache;
+
+ this.requestCache = new ConcurrentHashMap<Integer, DataRequest>();
+ addItemPersistenceListener(cache);
+
+- if (cache instanceof JBossCacheWorkspaceStorageCache)
+- {
+- transactionManager = ((JBossCacheWorkspaceStorageCache)cache).getTransactionManager();
+- }
+- else
+- {
+- transactionManager = null;
+- }
+ }
+
+ /**
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java (working copy)
+@@ -235,6 +235,10 @@
+ public void rollback() throws IllegalStateException, RepositoryException
+ {
+ }
++
++ public void prepare() throws IllegalStateException, RepositoryException
++ {
++ }
+
+ public void close() throws IllegalStateException, RepositoryException
+ {
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java (working copy)
+@@ -336,18 +336,40 @@
+ {
+ closeStatements();
+
+- if (!this.readOnly)
++ if (!readOnly)
+ {
+- dbConnection.rollback();
++ try
++ {
++ dbConnection.rollback();
++ }
++ finally
++ {
++ // rollback from the end
++ IOException e = null;
++ for (int p = valueChanges.size() - 1; p >= 0; p--)
++ {
++ try
++ {
++ valueChanges.get(p).rollback();
++ }
++ catch (IOException e1)
++ {
++ if (e == null)
++ {
++ e = e1;
++ }
++ else
++ {
++ LOG.error("Could not rollback value change", e1);
++ }
++ }
++ }
++ if (e != null)
++ {
++ throw e;
++ }
++ }
+ }
+-
+- dbConnection.close();
+-
+- // rollback from the end
+- for (int p = valueChanges.size() - 1; p >= 0; p--)
+- {
+- valueChanges.get(p).rollback();
+- }
+ }
+ catch (SQLException e)
+ {
+@@ -360,6 +382,17 @@
+ finally
+ {
+ valueChanges.clear();
++ try
++ {
++ dbConnection.close();
++ }
++ catch (SQLException e)
++ {
++ if (LOG.isWarnEnabled())
++ {
++ LOG.warn("Could not close the connection", e);
++ }
++ }
+ }
+ }
+
+@@ -561,6 +594,24 @@
+ LOG.error("Can't close the statement: " + e);
+ }
+ }
++
++ /**
++ * {@inheritDoc}
++ */
++ public final void prepare() throws IllegalStateException, RepositoryException
++ {
++ try
++ {
++ for (ValueIOChannel vo : valueChanges)
++ {
++ vo.prepare();
++ }
++ }
++ catch (IOException e)
++ {
++ throw new RepositoryException(e);
++ }
++ }
+
+ /**
+ * {@inheritDoc}
+@@ -572,33 +623,44 @@
+ {
+ closeStatements();
+
+- if (!this.readOnly)
++ if (!readOnly)
+ {
+- dbConnection.commit();
+- }
+-
+- dbConnection.close();
+-
+- try
+- {
+- for (ValueIOChannel vo : valueChanges)
++ try
+ {
+- vo.commit();
++ for (ValueIOChannel vo : valueChanges)
++ {
++ vo.twoPhaseCommit();
++ }
+ }
++ catch (IOException e)
++ {
++ throw new RepositoryException(e);
++ }
++ finally
++ {
++ valueChanges.clear();
++ }
++ dbConnection.commit();
+ }
+- catch (IOException e)
+- {
+- throw new RepositoryException(e);
+- }
+- finally
+- {
+- valueChanges.clear();
+- }
+ }
+ catch (SQLException e)
+ {
+ throw new RepositoryException(e);
+ }
++ finally
++ {
++ try
++ {
++ dbConnection.close();
++ }
++ catch (SQLException e)
++ {
++ if (LOG.isWarnEnabled())
++ {
++ LOG.warn("Could not close the connection", e);
++ }
++ }
++ }
+ }
+
+ /**
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java (working copy)
+@@ -63,6 +63,12 @@
+ * <code>rollback()</code>
+ */
+ private static final String ROLLBACK_DESCR = "rollback";
++
++ /**
++ * The description of the statistics corresponding to the method
++ * <code>prepare()</code>
++ */
++ private static final String PREPARE_DESCR = "prepare";
+
+ /**
+ * The description of the statistics corresponding to the method
+@@ -200,6 +206,8 @@
+ ALL_STATISTICS.put(RENAME_NODE_DATA_DESCR, new Statistics(GLOBAL_STATISTICS, RENAME_NODE_DATA_DESCR));
+ // Rollback
+ ALL_STATISTICS.put(ROLLBACK_DESCR, new Statistics(GLOBAL_STATISTICS, ROLLBACK_DESCR));
++ // Prepare
++ ALL_STATISTICS.put(PREPARE_DESCR, new Statistics(GLOBAL_STATISTICS, PREPARE_DESCR));
+ // Others
+ ALL_STATISTICS.put(IS_OPENED_DESCR, new Statistics(null, IS_OPENED_DESCR));
+ ALL_STATISTICS.put(CLOSE_DESCR, new Statistics(null, CLOSE_DESCR));
+@@ -524,6 +532,23 @@
+ /**
+ * {@inheritDoc}
+ */
++ public void prepare() throws IllegalStateException, RepositoryException
++ {
++ Statistics s = ALL_STATISTICS.get(PREPARE_DESCR);
++ try
++ {
++ s.begin();
++ wcs.prepare();
++ }
++ finally
++ {
++ s.end();
++ }
++ }
++
++ /**
++ * {@inheritDoc}
++ */
+ public void rollback() throws IllegalStateException, RepositoryException
+ {
+ Statistics s = ALL_STATISTICS.get(ROLLBACK_DESCR);
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java (working copy)
+@@ -121,6 +121,15 @@
+ /**
+ * {@inheritDoc}
+ */
++ public void prepare() throws IOException
++ {
++ for (ValueOperation vo : changes)
++ vo.prepare();
++ }
++
++ /**
++ * {@inheritDoc}
++ */
+ public void commit() throws IOException
+ {
+ try
+@@ -133,6 +142,22 @@
+ changes.clear();
+ }
+ }
++
++ /**
++ * {@inheritDoc}
++ */
++ public void twoPhaseCommit() throws IOException
++ {
++ try
++ {
++ for (ValueOperation vo : changes)
++ vo.twoPhaseCommit();
++ }
++ finally
++ {
++ changes.clear();
++ }
++ }
+
+ /**
+ * {@inheritDoc}
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java (working copy)
+@@ -148,61 +148,67 @@
+ * {@inheritDoc}
+ */
+ @Override
+- public void commit() throws IOException
++ public void prepare() throws IOException
+ {
+ if (fileLock != null)
++ {
++ // write VCAS record first
+ try
+ {
+- // write VCAS record first
+- try
++ vcas.addValue(propertyId, orderNumb, vcasHash);
++ }
++ catch (RecordAlreadyExistsException e)
++ {
++ if (tempFile != null && tempFile.exists() && !tempFile.delete())
+ {
+- vcas.addValue(propertyId, orderNumb, vcasHash);
++ LOG.warn("Can't delete CAS temp file. Added to file cleaner. " + tempFile.getAbsolutePath());
++ cleaner.addFile(tempFile);
+ }
+- catch (RecordAlreadyExistsException e)
+- {
+- if (tempFile != null && tempFile.exists() && !tempFile.delete())
+- {
+- LOG.warn("Can't delete CAS temp file. Added to file cleaner. " + tempFile.getAbsolutePath());
+- cleaner.addFile(tempFile);
+- }
+- throw new RecordAlreadyExistsException("Write error: " + e, e);
+- }
++ throw new RecordAlreadyExistsException("Write error: " + e, e);
++ }
+
+- if (!vcasFile.exists())
+- {
+- // it's new CAS Value, we have to move temp to vcas location
+- // use RENAME only, don't copy - as copy will means that destination already exists etc.
++ if (!vcasFile.exists())
++ {
++ // it's new CAS Value, we have to move temp to vcas location
++ // use RENAME only, don't copy - as copy will means that destination already exists etc.
+
+- // make sure parent dir exists
+- vcasFile.getParentFile().mkdirs();
+- // rename propetynamed file to hashnamed one
+- if (!tempFile.renameTo(vcasFile))
+- {
+- throw new VCASException("File " + tempFile.getAbsolutePath() + " can't be renamed to VCAS-named "
+- + vcasFile.getAbsolutePath());
+- }
+- } // else - CASed Value already exists
+-
+- if (!value.isByteArray() && value instanceof StreamPersistedValueData)
++ // make sure parent dir exists
++ vcasFile.getParentFile().mkdirs();
++ // rename propetynamed file to hashnamed one
++ if (!tempFile.renameTo(vcasFile))
+ {
+- // set persisted file
+- ((StreamPersistedValueData)value).setPersistedFile(vcasFile);
++ throw new VCASException("File " + tempFile.getAbsolutePath() + " can't be renamed to VCAS-named "
++ + vcasFile.getAbsolutePath());
+ }
++ } // else - CASed Value already exists
+
+- }
+- finally
++ if (!value.isByteArray() && value instanceof StreamPersistedValueData)
+ {
+- // remove temp file
+- tempFile.delete(); // should be ok without file cleaner
+-
+- fileLock.unlock();
++ // set persisted file
++ ((StreamPersistedValueData)value).setPersistedFile(vcasFile);
+ }
++ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
++ public void twoPhaseCommit() throws IOException
++ {
++ if (fileLock != null)
++ {
++ // remove temp file
++ tempFile.delete(); // should be ok without file cleaner
++
++ fileLock.unlock();
++ }
++ }
++
++ /**
++ * {@inheritDoc}
++ */
++ @Override
+ public void rollback() throws IOException
+ {
+ if (fileLock != null)
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java (working copy)
+@@ -23,6 +23,7 @@
+
+ import java.io.File;
+ import java.io.IOException;
++import java.util.concurrent.atomic.AtomicLong;
+
+ /**
+ * Created by The eXo Platform SAS.
+@@ -35,6 +36,7 @@
+ */
+ public class DeleteValues extends ValueFileOperation
+ {
++ private static final AtomicLong SEQUENCE = new AtomicLong();
+
+ /**
+ * Files to be deleted.
+@@ -47,6 +49,11 @@
+ private ValueFileLock[] locks;
+
+ /**
++ * The backup files
++ */
++ protected File[] bckFiles;
++
++ /**
+ * DeleteValues constructor.
+ *
+ * @param files
+@@ -83,24 +90,61 @@
+ /**
+ * {@inheritDoc}
+ */
++ public void prepare() throws IOException
++ {
++ if (locks != null)
++ {
++ bckFiles = new File[files.length];
++ for (int i = 0,length = files.length; i < length; i++)
++ {
++ File file = files[i];
++ if (file.exists())
++ {
++ bckFiles[i] = new File(file.getAbsolutePath() + "." + System.currentTimeMillis() + "_" + SEQUENCE.incrementAndGet());
++ if (!file.renameTo(bckFiles[i]))
++ {
++ throw new IOException("Could not rename the file " + file.getAbsolutePath() + " to " + bckFiles[i].getAbsolutePath());
++ }
++ }
++ }
++ }
++ }
++
++ /**
++ * {@inheritDoc}
++ */
+ public void rollback() throws IOException
+ {
+ if (locks != null)
+- for (ValueFileLock fl : locks)
+- fl.unlock();
++ try
++ {
++ for (int i = 0,length = files.length; i < length; i++)
++ {
++ File f = bckFiles[i];
++ if (f != null)
++ {
++ f.renameTo(files[i]);
++ }
++ }
++ }
++ finally
++ {
++ for (ValueFileLock fl : locks)
++ fl.unlock();
++ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+- public void commit() throws IOException
++ public void twoPhaseCommit() throws IOException
+ {
+ if (locks != null)
+ try
+ {
+- for (File f : files)
++ for (File f : bckFiles)
+ {
+- if (!f.delete())
++ if (f != null && !f.delete())
+ // TODO possible place of error: FileNotFoundException when we delete/update existing
+ // Value and then add/update again.
+ // After the time the Cleaner will delete the file which is mapped to the Value.
+@@ -110,9 +154,8 @@
+ }
+ finally
+ {
+- if (locks != null)
+- for (ValueFileLock fl : locks)
+- fl.unlock();
++ for (ValueFileLock fl : locks)
++ fl.unlock();
+ }
+ }
+ }
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java (working copy)
+@@ -79,34 +79,47 @@
+ fileLock = new ValueFileLock(file);
+ fileLock.lock();
+ }
+-
+- /**
+- * {@inheritDoc}
+- */
+- public void rollback() throws IOException
++
++ public void prepare() throws IOException
+ {
+ if (fileLock != null)
+- fileLock.unlock();
++ {
++ // be sure the destination dir exists (case for Tree-style storage)
++ file.getParentFile().mkdirs();
++ // write value to the file
++ writeValue(file, value);
++ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+- public void commit() throws IOException
++ public void rollback() throws IOException
+ {
+ if (fileLock != null)
++ {
+ try
+ {
+- // be sure the destination dir exists (case for Tree-style storage)
+- file.getParentFile().mkdirs();
+-
+- // write value to the file
+- writeValue(file, value);
++ if (file.exists() && !file.delete())
++ {
++ cleaner.addFile(file);
++ }
+ }
+ finally
+ {
+ fileLock.unlock();
+ }
++ }
+ }
+
++ /**
++ * {@inheritDoc}
++ */
++ public void twoPhaseCommit() throws IOException
++ {
++ if (fileLock != null)
++ {
++ fileLock.unlock();
++ }
++ }
+ }
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java (working copy)
+@@ -81,11 +81,11 @@
+ * {@inheritDoc}
+ */
+ @Override
+- public void commit() throws IOException
++ public void prepare() throws IOException
+ {
+ try
+ {
+- super.commit();
++ super.prepare();
+ }
+ finally
+ {
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java (working copy)
+@@ -276,4 +276,19 @@
+
+ performed = true;
+ }
++
++ /**
++ * {@inheritDoc}
++ */
++ public void commit() throws IOException
++ {
++ try
++ {
++ prepare();
++ }
++ finally
++ {
++ twoPhaseCommit();
++ }
++ }
+ }
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java (working copy)
+@@ -49,11 +49,26 @@
+ void rollback() throws IOException;
+
+ /**
+- * Commit Value content.
++ * Commit Value content (one phase).
+ *
+ * @throws IOException
+ * if error occurs
+ */
+ void commit() throws IOException;
+
++ /**
++ * Prepare Value content.
++ *
++ * @throws IOException
++ * if error occurs
++ */
++ void prepare() throws IOException;
++
++ /**
++ * Commit Value content (two phases).
++ *
++ * @throws IOException
++ * if error occurs
++ */
++ void twoPhaseCommit() throws IOException;
+ }
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java (working copy)
+@@ -38,7 +38,7 @@
+ * should have "opened" state. The connection becomes "closed" (invalid for using) after calling
+ * commit() or rollback() methods. In this case methods calling will cause an IllegalStateException
+ *
+- * Connection object intendend to be as "light" as possible i.e. connection creation SHOULD NOT be
++ * Connection object intends to be as "light" as possible i.e. connection creation SHOULD NOT be
+ * expensive operation, so better NOT to open/close potentially EXPENSIVE resources using by
+ * Connection (WorkspaceDataContainer should be responsible for that). The Connection IS NOT a
+ * thread-safe object and normally SHOULD NOT be pooled/cached.
+@@ -57,10 +57,10 @@
+ * - the item's parent NodeData
+ * @param name
+ * - item's path entry (QName + index)
+- * @return - stored ItemData wich has exact the same path Entry (name+index) inside the parent; or
++ * @return - stored ItemData which has exact the same path Entry (name+index) inside the parent; or
+ * null if not such an item data found
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -77,10 +77,10 @@
+ * - item's path entry (QName + index)
+ * @param itemType
+ * item type
+- * @return - stored ItemData wich has exact the same path Entry (name+index) inside the parent; or
++ * @return - stored ItemData which has exact the same path Entry (name+index) inside the parent; or
+ * null if not such an item data found
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -92,12 +92,12 @@
+ *
+ * @param identifier
+ * - Item identifier
+- * @return stored ItemData or null if no item foudn with given id. Basically used for
++ * @return stored ItemData or null if no item found with given id. Basically used for
+ * Session.getNodeByUUID but not necessarily refers to jcr:uuid property (In fact, this
+ * identifier should not necessary be equal of referenceable node's UUID if any) thereby
+ * can return NodeData for not referenceable node data or PropertyData.
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -110,7 +110,7 @@
+ * NodeData
+ * @return child nodes data or empty <code>List</code>
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -142,7 +142,7 @@
+ * NodeData
+ * @return child properties data or empty <code>List</code>
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -153,13 +153,13 @@
+ * storage using item's parent location.
+ *
+ * <br/>
+- * This methiod specially dedicated for non-content modification operations (e.g. Items delete).
++ * This method specially dedicated for non-content modification operations (e.g. Items delete).
+ *
+ * @param parent
+ * NodeData
+ * @return child properties data (with empty data) or empty <code>List</code>
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -178,7 +178,7 @@
+ * of referenceable Node
+ * @return list of referenced property data or empty <code>List</code>
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ * @throws UnsupportedOperationException
+@@ -197,7 +197,7 @@
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -214,7 +214,7 @@
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -229,12 +229,12 @@
+ * @throws InvalidItemStateException
+ * (1)if the data is already updated, i.e. persisted version value of persisted data >=
+ * of new data's persisted version value (2) if the persisted data is not NodeData (i.e.
+- * it is PropertyData). It means that some other proccess deleted original data and
++ * it is PropertyData). It means that some other process deleted original data and
+ * replace it with other type of data.
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -249,12 +249,12 @@
+ * @throws InvalidItemStateException
+ * (1)if the data is already updated, i.e. persisted version value of persisted data >=
+ * of new data's persisted version value (2) if the persisted data is not PropertyData
+- * (i.e. it is NodeData). It means that some other proccess deleted original data and
++ * (i.e. it is NodeData). It means that some other process deleted original data and
+ * replace it with other type of data.
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -269,12 +269,12 @@
+ * @throws InvalidItemStateException
+ * (1)if the data is already updated, i.e. persisted version value of persisted data >=
+ * of new data's persisted version value (2) if the persisted data is not PropertyData
+- * (i.e. it is NodeData). It means that some other proccess deleted original data and
++ * (i.e. it is NodeData). It means that some other process deleted original data and
+ * replace it with other type of data.
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -292,7 +292,7 @@
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -310,7 +310,7 @@
+ * @throws UnsupportedOperationException
+ * if operation is not supported (it is container for level 1)
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ * @throws IllegalStateException
+ * if connection is closed
+ */
+@@ -318,23 +318,33 @@
+ IllegalStateException;
+
+ /**
++ * Prepare the commit phase.
++ *
++ * @throws IllegalStateException
++ * if connection is already closed
++ * @throws RepositoryException
++ * if some exception occurred
++ */
++ void prepare() throws IllegalStateException, RepositoryException;
++
++ /**
+ * Persist changes and closes connection. It can be database transaction commit for instance etc.
+ *
+ * @throws IllegalStateException
+ * if connection is already closed
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ */
+ void commit() throws IllegalStateException, RepositoryException;
+
+ /**
+- * Refuses persistent changes and closes connection. It can be database transaction rollback for
++ * Refuses persistent changes and closes connection. It can be database transaction roll back for
+ * instance etc.
+ *
+ * @throws IllegalStateException
+ * if connection is already closed
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ */
+ void rollback() throws IllegalStateException, RepositoryException;
+
+@@ -344,7 +354,7 @@
+ * @throws IllegalStateException
+ * if connection is already closed
+ * @throws RepositoryException
+- * if some exception occured
++ * if some exception occurred
+ */
+ void close() throws IllegalStateException, RepositoryException;
+
+Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java
+===================================================================
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java (revision 5698)
++++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java (working copy)
+@@ -78,12 +78,28 @@
+ String getStorageId();
+
+ /**
+- * Commit channel changes.
++ * Prepare channel changes.
+ *
+ * @throws IOException
+ * if error occurs
+ */
++ void prepare() throws IOException;
++
++ /**
++ * Commit channel changes (one phase).
++ *
++ * @throws IOException
++ * if error occurs
++ */
+ void commit() throws IOException;
++
++ /**
++ * Commit channel changes (two phases).
++ *
++ * @throws IOException
++ * if error occurs
++ */
++ void twoPhaseCommit() throws IOException;
+
+ /**
+ * Rollback channel changes.
+Index: exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml
+===================================================================
+--- exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml (revision 5698)
++++ exo.jcr.component.core/src/main/resources/conf/portal/cluster/jbosscache-lock.xml (working copy)
+@@ -18,7 +18,7 @@
+ For another cache-loader class you should use another template with
+ cache-loader specific parameters
+ -->
+- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
++ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
14 years, 1 month
exo-jcr SVN: r5807 - in jcr/trunk: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent and 13 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-05 10:30:33 -0500 (Mon, 05 Mar 2012)
New Revision: 5807
Added:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/faq/jcr-faq.xml
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/cluster-config.xml
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml
Log:
EXOJCR-1763: avoided potential inconsistency related to replication timeout
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCCacheLoader.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -20,6 +20,7 @@
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCUtils;
import org.jboss.cache.config.CacheLoaderConfig;
+import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
import org.jboss.cache.loader.AdjListJDBCCacheLoaderConfig;
import java.sql.Connection;
@@ -27,7 +28,8 @@
/**
* This class is used to override the method AdjListJDBCCacheLoader#tableExists in order
- * to more easily ensure multi-schema support.
+ * to more easily ensure multi-schema support and the method AdjListJDBCCacheLoader#setConfig
+ * in order to be able to use a data source name even in case of non managed data sources.
*
* @author <a href="mailto:nfilotto@exoplatform.com">Nicolas Filotto</a>
* @version $Id$
@@ -41,7 +43,23 @@
{
return JDBCUtils.tableExists(tableName, con);
}
+ @Override
+ public void setConfig(IndividualCacheLoaderConfig base)
+ {
+ super.setConfig(base);
+ AdjListJDBCCacheLoaderConfig config = processConfig(base);
+ if (config.getDatasourceName() == null)
+ {
+ return;
+ }
+ /* We create the JDBCConnectionFactory instance but the JNDI lookup is no done until
+the start method is called, since that's when its registered in its lifecycle */
+ cf = new JDBCConnectionFactory();
+ /* We set the configuration */
+ cf.setConfig(config);
+ }
+
/**
* {@inheritDoc}
*/
Added: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/JDBCConnectionFactory.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) 2012 eXo Platform SAS.
+ *
+ * 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.services.jcr.impl.core.lock.jbosscache;
+
+import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.ExoContainerContext;
+import org.exoplatform.services.jdbc.DataSourceProvider;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+import org.jboss.cache.loader.AdjListJDBCCacheLoaderConfig;
+import org.jboss.cache.loader.ConnectionFactory;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+
+/**
+ * @author <a href="mailto:nicolas.filotto@exoplatform.com">Nicolas Filotto</a>
+ * @version $Id$
+ */
+public class JDBCConnectionFactory implements ConnectionFactory
+{
+
+ /**
+ * Logger
+ */
+ private static final Log LOG = ExoLogger.getLogger("exo.jcr.component.core.NonManagedConnectionFactory");
+
+ private static final boolean trace = LOG.isTraceEnabled();
+
+ static final ThreadLocal<Connection> connection = new ThreadLocal<Connection>();
+
+ private DataSource dataSource;
+
+ private String datasourceName;
+
+ public void setConfig(AdjListJDBCCacheLoaderConfig config)
+ {
+ datasourceName = config.getDatasourceName();
+ }
+
+ private DataSourceProvider getDataSourceProvider()
+ {
+ ExoContainer container = ExoContainerContext.getCurrentContainer();
+ if (container == null)
+ {
+ LOG.warn("The current container cannot be found which prevents to retrieve the DataSourceProvider");
+ return null;
+ }
+ DataSourceProvider dsProvider =
+ (DataSourceProvider)container.getComponentInstanceOfType(DataSourceProvider.class);
+ if (dsProvider == null)
+ {
+ LOG.warn("The DataSourceProvider cannot be found in the container " + container.getContext().getName()
+ + ", it will be considered as non managed ");
+ }
+ return dsProvider;
+ }
+
+ public void start() throws Exception
+ {
+ // A datasource will be registered in JNDI in the start portion of
+ // its lifecycle, so now that we are in start() we can look it up
+
+ DataSourceProvider dsProvider = getDataSourceProvider();
+ InitialContext ctx = null;
+ try
+ {
+ if (dsProvider == null)
+ {
+ ctx = new InitialContext();
+ dataSource = (DataSource)ctx.lookup(datasourceName);
+ }
+ else
+ {
+ dataSource = dsProvider.getDataSource(datasourceName);
+ }
+ if (trace)
+ {
+ LOG.trace("Datasource lookup for " + datasourceName + " succeded: " + dataSource);
+ }
+ }
+ catch (NamingException e)
+ {
+ reportAndRethrowError("Failed to lookup datasource " + datasourceName, e);
+ }
+ finally
+ {
+ if (ctx != null)
+ {
+ try
+ {
+ ctx.close();
+ }
+ catch (NamingException e)
+ {
+ LOG.warn("Failed to close naming context.", e);
+ }
+ }
+ }
+ }
+
+ public void prepare(Object tx)
+ {
+ Connection con = getConnection();
+ try
+ {
+ if (con.getAutoCommit())
+ {
+ con.setAutoCommit(false);
+ }
+ }
+ catch (Exception e)
+ {
+ reportAndRethrowError("Failed to set auto-commit", e);
+ }
+
+ /* Connection set in ThreadLocal, no reason to return. It was previously returned for legacy purpouses
+ and to trace log the connection opening in JDBCCacheLoader. */
+ connection.set(con);
+
+ if (trace)
+ {
+ LOG.trace("opened tx connection: tx=" + tx + ", con=" + con);
+ }
+
+ }
+
+ public Connection getConnection()
+ {
+ Connection con = connection.get();
+
+ if (con == null)
+ {
+ try
+ {
+ con = checkoutConnection();
+ // connection.set(con);
+ }
+ catch (SQLException e)
+ {
+ reportAndRethrowError("Failed to get connection for datasource=" + datasourceName, e);
+ }
+ }
+
+ if (trace)
+ {
+ LOG.trace("using connection: " + con);
+ }
+
+ return con;
+ }
+
+ public Connection checkoutConnection() throws SQLException
+ {
+ return dataSource.getConnection();
+ }
+
+ public void commit(Object tx)
+ {
+ Connection con = connection.get();
+ if (con == null)
+ {
+ throw new IllegalStateException("Failed to commit: thread is not associated with the connection!");
+ }
+
+ try
+ {
+ con.commit();
+ if (trace)
+ {
+ LOG.trace("committed tx=" + tx + ", con=" + con);
+ }
+ }
+ catch (SQLException e)
+ {
+ reportAndRethrowError("Failed to commit", e);
+ }
+ finally
+ {
+ closeTxConnection(con);
+ }
+ }
+
+ public void rollback(Object tx)
+ {
+ Connection con = connection.get();
+
+ try
+ {
+ con.rollback();
+ if (trace)
+ {
+ LOG.trace("rolledback tx=" + tx + ", con=" + con);
+ }
+ }
+ catch (SQLException e)
+ {
+ reportAndRethrowError("Failed to rollback", e);
+ }
+ finally
+ {
+ closeTxConnection(con);
+ }
+ }
+
+ public void close(Connection con)
+ {
+ if (con != null && con != connection.get())
+ {
+ try
+ {
+ con.close();
+
+ if (trace)
+ {
+ LOG.trace("closed non tx connection: " + con);
+ }
+ }
+ catch (SQLException e)
+ {
+ LOG.warn("Failed to close connection " + con, e);
+ }
+ }
+ }
+
+ public void stop()
+ {
+ }
+
+ private void closeTxConnection(Connection con)
+ {
+ safeClose(con);
+ connection.set(null);
+ }
+
+ private void safeClose(Connection con)
+ {
+ if (con != null)
+ {
+ try
+ {
+ con.close();
+ }
+ catch (SQLException e)
+ {
+ LOG.warn("Failed to close connection", e);
+ }
+ }
+ }
+
+ private void reportAndRethrowError(String message, Exception cause) throws IllegalStateException
+ {
+ LOG.error(message, cause);
+ throw new IllegalStateException(message, cause);
+ }
+}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -128,8 +128,6 @@
private volatile BloomFilter<String> filterOwner;
- private TransactionManager transactionManager;
-
/**
* The service for executing commands on all nodes of cluster.
*/
@@ -397,7 +395,7 @@
WorkspaceStorageCache cache, SystemDataContainerHolder systemDataContainerHolder,
TransactionableResourceManager txResourceManager, TransactionService transactionService, RPCService rpcService)
{
- super(dataContainer, systemDataContainerHolder, txResourceManager);
+ super(dataContainer, systemDataContainerHolder, txResourceManager, transactionService.getTransactionManager());
bfProbability =
wsConfig.getContainer().getParameterDouble(WorkspaceDataContainer.ACL_BF_FALSE_PROPBABILITY,
@@ -422,8 +420,6 @@
this.requestCache = new ConcurrentHashMap<Integer, DataRequest>();
addItemPersistenceListener(new CacheItemsPersistenceListener());
- transactionManager = transactionService.getTransactionManager();
-
this.rpcService = rpcService;
this.txResourceManager = txResourceManager;
doInitRemoteCommands();
@@ -469,7 +465,7 @@
WorkspaceStorageCache cache, SystemDataContainerHolder systemDataContainerHolder,
TransactionableResourceManager txResourceManager, RPCService rpcService)
{
- super(dataContainer, systemDataContainerHolder, txResourceManager);
+ super(dataContainer, systemDataContainerHolder, txResourceManager, getTransactionManagerFromCache(cache));
bfProbability =
wsConfig.getContainer().getParameterDouble(WorkspaceDataContainer.ACL_BF_FALSE_PROPBABILITY,
@@ -494,18 +490,6 @@
this.requestCache = new ConcurrentHashMap<Integer, DataRequest>();
addItemPersistenceListener(new CacheItemsPersistenceListener());
- try
- {
- transactionManager =
- (TransactionManager)cache.getClass().getMethod("getTransactionManager", (Class<?>[])null)
- .invoke(cache, (Object[])null);
- }
- catch (Exception e)
- {
- LOG.debug("Could not get the transaction manager from the cache", e);
- transactionManager = null;
- }
-
this.rpcService = rpcService;
this.txResourceManager = txResourceManager;
doInitRemoteCommands();
@@ -551,6 +535,24 @@
}
/**
+ * Try to get the TransactionManager from the cache by calling by reflection
+ * getTransactionManager() on the cache instance, by default it will return null
+ */
+ private static TransactionManager getTransactionManagerFromCache(WorkspaceStorageCache cache)
+ {
+ try
+ {
+ return (TransactionManager)cache.getClass().getMethod("getTransactionManager", (Class<?>[])null)
+ .invoke(cache, (Object[])null);
+ }
+ catch (Exception e)
+ {
+ LOG.debug("Could not get the transaction manager from the cache", e);
+ }
+ return null;
+ }
+
+ /**
* Get Items Cache.
*
* @return WorkspaceStorageCache
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -61,6 +61,9 @@
import javax.jcr.InvalidItemStateException;
import javax.jcr.RepositoryException;
+import javax.transaction.Status;
+import javax.transaction.Synchronization;
+import javax.transaction.TransactionManager;
/**
* Created by The eXo Platform SAS.<br>
@@ -102,7 +105,7 @@
/**
* Persistent level listeners filters.
*/
- protected final List<ItemsPersistenceListenerFilter> liestenerFilters;
+ protected final List<ItemsPersistenceListenerFilter> listenerFilters;
/**
* Read-only status.
@@ -115,6 +118,10 @@
private final TransactionableResourceManager txResourceManager;
/**
+ * The transaction manager
+ */
+ protected final TransactionManager transactionManager;
+ /**
* Changes log wrapper adds possibility to replace changes log.
* Changes log contains transient data on save but listeners should be notifyed
* with persisted data only.
@@ -177,7 +184,7 @@
protected WorkspacePersistentDataManager(WorkspaceDataContainer dataContainer,
SystemDataContainerHolder systemDataContainerHolder)
{
- this(dataContainer, systemDataContainerHolder, null);
+ this(dataContainer, systemDataContainerHolder, null, null);
}
/**
@@ -191,15 +198,16 @@
* the resource manager used to manage the whole tx
*/
public WorkspacePersistentDataManager(WorkspaceDataContainer dataContainer,
- SystemDataContainerHolder systemDataContainerHolder, TransactionableResourceManager txResourceManager)
+ SystemDataContainerHolder systemDataContainerHolder, TransactionableResourceManager txResourceManager, TransactionManager transactionManager)
{
this.dataContainer = dataContainer;
this.systemDataContainer = systemDataContainerHolder.getContainer();
this.listeners = new ArrayList<ItemsPersistenceListener>();
this.mandatoryListeners = new ArrayList<MandatoryItemsPersistenceListener>();
- this.liestenerFilters = new ArrayList<ItemsPersistenceListenerFilter>();
+ this.listenerFilters = new ArrayList<ItemsPersistenceListenerFilter>();
this.txResourceManager = txResourceManager;
+ this.transactionManager = transactionManager;
}
/**
@@ -248,7 +256,7 @@
}
// replace log with persisted data only
logWrapper.setLog(persistedLog);
-
+ persister.prepare();
notifySaveItems(persistedLog, true);
onCommit(persister, mode);
failed = false;
@@ -262,7 +270,7 @@
persister.clear();
if (failed)
{
- onRollback(persister, mode);
+ persister.rollback();
}
}
}
@@ -274,22 +282,13 @@
{
if (txResourceManager != null && txResourceManager.isGlobalTxActive())
{
- return ConnectionMode.PARTIALLY_MANAGED;
+ return ConnectionMode.GLOBAL_TX;
}
- return ConnectionMode.NORMAL;
- }
-
- /**
- * @param persister
- * @throws RepositoryException
- */
- private void onRollback(final ChangesLogPersister persister, ConnectionMode mode) throws RepositoryException
- {
- if (mode == ConnectionMode.NORMAL || mode == ConnectionMode.PARTIALLY_MANAGED)
+ else if (transactionManager != null)
{
- // The rollback is done normally
- persister.rollback();
+ return ConnectionMode.WITH_TRANSACTION_MANAGER;
}
+ return ConnectionMode.NORMAL;
}
/**
@@ -303,8 +302,58 @@
// The commit is done normally
persister.commit();
}
- else if (mode == ConnectionMode.PARTIALLY_MANAGED)
+ else if (mode == ConnectionMode.WITH_TRANSACTION_MANAGER)
{
+ try
+ {
+ transactionManager.getTransaction().registerSynchronization(new Synchronization()
+ {
+
+ public void beforeCompletion()
+ {
+ }
+
+ public void afterCompletion(int status)
+ {
+ switch (status)
+ {
+ case Status.STATUS_COMMITTED:
+ try
+ {
+ persister.commit();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Could not commit the transaction", e);
+ }
+ break;
+ case Status.STATUS_UNKNOWN:
+ LOG.warn("Status UNKNOWN received in afterCompletion method, some data could have been corrupted !!");
+ case Status.STATUS_MARKED_ROLLBACK:
+ case Status.STATUS_ROLLEDBACK:
+ try
+ {
+ persister.rollback();
+ }
+ catch (Exception e)
+ {
+ LOG.error("Could not roll back the transaction", e);
+ }
+ break;
+
+ default:
+ throw new IllegalStateException("illegal status: " + status);
+ }
+ }
+ });
+ }
+ catch (Exception e)
+ {
+ throw new RepositoryException("Cannot register the synchronization for a late commit", e);
+ }
+ }
+ else if (mode == ConnectionMode.GLOBAL_TX)
+ {
// The commit or rollback will be done by callback once the tx will be completed since it could
// fail later in the tx
txResourceManager.addListener(new TransactionableResourceManagerListener()
@@ -328,7 +377,7 @@
}
private enum ConnectionMode {
- NORMAL, PARTIALLY_MANAGED
+ NORMAL, WITH_TRANSACTION_MANAGER, GLOBAL_TX
}
class ChangesLogPersister
@@ -352,6 +401,18 @@
}
}
+ protected void prepare() throws IllegalStateException, RepositoryException
+ {
+ if (thisConnection != null && thisConnection.isOpened())
+ {
+ thisConnection.prepare();
+ }
+ if (systemConnection != null && !systemConnection.equals(thisConnection) && systemConnection.isOpened())
+ {
+ systemConnection.prepare();
+ }
+ }
+
protected void clear()
{
// help to GC
@@ -961,7 +1022,7 @@
*/
public void addItemPersistenceListenerFilter(ItemsPersistenceListenerFilter filter)
{
- this.liestenerFilters.add(filter);
+ this.listenerFilters.add(filter);
}
/**
@@ -969,7 +1030,7 @@
*/
public void removeItemPersistenceListenerFilter(ItemsPersistenceListenerFilter filter)
{
- this.liestenerFilters.remove(filter);
+ this.listenerFilters.remove(filter);
}
/**
@@ -982,7 +1043,7 @@
*/
protected boolean isListenerAccepted(ItemsPersistenceListener listener)
{
- for (ItemsPersistenceListenerFilter f : liestenerFilters)
+ for (ItemsPersistenceListenerFilter f : listenerFilters)
{
if (!f.accept(listener))
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/inmemory/InmemoryStorageConnection.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -253,6 +253,10 @@
{
}
+ public void prepare() throws IllegalStateException, RepositoryException
+ {
+ }
+
public void close() throws IllegalStateException, RepositoryException
{
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCStorageConnection.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -346,16 +346,38 @@
if (!readOnly)
{
- dbConnection.rollback();
+ try
+ {
+ dbConnection.rollback();
+ }
+ finally
+ {
+ // rollback from the end
+ IOException e = null;
+ for (int p = valueChanges.size() - 1; p >= 0; p--)
+ {
+ try
+ {
+ valueChanges.get(p).rollback();
+ }
+ catch (IOException e1)
+ {
+ if (e == null)
+ {
+ e = e1;
+ }
+ else
+ {
+ LOG.error("Could not rollback value change", e1);
+ }
+ }
+ }
+ if (e != null)
+ {
+ throw e;
+ }
+ }
}
-
- dbConnection.close();
-
- // rollback from the end
- for (int p = valueChanges.size() - 1; p >= 0; p--)
- {
- valueChanges.get(p).rollback();
- }
}
catch (SQLException e)
{
@@ -368,6 +390,17 @@
finally
{
valueChanges.clear();
+ try
+ {
+ dbConnection.close();
+ }
+ catch (SQLException e)
+ {
+ if (LOG.isWarnEnabled())
+ {
+ LOG.warn("Could not close the connection", e);
+ }
+ }
}
}
@@ -573,6 +606,24 @@
LOG.error("Can't close the statement: " + e);
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public final void prepare() throws IllegalStateException, RepositoryException
+ {
+ try
+ {
+ for (ValueIOChannel vo : valueChanges)
+ {
+ vo.prepare();
+ }
+ }
+ catch (IOException e)
+ {
+ throw new RepositoryException(e);
+ }
+ }
/**
* {@inheritDoc}
@@ -584,33 +635,44 @@
{
closeStatements();
- if (!this.readOnly)
+ if (!readOnly)
{
+ try
+ {
+ for (ValueIOChannel vo : valueChanges)
+ {
+ vo.twoPhaseCommit();
+ }
+ }
+ catch (IOException e)
+ {
+ throw new RepositoryException(e);
+ }
+ finally
+ {
+ valueChanges.clear();
+ }
dbConnection.commit();
}
-
- dbConnection.close();
-
+ }
+ catch (SQLException e)
+ {
+ throw new RepositoryException(e);
+ }
+ finally
+ {
try
{
- for (ValueIOChannel vo : valueChanges)
+ dbConnection.close();
+ }
+ catch (SQLException e)
+ {
+ if (LOG.isWarnEnabled())
{
- vo.commit();
+ LOG.warn("Could not close the connection", e);
}
}
- catch (IOException e)
- {
- throw new RepositoryException(e);
- }
- finally
- {
- valueChanges.clear();
- }
}
- catch (SQLException e)
- {
- throw new RepositoryException(e);
- }
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/statistics/StatisticsJDBCStorageConnection.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -69,6 +69,12 @@
/**
* The description of the statistics corresponding to the method
+ * <code>prepare()</code>
+ */
+ private static final String PREPARE_DESCR = "prepare";
+
+ /**
+ * The description of the statistics corresponding to the method
* <code>rename(NodeData data)</code>
*/
private static final String RENAME_NODE_DATA_DESCR = "renameNodeData";
@@ -233,6 +239,8 @@
ALL_STATISTICS.put(RENAME_NODE_DATA_DESCR, new Statistics(GLOBAL_STATISTICS, RENAME_NODE_DATA_DESCR));
// Rollback
ALL_STATISTICS.put(ROLLBACK_DESCR, new Statistics(GLOBAL_STATISTICS, ROLLBACK_DESCR));
+ // Prepare
+ ALL_STATISTICS.put(PREPARE_DESCR, new Statistics(GLOBAL_STATISTICS, PREPARE_DESCR));
// Others
ALL_STATISTICS.put(IS_OPENED_DESCR, new Statistics(null, IS_OPENED_DESCR));
ALL_STATISTICS.put(CLOSE_DESCR, new Statistics(null, CLOSE_DESCR));
@@ -629,6 +637,23 @@
/**
* {@inheritDoc}
*/
+ public void prepare() throws IllegalStateException, RepositoryException
+ {
+ Statistics s = ALL_STATISTICS.get(PREPARE_DESCR);
+ try
+ {
+ s.begin();
+ wcs.prepare();
+ }
+ finally
+ {
+ s.end();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void rollback() throws IllegalStateException, RepositoryException
{
Statistics s = ALL_STATISTICS.get(ROLLBACK_DESCR);
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/ValueOperation.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -49,11 +49,26 @@
void rollback() throws IOException;
/**
- * Commit Value content.
+ * Commit Value content (one phase).
*
* @throws IOException
* if error occurs
*/
void commit() throws IOException;
+ /**
+ * Prepare Value content.
+ *
+ * @throws IOException
+ * if error occurs
+ */
+ void prepare() throws IOException;
+
+ /**
+ * Commit Value content (two phases).
+ *
+ * @throws IOException
+ * if error occurs
+ */
+ void twoPhaseCommit() throws IOException;
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/FileIOChannel.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -124,6 +124,15 @@
/**
* {@inheritDoc}
*/
+ public void prepare() throws IOException
+ {
+ for (ValueOperation vo : changes)
+ vo.prepare();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void commit() throws IOException
{
try
@@ -140,6 +149,22 @@
/**
* {@inheritDoc}
*/
+ public void twoPhaseCommit() throws IOException
+ {
+ try
+ {
+ for (ValueOperation vo : changes)
+ vo.twoPhaseCommit();
+ }
+ finally
+ {
+ changes.clear();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void rollback() throws IOException
{
try
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableDeleteValues.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -81,11 +81,11 @@
* {@inheritDoc}
*/
@Override
- public void commit() throws IOException
+ public void prepare() throws IOException
{
try
{
- super.commit();
+ super.prepare();
}
finally
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/CASableWriteValue.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -149,66 +149,71 @@
* {@inheritDoc}
*/
@Override
- public void commit() throws IOException
+ public void prepare() throws IOException
{
if (fileLock != null)
+ {
+ // write VCAS record first
try
{
- // write VCAS record first
- try
+ vcas.addValue(propertyId, orderNumb, vcasHash);
+ }
+ catch (RecordAlreadyExistsException e)
+ {
+ if (tempFile != null && tempFile.exists() && !tempFile.delete())
{
- vcas.addValue(propertyId, orderNumb, vcasHash);
+ LOG.warn("Can't delete CAS temp file. Added to file cleaner. " + tempFile.getAbsolutePath());
+ cleaner.addFile(tempFile);
}
- catch (RecordAlreadyExistsException e)
- {
- if (tempFile != null && tempFile.exists() && !tempFile.delete())
- {
- LOG.warn("Can't delete CAS temp file. Added to file cleaner. " + tempFile.getAbsolutePath());
- cleaner.addFile(tempFile);
- }
- throw new RecordAlreadyExistsException("Write error: " + e, e);
- }
+ throw new RecordAlreadyExistsException("Write error: " + e, e);
+ }
- if (!vcasFile.exists())
- {
- // it's new CAS Value, we have to move temp to vcas location
- // use RENAME only, don't copy - as copy will means that destination already exists etc.
+ if (!vcasFile.exists())
+ {
+ // it's new CAS Value, we have to move temp to vcas location
+ // use RENAME only, don't copy - as copy will means that destination already exists etc.
- // make sure parent dir exists
- vcasFile.getParentFile().mkdirs();
-
- // rename propetynamed file to hashnamed one
- try
- {
- DirectoryHelper.renameFile(tempFile, vcasFile);
- }
- catch (IOException e)
- {
- throw new VCASException("File " + tempFile.getAbsolutePath() + " can't be renamed to VCAS-named "
- + vcasFile.getAbsolutePath(), e);
- }
- } // else - CASed Value already exists
-
- if (!value.isByteArray() && value instanceof StreamPersistedValueData)
+ // make sure parent dir exists
+ vcasFile.getParentFile().mkdirs();
+ // rename propetynamed file to hashnamed one
+ try
{
- // set persisted file
- ((StreamPersistedValueData)value).setPersistedFile(vcasFile);
+ DirectoryHelper.renameFile(tempFile, vcasFile);
}
+ catch (IOException e)
+ {
+ throw new VCASException("File " + tempFile.getAbsolutePath() + " can't be renamed to VCAS-named "
+ + vcasFile.getAbsolutePath(), e);
+ }
+ } // else - CASed Value already exists
- }
- finally
+ if (!value.isByteArray() && value instanceof StreamPersistedValueData)
{
- // remove temp file
- tempFile.delete(); // should be ok without file cleaner
-
- fileLock.unlock();
+ // set persisted file
+ ((StreamPersistedValueData)value).setPersistedFile(vcasFile);
}
+ }
}
/**
* {@inheritDoc}
*/
@Override
+ public void twoPhaseCommit() throws IOException
+ {
+ if (fileLock != null)
+ {
+ // remove temp file
+ tempFile.delete(); // should be ok without file cleaner
+
+ fileLock.unlock();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void rollback() throws IOException
{
if (fileLock != null)
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/DeleteValues.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -19,10 +19,12 @@
package org.exoplatform.services.jcr.impl.storage.value.fs.operations;
import org.exoplatform.services.jcr.impl.storage.value.ValueDataResourceHolder;
+import org.exoplatform.services.jcr.impl.util.io.DirectoryHelper;
import org.exoplatform.services.jcr.impl.util.io.FileCleaner;
import java.io.File;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicLong;
/**
* Created by The eXo Platform SAS.
@@ -35,6 +37,7 @@
*/
public class DeleteValues extends ValueFileOperation
{
+ private static final AtomicLong SEQUENCE = new AtomicLong();
/**
* Files to be deleted.
@@ -47,6 +50,11 @@
private ValueFileLock[] locks;
/**
+ * The backup files
+ */
+ protected File[] bckFiles;
+
+ /**
* DeleteValues constructor.
*
* @param files
@@ -83,24 +91,58 @@
/**
* {@inheritDoc}
*/
+ public void prepare() throws IOException
+ {
+ if (locks != null)
+ {
+ bckFiles = new File[files.length];
+ for (int i = 0,length = files.length; i < length; i++)
+ {
+ File file = files[i];
+ if (file.exists())
+ {
+ bckFiles[i] = new File(file.getAbsolutePath() + "." + System.currentTimeMillis() + "_" + SEQUENCE.incrementAndGet());
+ DirectoryHelper.renameFile(file, bckFiles[i]);
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void rollback() throws IOException
{
if (locks != null)
- for (ValueFileLock fl : locks)
- fl.unlock();
+ try
+ {
+ for (int i = 0,length = files.length; i < length; i++)
+ {
+ File f = bckFiles[i];
+ if (f != null)
+ {
+ DirectoryHelper.renameFile(f, files[i]);
+ }
+ }
+ }
+ finally
+ {
+ for (ValueFileLock fl : locks)
+ fl.unlock();
+ }
}
/**
* {@inheritDoc}
*/
- public void commit() throws IOException
+ public void twoPhaseCommit() throws IOException
{
if (locks != null)
try
{
- for (File f : files)
+ for (File f : bckFiles)
{
- if (!f.delete())
+ if (f != null && !f.delete())
// Possible place of error: FileNotFoundException when we delete/update existing
// Value and then add/update again.
// After the time the Cleaner will delete the file which is mapped to the Value.
@@ -110,9 +152,8 @@
}
finally
{
- if (locks != null)
- for (ValueFileLock fl : locks)
- fl.unlock();
+ for (ValueFileLock fl : locks)
+ fl.unlock();
}
}
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/ValueFileOperation.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -282,4 +282,19 @@
performed = true;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void commit() throws IOException
+ {
+ try
+ {
+ prepare();
+ }
+ finally
+ {
+ twoPhaseCommit();
+ }
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/value/fs/operations/WriteValue.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -80,33 +80,46 @@
fileLock.lock();
}
- /**
- * {@inheritDoc}
- */
- public void rollback() throws IOException
+ public void prepare() throws IOException
{
if (fileLock != null)
- fileLock.unlock();
+ {
+ // be sure the destination dir exists (case for Tree-style storage)
+ file.getParentFile().mkdirs();
+ // write value to the file
+ writeValue(file, value);
+ }
}
/**
* {@inheritDoc}
*/
- public void commit() throws IOException
+ public void rollback() throws IOException
{
if (fileLock != null)
+ {
try
{
- // be sure the destination dir exists (case for Tree-style storage)
- file.getParentFile().mkdirs();
-
- // write value to the file
- writeValue(file, value);
+ if (file.exists() && !file.delete())
+ {
+ cleaner.addFile(file);
+ }
}
finally
{
fileLock.unlock();
}
+ }
}
+ /**
+ * {@inheritDoc}
+ */
+ public void twoPhaseCommit() throws IOException
+ {
+ if (fileLock != null)
+ {
+ fileLock.unlock();
+ }
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/WorkspaceStorageConnection.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -41,7 +41,7 @@
* should have "opened" state. The connection becomes "closed" (invalid for using) after calling
* commit() or rollback() methods. In this case methods calling will cause an IllegalStateException
*
- * Connection object intended to be as "light" as possible i.e. connection creation SHOULD NOT be
+ * Connection object intends to be as "light" as possible i.e. connection creation SHOULD NOT be
* expensive operation, so better NOT to open/close potentially EXPENSIVE resources using by
* Connection (WorkspaceDataContainer should be responsible for that). The Connection IS NOT a
* thread-safe object and normally SHOULD NOT be pooled/cached.
@@ -388,6 +388,16 @@
IllegalStateException;
/**
+ * Prepare the commit phase.
+ *
+ * @throws IllegalStateException
+ * if connection is already closed
+ * @throws RepositoryException
+ * if some exception occurred
+ */
+ void prepare() throws IllegalStateException, RepositoryException;
+
+ /**
* Persist changes and closes connection. It can be database transaction commit for instance etc.
*
* @throws IllegalStateException
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/storage/value/ValueIOChannel.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -102,14 +102,30 @@
String getStorageId();
/**
- * Commit channel changes.
+ * Prepare channel changes.
*
* @throws IOException
* if error occurs
*/
+ void prepare() throws IOException;
+
+ /**
+ * Commit channel changes (one phase).
+ *
+ * @throws IOException
+ * if error occurs
+ */
void commit() throws IOException;
/**
+ * Commit channel changes (two phases).
+ *
+ * @throws IOException
+ * if error occurs
+ */
+ void twoPhaseCommit() throws IOException;
+
+ /**
* Rollback channel changes.
*
* @throws IOException
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/BaseStandaloneTest.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -530,61 +530,51 @@
*/
public class TestWorkspaceDataContainer implements WorkspaceDataContainer
{
- @Override
public String getInfo()
{
return null;
}
- @Override
public String getName()
{
return null;
}
- @Override
public String getUniqueName()
{
return null;
}
- @Override
public String getStorageVersion()
{
return null;
}
- @Override
public Calendar getCurrentTime()
{
return null;
}
- @Override
public boolean isSame(WorkspaceDataContainer another)
{
return false;
}
- @Override
public WorkspaceStorageConnection openConnection() throws RepositoryException
{
return null;
}
- @Override
public WorkspaceStorageConnection openConnection(boolean readOnly) throws RepositoryException
{
return null;
}
- @Override
public WorkspaceStorageConnection reuseConnection(WorkspaceStorageConnection original) throws RepositoryException
{
return null;
}
- @Override
public boolean isCheckSNSNewConnection()
{
return false;
@@ -601,152 +591,134 @@
public class TestWorkspaceStorageConnection implements WorkspaceStorageConnection
{
- @Override
public ItemData getItemData(NodeData parentData, QPathEntry name) throws RepositoryException,
IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public ItemData getItemData(NodeData parentData, QPathEntry name, ItemType itemType) throws RepositoryException,
IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public ItemData getItemData(String identifier) throws RepositoryException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<NodeData> getChildNodesData(NodeData parent) throws RepositoryException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<NodeData> getChildNodesData(NodeData parent, List<QPathEntryFilter> pattern)
throws RepositoryException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public int getChildNodesCount(NodeData parent) throws RepositoryException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public int getLastOrderNumber(NodeData parent) throws RepositoryException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<PropertyData> getChildPropertiesData(NodeData parent) throws RepositoryException,
IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<PropertyData> getChildPropertiesData(NodeData parent, List<QPathEntryFilter> pattern)
throws RepositoryException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<PropertyData> listChildPropertiesData(NodeData parent) throws RepositoryException,
IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<PropertyData> getReferencesData(String nodeIdentifier) throws RepositoryException,
IllegalStateException, UnsupportedOperationException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void add(NodeData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void add(PropertyData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void update(NodeData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void update(PropertyData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void rename(NodeData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void delete(NodeData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void delete(PropertyData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
+ public void prepare() throws IllegalStateException, RepositoryException
+ {
+ throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
+ }
+
public void commit() throws IllegalStateException, RepositoryException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void rollback() throws IllegalStateException, RepositoryException
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public void close() throws IllegalStateException, RepositoryException
{
}
- @Override
public boolean isOpened()
{
throw new UnsupportedOperationException("TestWorkspaceStorageConnection: operation is unsupported.");
}
- @Override
public List<ACLHolder> getACLHolders() throws RepositoryException, IllegalStateException,
UnsupportedOperationException
{
@@ -756,7 +728,6 @@
/**
* @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getValue(java.lang.String, int, int)
*/
- @Override
public ValueData getValue(String propertyId, int orderNumb, int persistedVersion) throws IllegalStateException,
RepositoryException
{
@@ -766,7 +737,6 @@
/**
* @see org.exoplatform.services.jcr.storage.WorkspaceStorageConnection#getChildNodesDataByPage(org.exoplatform.services.jcr.datamodel.NodeData, int, int, java.util.List)
*/
- @Override
public boolean getChildNodesDataByPage(NodeData parent, int fromOrderNum, int toOrderNum, List<NodeData> childs)
throws RepositoryException
{
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestCacheableWorkspaceDataManager.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -481,6 +481,10 @@
{
}
+ public void prepare() throws IllegalStateException, RepositoryException
+ {
+ }
+
public void delete(NodeData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/TestWorkspaceStorageCacheInClusterMode.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -651,6 +651,10 @@
{
}
+ public void prepare() throws IllegalStateException, RepositoryException
+ {
+ }
+
public void commit() throws IllegalStateException, RepositoryException
{
if (wait.get() != null && wait.get())
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/cache/jbosscache/TestJBossCacheWorkspaceStorageCache.java 2012-03-05 15:30:33 UTC (rev 5807)
@@ -300,6 +300,10 @@
{
}
+ public void prepare() throws IllegalStateException, RepositoryException
+ {
+ }
+
public void update(NodeData data) throws RepositoryException, UnsupportedOperationException,
InvalidItemStateException, IllegalStateException
{
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/faq/jcr-faq.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/faq/jcr-faq.xml 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/faq/jcr-faq.xml 2012-03-05 15:30:33 UTC (rev 5807)
@@ -308,8 +308,9 @@
<properties>
<property name="jbosscache-configuration" value="test-jbosscache-data.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="true" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-db1-ws" />
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-cluster-name" value="JCR-cluster-data" />
+ <property name="jbosscache-shareable" value="true"/>
</properties>
</cache></programlisting>
@@ -326,8 +327,9 @@
</listitem>
<listitem>
- <para>"jgroups-multiplexer-stack" just simply "true". Strongly
- recommended;</para>
+ <para>"jgroups-multiplexer-stack" set to "false" with the
+ jgroups configuration with the shared transport enabled in
+ order to use the shared transport.</para>
</listitem>
<listitem>
@@ -336,6 +338,11 @@
component. I.e.:
<repository_name>-<ws_name>-<component(cache\|lock\|index)></para>
</listitem>
+
+ <listitem>
+ <para>"jbosscache-shareable" set "true" in order to share the
+ same JBoss Cache instance between several workspaces.</para>
+ </listitem>
</itemizedlist>
</listitem>
</itemizedlist>
@@ -357,8 +364,9 @@
<programlisting language="xml"><property name="jbosscache-configuration" value="test-jbosscache-indexer.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
-<property name="jgroups-multiplexer-stack" value="true" />
-<property name="jbosscache-cluster-name" value="JCR-cluster-indexer-db1-ws" />
+<property name="jgroups-multiplexer-stack" value="false" />
+<property name="jbosscache-cluster-name" value="JCR-cluster-indexer" />
+<property name="jbosscache-shareable" value="true"/>
<property name="max-volatile-time" value="60" /></programlisting>
</listitem>
</itemizedlist>
@@ -385,16 +393,17 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration" value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="true" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-locks-db1-ws" />
- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_db1_ws" />
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-cluster-name" value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_db1_ws_pk" />
+ <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
<property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
<property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
<property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
<property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+ <property name="jbosscache-shareable" value="true"/>
</properties>
</lock-manager>
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/cluster-config.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/cluster-config.xml 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/cluster-config.xml 2012-03-05 15:30:33 UTC (rev 5807)
@@ -224,8 +224,9 @@
<properties>
<property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-data.xml" /> <!-- path to JBoss Cache configuration for data storage -->
<property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /> <!-- path to JGroups configuration -->
- <property name="jbosscache-cluster-name" value="JCR_Cluster_cache_production" /> <!-- JBoss Cache data storage cluster name -->
- <property name="jgroups-multiplexer-stack" value="true" />
+ <property name="jbosscache-cluster-name" value="JCR_Cluster_cache" /> <!-- JBoss Cache data storage cluster name -->
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-shareable" value="true" />
</properties>
</cache> </programlisting>
</listitem>
@@ -239,8 +240,9 @@
<property name="index-dir" value="/mnt/tornado/temp/jcrlucenedb/production" /> <!-- path within NFS where ValueStorage will hold it's data -->
<property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-indexer.xml" /> <!-- path to JBoss Cache configuration for indexer -->
<property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /> <!-- path to JGroups configuration -->
- <property name="jbosscache-cluster-name" value="JCR_Cluster_indexer_production" /> <!-- JBoss Cache indexer cluster name -->
- <property name="jgroups-multiplexer-stack" value="true" />
+ <property name="jbosscache-cluster-name" value="JCR_Cluster_indexer" /> <!-- JBoss Cache indexer cluster name -->
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-shareable" value="true" />
</properties>
</query-handler> </programlisting>
</listitem>
@@ -253,17 +255,17 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-lock.xml" /> <!-- path to JBoss Cache configuration for lock manager -->
<property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /> <!-- path to JGroups configuration -->
- <property name="jgroups-multiplexer-stack" value="true" />
- <property name="jbosscache-cluster-name" value="JCR_Cluster_lock_production" /> <!-- JBoss Cache locks cluster name -->
-
- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_production"/> <!-- the name of the DB table where lock's data will be stored -->
+ <property name="jbosscache-cluster-name" value="JCR_Cluster_locks" /> <!-- JBoss Cache locks cluster name -->
+ <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks"/> <!-- the name of the DB table where lock's data will be stored -->
<property name="jbosscache-cl-cache.jdbc.table.create" value="true"/>
<property name="jbosscache-cl-cache.jdbc.table.drop" value="false"/>
- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_production_pk"/>
+ <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk"/>
<property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn"/>
<property name="jbosscache-cl-cache.jdbc.node.column" value="node"/>
<property name="jbosscache-cl-cache.jdbc.parent.column" value="parent"/>
<property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr"/>
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-shareable" value="true" />
</properties>
</lock-manager></programlisting>
</listitem>
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/jbosscache-configuration-templates.xml 2012-03-05 15:30:33 UTC (rev 5807)
@@ -67,6 +67,15 @@
<programlisting language="xml"><property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" />
<property name="jgroups-multiplexer-stack" value="true" /></programlisting>
+
+ <para>I<emphasis>t is now highly recommended to use the shared transport
+ instead of the multiplexer</emphasis>, to do so simply disable the
+ multiplexer stack in the configuration of each component then set the
+ property <emphasis>singleton_name</emphasis> of your JGroups configuration
+ to a unique name.</para>
+
+ <programlisting language="xml"><property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" />
+<property name="jgroups-multiplexer-stack" value="false" /></programlisting>
</section>
<section>
@@ -114,22 +123,21 @@
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
lockAcquisitionTimeout="20000" />
<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
<!-- Eviction configuration -->
<eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
+ <default algorithmClass="org.jboss.cache.eviction.ExpirationAlgorithm"
actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
eventQueueSize="1000000">
<property name="maxNodes" value="1000000" />
- <property name="timeToLive" value="120000" />
+ <property name="warnNoExpirationKey" value="false" />
</default>
</eviction>
</jbosscache></programlisting>
@@ -163,18 +171,17 @@
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
lockAcquisitionTimeout="20000" />
<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
<loaders passivation="false" shared="true">
<preload>
<node fqn="/" />
</preload>
- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
+ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
ignoreModifications="false" purgeOnStartup="false">
<properties>
cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
@@ -192,6 +199,13 @@
</loaders>
</jbosscache></programlisting>
+ <note>
+ <para>To prevent any consistency issue regarding the lock data please
+ ensure that your cache loader is
+ <emphasis>org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader</emphasis>
+ and that your database engine is transactional.</para>
+ </note>
+
<table>
<title>Template variables</title>
@@ -258,20 +272,12 @@
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
lockAcquisitionTimeout="20000" />
<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
- <!-- Eviction configuration -->
- <eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
- <property name="maxNodes" value="10000" />
- <property name="minTimeToLive" value="60000" />
- </default>
- </eviction>
</jbosscache></programlisting>
<table>
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/lock-manager-config.xml 2012-03-05 15:30:33 UTC (rev 5807)
@@ -103,7 +103,7 @@
<listitem>
<para><parameter>cache.jdbc.fqn.type</parameter> and
- cache.jdbc.node.type must be configured according to used
+ cache.jdbc.node.type must be configured according to your
database;</para>
</listitem>
</itemizedlist>
@@ -144,35 +144,10 @@
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.2">
- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
+ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000" />
<clustering mode="replication" clusterName="JBoss-Cache-Lock-Cluster_Name">
- <stateRetrieval timeout="20000" fetchInMemoryState="false" nonBlocking="true" />
- <jgroupsConfig>
-
- <TCP bind_addr="127.0.0.1" start_port="9800" loopback="true" recv_buf_size="20000000" send_buf_size="640000" discard_incompatible_packets="true"
- max_bundle_size="64000" max_bundle_timeout="30" use_incoming_packet_handler="true" enable_bundling="false" use_send_queues="false" sock_conn_timeout="300"
- skip_suspected_members="true" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="1" thread_pool.max_threads="25"
- thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="false" thread_pool.queue_max_size="100" thread_pool.rejection_policy="run"
- oob_thread_pool.enabled="true" oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
- oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="run" />
- <MPING timeout="2000" num_initial_members="2" mcast_port="34540" bind_addr="127.0.0.1" mcast_addr="224.0.0.1" />
-
-
- <MERGE2 max_interval="30000" min_interval="10000" />
- <FD_SOCK />
- <FD max_tries="5" shun="true" timeout="10000" />
- <VERIFY_SUSPECT timeout="1500" />
- <pbcast.NAKACK discard_delivered_msgs="true" gc_lag="0" retransmit_timeout="300,600,1200,2400,4800" use_mcast_xmit="false" />
- <UNICAST timeout="300,600,1200,2400,3600" />
- <pbcast.STABLE desired_avg_gossip="50000" max_bytes="400000" stability_delay="1000" />
- <pbcast.GMS join_timeout="5000" print_local_addr="true" shun="false" view_ack_collection_timeout="5000" view_bundling="true" />
- <FRAG2 frag_size="60000" />
- <pbcast.STREAMING_STATE_TRANSFER />
- <pbcast.FLUSH timeout="0" />
-
- </jgroupsConfig
-
+ <stateRetrieval timeout="20000" fetchInMemoryState="false" />
<sync />
</clustering>
@@ -180,7 +155,7 @@
<preload>
<node fqn="/" />
</preload>
- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
+ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false">
<properties>
cache.jdbc.table.name=jcrlocks_ws
cache.jdbc.table.create=true
@@ -217,8 +192,14 @@
<listitem>
<para><parameter>cache.jdbc.node.type</parameter> and
<parameter>cache.jdbc.fqn.type</parameter> must be configured
- according to using the database. See <link endterm="datatypes.title"
- linkend="datatypes"></link> .</para>
+ according to your database.</para>
+
+ <note>
+ <para>To prevent any consistency issue regarding the lock data
+ please ensure that your cache loader is
+ <emphasis>org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader</emphasis>
+ and that your database engine is transactional.</para>
+ </note>
</listitem>
</itemizedlist>
</section>
@@ -236,12 +217,11 @@
<programlisting language="xml"><?xml version="1.0" encoding="UTF-8"?>
<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
- <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+ <locking useLockStriping="false" concurrencyLevel="500" lockParentForChildInsertRemove="false"
lockAcquisitionTimeout="20000" />
<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
@@ -254,7 +234,7 @@
For another cache-loader class you should use another template with
cache-loader specific parameters
->
- <loader class="org.jboss.cache.loader.JDBCCacheLoader" async=q"false" fetchPersistentState="false"
+ <loader class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.JDBCCacheLoader" async="false" fetchPersistentState="false"
ignoreModifications="false" purgeOnStartup="false">
<properties>
cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
@@ -280,18 +260,19 @@
<property name="time-out" value="15m" />
<property name="jbosscache-configuration" value="test-jbosscache-lock.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="true" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-locks-ws" />
- <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_ws" />
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-cluster-name" value="JCR-cluster-locks" />
+ <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
<property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
<property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
- <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_ws_pk" />
+ <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
<property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
<property name="jbosscache-cl-cache.jdbc.fqn.type" value="AUTO"/>
<property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
<property name="jbosscache-cl-cache.jdbc.node.type" value="AUTO"/>
<property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
<property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+ <property name="jbosscache-shareable" value="true" />
</properties>
</lock-manager></programlisting>
@@ -301,9 +282,8 @@
and <parameter>jbosscache-cl-cache.jdbc.node.type</parameter> is
the same as cache.jdbc.fqn.type and cache.jdbc.node.type in
JBoss-Cache configuration. You can set those data types according
- to database type (See <link endterm="datatypes.title"
- linkend="datatypes"></link>) or set it as AUTO (or do not set at
- all) and data type will be detected automatically.</para>
+ to your database type or set it as AUTO (or do not set at all) and
+ data type will be detected automatically.</para>
</listitem>
<listitem>
@@ -315,41 +295,73 @@
</listitem>
</itemizedlist></para>
- <para><filename>our-udp-mux.xml</filename></para>
+ <para><filename>our udp-mux.xml</filename></para>
- <programlisting language="xml"><protocol_stacks>
- <stack name="jcr.stack">
- <config>
- <UDP mcast_addr="228.10.10.10" mcast_port="45588" tos="8" ucast_recv_buf_size="20000000"
- ucast_send_buf_size="640000" mcast_recv_buf_size="25000000" mcast_send_buf_size="640000" loopback="false"
- discard_incompatible_packets="true" max_bundle_size="64000" max_bundle_timeout="30"
- use_incoming_packet_handler="true" ip_ttl="2" enable_bundling="true" enable_diagnostics="true"
- thread_naming_pattern="cl" use_concurrent_stack="true" thread_pool.enabled="true" thread_pool.min_threads="2"
- thread_pool.max_threads="8" thread_pool.keep_alive_time="5000" thread_pool.queue_enabled="true"
- thread_pool.queue_max_size="1000" thread_pool.rejection_policy="discard" oob_thread_pool.enabled="true"
- oob_thread_pool.min_threads="1" oob_thread_pool.max_threads="8" oob_thread_pool.keep_alive_time="5000"
- oob_thread_pool.queue_enabled="false" oob_thread_pool.queue_max_size="100" oob_thread_pool.rejection_policy="Run" />
+ <programlisting language="xml"><config>
+ <UDP
+ singleton_name="JCR-cluster"
+ mcast_addr="${jgroups.udp.mcast_addr:228.10.10.10}"
+ mcast_port="${jgroups.udp.mcast_port:45588}"
+ tos="8"
+ ucast_recv_buf_size="20000000"
+ ucast_send_buf_size="640000"
+ mcast_recv_buf_size="25000000"
+ mcast_send_buf_size="640000"
+ loopback="false"
+ discard_incompatible_packets="true"
+ max_bundle_size="64000"
+ max_bundle_timeout="30"
+ use_incoming_packet_handler="true"
+ ip_ttl="${jgroups.udp.ip_ttl:2}"
+ enable_bundling="false"
+ enable_diagnostics="true"
+ thread_naming_pattern="cl"
- <PING timeout="2000" num_initial_members="3" />
- <MERGE2 max_interval="30000" min_interval="10000" />
- <FD_SOCK />
- <FD timeout="10000" max_tries="5" shun="true" />
- <VERIFY_SUSPECT timeout="1500" />
- <BARRIER />
- <pbcast.NAKACK use_stats_for_retransmission="false" exponential_backoff="150" use_mcast_xmit="true"
- gc_lag="0" retransmit_timeout="50,300,600,1200" discard_delivered_msgs="true" />
- <UNICAST timeout="300,600,1200" />
- <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000" max_bytes="1000000" />
- <VIEW_SYNC avg_send_interval="60000" />
- <pbcast.GMS print_local_addr="true" join_timeout="3000" shun="false" view_bundling="true" />
- <FC max_credits="500000" min_threshold="0.20" />
- <FRAG2 frag_size="60000" />
- <!--pbcast.STREAMING_STATE_TRANSFER /-->
- <pbcast.STATE_TRANSFER />
- <!-- pbcast.FLUSH /-->
- </config>
- </stack>
-</protocol_stacks> </programlisting>
+ use_concurrent_stack="true"
+
+ thread_pool.enabled="true"
+ thread_pool.min_threads="2"
+ thread_pool.max_threads="8"
+ thread_pool.keep_alive_time="5000"
+ thread_pool.queue_enabled="true"
+ thread_pool.queue_max_size="1000"
+ thread_pool.rejection_policy="discard"
+
+ oob_thread_pool.enabled="true"
+ oob_thread_pool.min_threads="1"
+ oob_thread_pool.max_threads="8"
+ oob_thread_pool.keep_alive_time="5000"
+ oob_thread_pool.queue_enabled="false"
+ oob_thread_pool.queue_max_size="100"
+ oob_thread_pool.rejection_policy="Run" />
+
+ <PING timeout="2000"
+ num_initial_members="3"/>
+ <MERGE2 max_interval="30000"
+ min_interval="10000"/>
+ <FD_SOCK />
+ <FD timeout="10000" max_tries="5" shun="true" />
+ <VERIFY_SUSPECT timeout="1500" />
+ <BARRIER />
+ <pbcast.NAKACK use_stats_for_retransmission="false"
+ exponential_backoff="150"
+ use_mcast_xmit="true" gc_lag="0"
+ retransmit_timeout="50,300,600,1200"
+ discard_delivered_msgs="true"/>
+ <UNICAST timeout="300,600,1200" />
+ <pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
+ max_bytes="1000000"/>
+ <VIEW_SYNC avg_send_interval="60000" />
+ <pbcast.GMS print_local_addr="true" join_timeout="3000"
+ shun="false"
+ view_bundling="true"/>
+ <FC max_credits="500000"
+ min_threshold="0.20"/>
+ <FRAG2 frag_size="60000" />
+ <!--pbcast.STREAMING_STATE_TRANSFER /-->
+ <pbcast.STATE_TRANSFER />
+ <pbcast.FLUSH />
+</config></programlisting>
</section>
<section id="datatypes">
Modified: jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml
===================================================================
--- jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml 2012-03-03 15:23:53 UTC (rev 5806)
+++ jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/query-handler-config.xml 2012-03-05 15:30:33 UTC (rev 5807)
@@ -282,12 +282,13 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
<property name="jbosscache-configuration" value="jbosscache-indexer.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="true" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-ws" />
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-cluster-name" value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60" />
<property name="rdbms-reindexing" value="true" />
<property name="reindexing-page-size" value="1000" />
<property name="index-recovery-mode" value="from-coordinator" />
+ <property name="jbosscache-shareable" value="true" />
</properties>
</query-handler>
</workspace></programlisting>
@@ -306,12 +307,13 @@
value="org.exoplatform.services.jcr.impl.core.query.jbosscache.LocalIndexChangesFilter" />
<property name="jbosscache-configuration" value="jbosscache-indexer.xml" />
<property name="jgroups-configuration" value="udp-mux.xml" />
- <property name="jgroups-multiplexer-stack" value="true" />
- <property name="jbosscache-cluster-name" value="JCR-cluster-indexer-ws" />
+ <property name="jgroups-multiplexer-stack" value="false" />
+ <property name="jbosscache-cluster-name" value="JCR-cluster-indexer" />
<property name="max-volatile-time" value="60" />
<property name="rdbms-reindexing" value="true" />
<property name="reindexing-page-size" value="1000" />
<property name="index-recovery-mode" value="from-coordinator" />
+ <property name="jbosscache-shareable" value="true" />
</properties>
</query-handler>
</workspace>
@@ -411,17 +413,8 @@
<clustering mode="replication" clusterName="${jbosscache-cluster-name}">
<stateRetrieval timeout="20000" fetchInMemoryState="false" />
- <jgroupsConfig multiplexerStack="jcr.stack" />
<sync />
</clustering>
- <!-- Eviction configuration -->
- <eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000">
- <property name="maxNodes" value="10000" />
- <property name="minTimeToLive" value="60000" />
- </default>
- </eviction>
-
</jbosscache></programlisting>
<para>See more about template configurations <link
14 years, 1 month
exo-jcr SVN: r5806 - in jcr/branches/1.14.6-GA-JBAS7: applications and 26 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:23:53 -0500 (Sat, 03 Mar 2012)
New Revision: 5806
Modified:
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml
jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml
jcr/branches/1.14.6-GA-JBAS7/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.applications.backupconsole</artifactId>
<name>eXo JCR :: Applications :: Backup Console</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.applications.backupconsole.dist</artifactId>
<name>eXo JCR :: Applications :: Backup Console Binary Distribution</name>
@@ -37,7 +37,7 @@
<dependency>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.backupconsole</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.exoplatform.jcr</groupId>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.applications.browser</artifactId>
<packaging>war</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.applications.config</artifactId>
<packaging>pom</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.applications.fckeditor</artifactId>
<packaging>war</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.ear</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<type>ear</type>
<scope>runtime</scope>
</dependency>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.connectors.jca</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<type>rar</type>
<scope>runtime</scope>
</dependency>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.applications.rest</artifactId>
<packaging>war</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.cluster.testclient</artifactId>
<name>eXo JCR :: Cluster :: Test Client</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.ear</artifactId>
<packaging>ear</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,12 +22,12 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<name>eXo JCR :: Applications :: Reactor</name>
<packaging>pom</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.component.core</artifactId>
<name>eXo JCR :: Component :: Core Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.component.core.impl.infinispan.v5</artifactId>
<name>eXo JCR :: Component :: Core Service based on ISPN 5</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.component.ext</artifactId>
<name>eXo JCR :: Component :: Extension Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.component.ftp</artifactId>
<name>eXo JCR :: Component :: FTP Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.component.statistics</artifactId>
<name>eXo JCR :: Component :: Statistics Provider</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.component.webdav</artifactId>
<name>eXo JCR :: Component :: Webdav Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.connectors.jca</artifactId>
<packaging>rar</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.docs.developer</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.docs</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.framework.command</artifactId>
<name>eXo JCR :: Framework :: Command</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.framework.ftpclient</artifactId>
<name>eXo JCR :: Framework :: FTP Client</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.jcr.framework.web</artifactId>
<name>eXo JCR :: Framework :: Web</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>jcr.packaging.module</artifactId>
Modified: jcr/branches/1.14.6-GA-JBAS7/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/pom.xml 2012-03-03 15:23:17 UTC (rev 5805)
+++ jcr/branches/1.14.6-GA-JBAS7/pom.xml 2012-03-03 15:23:53 UTC (rev 5806)
@@ -29,14 +29,14 @@
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7</version>
+ <version>1.14.7-GA-JBAS7-SNAPSHOT</version>
<packaging>pom</packaging>
<name>eXo JCR</name>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/jcr/tags/1.14.6-GA-JBAS7</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/jcr/tags/1.14.6-GA-JBAS7</developerConnection>
- <url>http://fisheye.jboss.org/browse/exo-jcr/jcr/tags/1.14.6-GA-JBAS7</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/jcr/branches/1.14.6-GA-JBAS7</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/jcr/branches/1.14.6-GA-JBAS7</developerConnection>
+ <url>http://fisheye.jboss.org/browse/exo-jcr/jcr/branches/1.14.6-GA-JBAS7</url>
</scm>
<properties>
14 years, 1 month
exo-jcr SVN: r5805 - jcr/tags.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:23:17 -0500 (Sat, 03 Mar 2012)
New Revision: 5805
Added:
jcr/tags/1.14.6-GA-JBAS7/
Log:
[maven-scm] copy for tag 1.14.6-GA-JBAS7
14 years, 1 month
exo-jcr SVN: r5804 - in jcr/branches/1.14.6-GA-JBAS7: applications and 26 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:23:04 -0500 (Sat, 03 Mar 2012)
New Revision: 5804
Modified:
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml
jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml
jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml
jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml
jcr/branches/1.14.6-GA-JBAS7/pom.xml
Log:
[maven-release-plugin] prepare release 1.14.6-GA-JBAS7
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.applications.backupconsole</artifactId>
<name>eXo JCR :: Applications :: Backup Console</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.backupconsole.dist/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.applications.backupconsole.dist</artifactId>
<name>eXo JCR :: Applications :: Backup Console Binary Distribution</name>
@@ -37,7 +37,7 @@
<dependency>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.backupconsole</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</dependency>
<dependency>
<groupId>org.exoplatform.jcr</groupId>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.browser/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.applications.browser</artifactId>
<packaging>war</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.config/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.applications.config</artifactId>
<packaging>pom</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.fckeditor/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.applications.fckeditor</artifactId>
<packaging>war</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jboss/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.ear</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<type>ear</type>
<scope>runtime</scope>
</dependency>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jetty/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.jonas/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.connectors.jca</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<type>rar</type>
<scope>runtime</scope>
</dependency>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.rest/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.applications.rest</artifactId>
<packaging>war</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.applications.tomcat/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.applications.config</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<relativePath>../exo.jcr.applications.config/pom.xml</relativePath>
</parent>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.cluster.testclient/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.cluster.testclient</artifactId>
<name>eXo JCR :: Cluster :: Test Client</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/exo.jcr.ear/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.ear</artifactId>
<packaging>ear</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/applications/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,12 +22,12 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jcr-applications-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<name>eXo JCR :: Applications :: Reactor</name>
<packaging>pom</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.component.core</artifactId>
<name>eXo JCR :: Component :: Core Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.core.impl.infinispan.v5/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.component.core.impl.infinispan.v5</artifactId>
<name>eXo JCR :: Component :: Core Service based on ISPN 5</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ext/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.component.ext</artifactId>
<name>eXo JCR :: Component :: Extension Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.ftp/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.component.ftp</artifactId>
<name>eXo JCR :: Component :: FTP Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.statistics/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.component.statistics</artifactId>
<name>eXo JCR :: Component :: Statistics Provider</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.component.webdav/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.component.webdav</artifactId>
<name>eXo JCR :: Component :: Webdav Service</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.connectors.jca/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.connectors.jca</artifactId>
<packaging>rar</packaging>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/en/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.docs.developer</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/exo.jcr.docs.developer/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>exo.jcr.docs</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.docs/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.command/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.framework.command</artifactId>
<name>eXo JCR :: Framework :: Command</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.ftpclient/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.framework.ftpclient</artifactId>
<name>eXo JCR :: Framework :: FTP Client</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/exo.jcr.framework.web/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -24,7 +24,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
</parent>
<artifactId>exo.jcr.framework.web</artifactId>
<name>eXo JCR :: Framework :: Web</name>
Modified: jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>jcr.packaging.module</artifactId>
Modified: jcr/branches/1.14.6-GA-JBAS7/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
+++ jcr/branches/1.14.6-GA-JBAS7/pom.xml 2012-03-03 15:23:04 UTC (rev 5804)
@@ -29,14 +29,14 @@
<groupId>org.exoplatform.jcr</groupId>
<artifactId>jcr-parent</artifactId>
- <version>1.14.6-GA-JBAS7-SNAPSHOT</version>
+ <version>1.14.6-GA-JBAS7</version>
<packaging>pom</packaging>
<name>eXo JCR</name>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/jcr/branches/1.14.6-GA-JBAS7</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/jcr/branches/1.14.6-GA-JBAS7</developerConnection>
- <url>http://fisheye.jboss.org/browse/exo-jcr/jcr/branches/1.14.6-GA-JBAS7</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/jcr/tags/1.14.6-GA-JBAS7</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/jcr/tags/1.14.6-GA-JBAS7</developerConnection>
+ <url>http://fisheye.jboss.org/browse/exo-jcr/jcr/tags/1.14.6-GA-JBAS7</url>
</scm>
<properties>
14 years, 1 month
exo-jcr SVN: r5803 - jcr/branches/1.14.6-GA-JBAS7.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:15:12 -0500 (Sat, 03 Mar 2012)
New Revision: 5803
Modified:
jcr/branches/1.14.6-GA-JBAS7/pom.xml
Log:
EXOJCR-1777: changed deps to tag
Modified: jcr/branches/1.14.6-GA-JBAS7/pom.xml
===================================================================
--- jcr/branches/1.14.6-GA-JBAS7/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
+++ jcr/branches/1.14.6-GA-JBAS7/pom.xml 2012-03-03 15:15:12 UTC (rev 5803)
@@ -42,9 +42,9 @@
<properties>
<exo.product.name>exo-jcr</exo.product.name>
<exo.product.specification>1.14</exo.product.specification>
- <org.exoplatform.kernel.version>2.3.6-GA-JBAS7-SNAPSHOT</org.exoplatform.kernel.version>
- <org.exoplatform.core.version>2.4.6-GA-JBAS7-SNAPSHOT</org.exoplatform.core.version>
- <org.exoplatform.ws.version>2.2.6-GA-JBAS7-SNAPSHOT</org.exoplatform.ws.version>
+ <org.exoplatform.kernel.version>2.3.6-GA-JBAS7</org.exoplatform.kernel.version>
+ <org.exoplatform.core.version>2.4.6-GA-JBAS7</org.exoplatform.core.version>
+ <org.exoplatform.ws.version>2.2.6-GA-JBAS7</org.exoplatform.ws.version>
<org.exoplatform.doc-style.version>2</org.exoplatform.doc-style.version>
</properties>
14 years, 1 month
exo-jcr SVN: r5802 - in ws/branches/2.2.6-GA-JBAS7: exo.ws.commons and 6 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:02:32 -0500 (Sat, 03 Mar 2012)
New Revision: 5802
Modified:
ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml
ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml
ws/branches/2.2.6-GA-JBAS7/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.ws.commons</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.ws.frameworks.json</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.ws.frameworks.servlet</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.ws.rest.core</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.ws.rest.ext</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
</parent>
<artifactId>exo.ws.testframework</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: ws/branches/2.2.6-GA-JBAS7/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/pom.xml 2012-03-03 15:02:24 UTC (rev 5801)
+++ ws/branches/2.2.6-GA-JBAS7/pom.xml 2012-03-03 15:02:32 UTC (rev 5802)
@@ -31,14 +31,14 @@
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.6-GA-JBAS7</version>
+ <version>2.2.7-GA-JBAS7-SNAPSHOT</version>
<packaging>pom</packaging>
<name>eXo WS</name>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/ws/tags/2.2.6-GA-JBAS7</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/ws/tags/2.2.6-GA-JBAS7</developerConnection>
- <url>http://fisheye.jboss.org/browse/exo-jcr/ws/tags/2.2.6-GA-JBAS7</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/ws/branches/2.2.6-GA-JBAS7</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/ws/branches/2.2.6-GA-JBAS7</developerConnection>
+ <url>http://fisheye.jboss.org/browse/exo-jcr/ws/branches/2.2.6-GA-JBAS7</url>
</scm>
<properties>
14 years, 1 month
exo-jcr SVN: r5801 - ws/tags.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:02:24 -0500 (Sat, 03 Mar 2012)
New Revision: 5801
Added:
ws/tags/2.2.6-GA-JBAS7/
Log:
[maven-scm] copy for tag 2.2.6-GA-JBAS7
14 years, 1 month
exo-jcr SVN: r5800 - in ws/branches/2.2.6-GA-JBAS7: exo.ws.commons and 6 other directories.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:02:12 -0500 (Sat, 03 Mar 2012)
New Revision: 5800
Modified:
ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml
ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml
ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml
ws/branches/2.2.6-GA-JBAS7/pom.xml
Log:
[maven-release-plugin] prepare release 2.2.6-GA-JBAS7
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.commons/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
</parent>
<artifactId>exo.ws.commons</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.json/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
</parent>
<artifactId>exo.ws.frameworks.json</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.frameworks.servlet/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
</parent>
<artifactId>exo.ws.frameworks.servlet</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.core/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
</parent>
<artifactId>exo.ws.rest.core</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.rest.ext/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
</parent>
<artifactId>exo.ws.rest.ext</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/exo.ws.testframework/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -25,7 +25,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
</parent>
<artifactId>exo.ws.testframework</artifactId>
Modified: ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/packaging/module/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: ws/branches/2.2.6-GA-JBAS7/pom.xml
===================================================================
--- ws/branches/2.2.6-GA-JBAS7/pom.xml 2012-03-03 15:00:44 UTC (rev 5799)
+++ ws/branches/2.2.6-GA-JBAS7/pom.xml 2012-03-03 15:02:12 UTC (rev 5800)
@@ -31,14 +31,14 @@
<groupId>org.exoplatform.ws</groupId>
<artifactId>ws-parent</artifactId>
- <version>2.2.8-GA-JBAS7-SNAPSHOT</version>
+ <version>2.2.6-GA-JBAS7</version>
<packaging>pom</packaging>
<name>eXo WS</name>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/ws/branches/2.2.6-GA-JBAS7</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/ws/branches/2.2.6-GA-JBAS7</developerConnection>
- <url>http://fisheye.jboss.org/browse/exo-jcr/ws/branches/2.2.6-GA-JBAS7</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/exo-jcr/ws/tags/2.2.6-GA-JBAS7</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/exo-jcr/ws/tags/2.2.6-GA-JBAS7</developerConnection>
+ <url>http://fisheye.jboss.org/browse/exo-jcr/ws/tags/2.2.6-GA-JBAS7</url>
</scm>
<properties>
14 years, 1 month
exo-jcr SVN: r5799 - ws/tags.
by do-not-reply@jboss.org
Author: tolusha
Date: 2012-03-03 10:00:44 -0500 (Sat, 03 Mar 2012)
New Revision: 5799
Removed:
ws/tags/2.2.7-GA-JBAS7/
Log:
14 years, 1 month