[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