[jboss-cvs] JBossAS SVN: r107386 - in projects/metadata/web/trunk/src: main/resources/schema and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Aug 4 10:54:47 EDT 2010
Author: pferraro
Date: 2010-08-04 10:54:47 -0400 (Wed, 04 Aug 2010)
New Revision: 107386
Added:
projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationMode.java
projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb60UnitTestCase.java
projects/metadata/web/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWeb60_testClustering.xml
Modified:
projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java
projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig60.java
projects/metadata/web/trunk/src/main/resources/schema/jboss-web_6_0.xsd
projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb50UnitTestCase.java
Log:
[JBMETA-294] Add replication-mode, backups to replication-config in jboss-web.xml
Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java 2010-08-04 14:48:32 UTC (rev 107385)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java 2010-08-04 14:54:47 UTC (rev 107386)
@@ -46,7 +46,29 @@
protected SnapshotMode snapshotMode;
protected Integer snapshotInterval;
protected String sessionNotificationPolicy = null;
+ protected ReplicationMode mode;
+ protected Integer backups;
+ public Integer getBackups()
+ {
+ return this.backups;
+ }
+
+ public void setBackups(Integer backups)
+ {
+ this.backups = backups;
+ }
+
+ public ReplicationMode getReplicationMode()
+ {
+ return this.mode;
+ }
+
+ public void setReplicationMode(ReplicationMode mode)
+ {
+ this.mode = mode;
+ }
+
public ReplicationTrigger getReplicationTrigger()
{
return trigger;
Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig60.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig60.java 2010-08-04 14:48:32 UTC (rev 107385)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig60.java 2010-08-04 14:54:47 UTC (rev 107386)
@@ -29,15 +29,13 @@
* replicationFieldBatchMode.
*
* @author Brian Stansberry
- *
- * @version $Revision$
*/
- at XmlType(name="replication-configType", propOrder={"cacheName", "replicationTrigger", "replicationGranularity",
- "useJK", "maxUnreplicatedInterval", "snapshotMode", "snapshotInterval", "sessionNotificationPolicy"})
+ at XmlType(name="replication-configType",
+ propOrder={ "cacheName", "replicationTrigger", "replicationGranularity", "replicationMode",
+ "backups", "useJK", "maxUnreplicatedInterval", "snapshotMode", "snapshotInterval",
+ "sessionNotificationPolicy" })
public class ReplicationConfig60 extends ReplicationConfig
{
-
/** The serialVersionUID */
private static final long serialVersionUID = -4550670443463444120L;
-
}
Added: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationMode.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationMode.java (rev 0)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss/ReplicationMode.java 2010-08-04 14:54:47 UTC (rev 107386)
@@ -0,0 +1,27 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.metadata.web.jboss;
+
+public enum ReplicationMode
+{
+ SYNCHRONOUS, ASYNCHRONOUS;
+}
Modified: projects/metadata/web/trunk/src/main/resources/schema/jboss-web_6_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/jboss-web_6_0.xsd 2010-08-04 14:48:32 UTC (rev 107385)
+++ projects/metadata/web/trunk/src/main/resources/schema/jboss-web_6_0.xsd 2010-08-04 14:54:47 UTC (rev 107386)
@@ -223,6 +223,8 @@
<xsd:element name="cache-name" type="jboss:cache-nameType" minOccurs="0"/>
<xsd:element name="replication-trigger" type="jboss:replication-triggerType" minOccurs="0"/>
<xsd:element name="replication-granularity" type="jboss:replication-granularityType" minOccurs="0"/>
+ <xsd:element name="replication-mode" type="jboss:replication-modeType" minOccurs="0"/>
+ <xsd:element name="backups" type="jboss:backupsType" minOccurs="0"/>
<xsd:element name="use-jk" type="jboss:use-jkType" minOccurs="0"/>
<xsd:element name="max-unreplicated-interval" type="jboss:max-unreplicated-intervalType" minOccurs="0"/>
<xsd:element name="snapshot-mode" type="jboss:snapshot-modeType" minOccurs="0"/>
@@ -342,6 +344,63 @@
</xsd:simpleContent>
</xsd:complexType>
+ <xsd:complexType name="replication-modeType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ Clustering only: Determines the session replication mode.
+ Possible values are:
+ 1 - "SYNCHRONOUS"
+ 2 - "ASYNCHRONOUS"
+
+ In SYNCHRONOUS mode, session replication occurs in the same thread that processes a given
+ request. A request will not complete until the associated session is successfully replicated.
+
+ In ASYNCHRONOUS mode, session replication occurs in a separate thread from the one that processes
+ a given request. The request thread only initiates replication, but does not wait for it to complete.
+
+ If not defined, the replication mode defined in the distributed cache configuration will be used.
+ In the default distributed session cache configuration, sessions replicate asynchronously.
+
+ Examples:
+ <replication-mode>SYNCHRONOUS</replication-mode>
+ or
+ <replication-mode>ASYNCHRONOUS</replication-mode>
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:restriction base="javaee:string">
+ <xsd:enumeration value="SYNCHRONOUS"/>
+ <xsd:enumeration value="ASYNCHRONOUS"/>
+ </xsd:restriction>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="backupsType">
+ <xsd:annotation>
+ <xsd:documentation>
+ <![CDATA[
+
+ Clustering only: Defines the number of backup nodes on which to replicate
+ a given session.
+
+ Possible values are:
+ > 0 : Session will be replicated to *all* nodes (i.e. total replication)
+ 0 : Session will not be replicated (i.e. local mode)
+ < 0 : Session will be replicated only to the specified number of nodes (i.e. distribution mode)
+
+ Default value, if not explicitly set, is taken from the distributed cache
+ configuration. By default, this is -1, i.e. total replication.
+
+ ]]>
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:integer"/>
+ </xsd:simpleType>
+
<xsd:complexType name="use-jkType">
<xsd:annotation>
<xsd:documentation>
Modified: projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb50UnitTestCase.java
===================================================================
--- projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb50UnitTestCase.java 2010-08-04 14:48:32 UTC (rev 107385)
+++ projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb50UnitTestCase.java 2010-08-04 14:54:47 UTC (rev 107386)
@@ -68,6 +68,8 @@
assertNotNull(replConfig.getSnapshotInterval());
assertEquals(5, replConfig.getSnapshotInterval().intValue());
assertEquals("org.jboss.test.TestNotificationPolicy", replConfig.getSessionNotificationPolicy());
+ assertNull(replConfig.getReplicationMode());
+ assertNull(replConfig.getBackups());
assertNotNull(jbossWeb.getMaxActiveSessions());
assertEquals(20, jbossWeb.getMaxActiveSessions().intValue());
Added: projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb60UnitTestCase.java
===================================================================
--- projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb60UnitTestCase.java (rev 0)
+++ projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWeb60UnitTestCase.java 2010-08-04 14:54:47 UTC (rev 107386)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.web;
+
+import org.jboss.metadata.web.jboss.JBoss60WebMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.jboss.PassivationConfig;
+import org.jboss.metadata.web.jboss.ReplicationConfig;
+import org.jboss.metadata.web.jboss.ReplicationGranularity;
+import org.jboss.metadata.web.jboss.ReplicationMode;
+import org.jboss.metadata.web.jboss.ReplicationTrigger;
+import org.jboss.metadata.web.jboss.SnapshotMode;
+import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
+
+/**
+ * @author Paul Ferraro
+ */
+public class JBossWeb60UnitTestCase extends AbstractJavaEEEverythingTest
+{
+ public JBossWeb60UnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testClustering() throws Exception
+ {
+ JBossWebMetaData jbossWeb = unmarshal();
+
+ ReplicationConfig replConfig = jbossWeb.getReplicationConfig();
+ assertNotNull(replConfig);
+ assertEquals("testCache", replConfig.getCacheName());
+ assertSame(ReplicationTrigger.SET, replConfig.getReplicationTrigger());
+ assertSame(ReplicationGranularity.SESSION, replConfig.getReplicationGranularity());
+ // Not parsed in AS6
+ assertNull(replConfig.getReplicationFieldBatchMode());
+ assertSame(ReplicationMode.SYNCHRONOUS, replConfig.getReplicationMode());
+ assertNotNull(replConfig.getBackups());
+ assertEquals(2, replConfig.getBackups().intValue());
+ assertNotNull(replConfig.getUseJK());
+ assertTrue(replConfig.getUseJK().booleanValue());
+ assertNotNull(replConfig.getMaxUnreplicatedInterval());
+ assertEquals(30, replConfig.getMaxUnreplicatedInterval().intValue());
+ assertSame(SnapshotMode.INSTANT, replConfig.getSnapshotMode());
+ assertNotNull(replConfig.getSnapshotInterval());
+ assertEquals(5, replConfig.getSnapshotInterval().intValue());
+ assertEquals("org.jboss.test.TestNotificationPolicy", replConfig.getSessionNotificationPolicy());
+
+ assertNotNull(jbossWeb.getMaxActiveSessions());
+ assertEquals(20, jbossWeb.getMaxActiveSessions().intValue());
+
+ PassivationConfig passConfig = jbossWeb.getPassivationConfig();
+ assertNotNull(passConfig);
+ assertNotNull(passConfig.getUseSessionPassivation());
+ assertTrue(passConfig.getUseSessionPassivation().booleanValue());
+ assertNotNull(passConfig.getPassivationMinIdleTime());
+ assertEquals(2, passConfig.getPassivationMinIdleTime().intValue());
+ assertNotNull(passConfig.getPassivationMaxIdleTime());
+ assertEquals(5, passConfig.getPassivationMaxIdleTime().intValue());
+ }
+
+ protected JBossWebMetaData unmarshal() throws Exception
+ {
+ return unmarshal(JBoss60WebMetaData.class);
+ }
+}
Added: projects/metadata/web/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWeb60_testClustering.xml
===================================================================
--- projects/metadata/web/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWeb60_testClustering.xml (rev 0)
+++ projects/metadata/web/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWeb60_testClustering.xml 2010-08-04 14:54:47 UTC (rev 107386)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss-web version="6.0" xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee schema/jboss-web_6_0.xsd">
+
+ <replication-config>
+ <cache-name>testCache</cache-name>
+ <replication-trigger>SET</replication-trigger>
+ <replication-granularity>SESSION</replication-granularity>
+ <replication-mode>SYNCHRONOUS</replication-mode>
+ <backups>2</backups>
+ <use-jk>true</use-jk>
+ <max-unreplicated-interval>30</max-unreplicated-interval>
+ <snapshot-mode>INSTANT</snapshot-mode>
+ <snapshot-interval>5</snapshot-interval>
+ <session-notification-policy>org.jboss.test.TestNotificationPolicy</session-notification-policy>
+ </replication-config>
+
+ <max-active-sessions>20</max-active-sessions>
+
+ <passivation-config>
+ <use-session-passivation>true</use-session-passivation>
+ <passivation-min-idle-time>2</passivation-min-idle-time>
+ <passivation-max-idle-time>5</passivation-max-idle-time>
+ </passivation-config>
+
+</jboss-web>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list