Index: common/ant/glassfishV3.1/container.xml =================================================================== --- common/ant/glassfishV3.1/container.xml (revision 8771) +++ common/ant/glassfishV3.1/container.xml (working copy) @@ -99,11 +99,20 @@ arg2="true" /> + + + + + + + @@ -132,6 +141,13 @@ arg2="true" /> + + + + + @@ -142,6 +158,7 @@ + Index: jsf-ri/systest/nbproject/project.xml =================================================================== --- jsf-ri/systest/nbproject/project.xml (revision 8771) +++ jsf-ri/systest/nbproject/project.xml (working copy) @@ -16,6 +16,22 @@ MacRoman + + java + src + MacRoman + + + + java + /Users/edburns/Documents/chaff/netbeans-hack-links/cluster-no-agressive-session-dirtying + MacRoman + + + + /Users/edburns/Documents/chaff/netbeans-hack-links/cluster-no-agressive-session-dirtying + + doc_root web @@ -25,12 +41,6 @@ web_inf web/WEB-INF - - - java - src - MacRoman - @@ -67,6 +77,10 @@ src + + + /Users/edburns/Documents/chaff/netbeans-hack-links/cluster-no-agressive-session-dirtying + build.xml @@ -85,6 +99,7 @@ src + /Users/edburns/Documents/chaff/netbeans-hack-links/cluster-no-agressive-session-dirtying ../../dependencies/jars/junit-3.8.1.jar:../build/classes:../../jsf-api/build/classes:../../dependencies/htmlunit-2.4/lib/htmlunit-2.4.jar:../../lib/jsf-extensions-test-time.jar:../../dependencies/jars/el-api-2.1.2-b05.jar:../../dependencies/jars/jsp-api-2.1.jar:/Users/edburns/Downloads/mvnrepo/org/apache/ant/ant/1.7.1/ant-1.7.1.jar:../../dependencies/jars/servlet-api-2.5.jar 1.5 Index: jsf-ri/systest/src/com/sun/faces/htmlunit/AbstractTestCase.java =================================================================== --- jsf-ri/systest/src/com/sun/faces/htmlunit/AbstractTestCase.java (revision 8771) +++ jsf-ri/systest/src/com/sun/faces/htmlunit/AbstractTestCase.java (working copy) @@ -127,7 +127,7 @@ protected Map> exclusions = null; // Instance numbers for clustering - protected List instanceNumbers = Collections.emptyList(); + private List instanceNumbers; protected boolean forceNoCluster = false; @@ -148,10 +148,10 @@ if (null != instanceNumbersStr && 0 < instanceNumbersStr.length() && !("${instance.numbers}".equals(instanceNumbersStr))) { String [] strs = instanceNumbersStr.split(","); - instanceNumbers = new ArrayList(); + List instNums = getInstanceNumbers(); for (String cur : strs) { try { - instanceNumbers.add(Integer.parseInt(cur)); + instNums.add(Integer.parseInt(cur)); } catch (NumberFormatException e) { System.out.println(e.getMessage()); } @@ -196,7 +196,14 @@ WebResponse response = client.getWebConnection().getResponse(settings); } + protected List getInstanceNumbers() { + if (null == instanceNumbers) { + instanceNumbers = new ArrayList(); + } + return instanceNumbers; + } + /** * Return the tests included in this test suite. */ @@ -284,12 +291,29 @@ } + protected HtmlPage getPageFromInstanceN(String path, int instanceNumber) throws Exception { + + /* Cookies seem to be maintained automatically now + if (sessionId != null) { + // System.err.println("Joining session " + sessionId); + client.addRequestHeader("Cookie", "JSESSIONID=" + sessionId); + } + */ + lastpage = (HtmlPage) client.getPage(getURLFromInstanceN(path, instanceNumber)); + if (sessionId == null) { + parseSession(lastpage); + } + return lastpage; + + } + protected int getPort() { int result = port; - if (!instanceNumbers.isEmpty() && !forceNoCluster) { - int instanceNumberIndex = rand.nextInt(instanceNumbers.size()); + List instNums = getInstanceNumbers(); + if (!instNums.isEmpty() && !forceNoCluster) { + int instanceNumberIndex = rand.nextInt(instNums.size()); try { - String num = instanceNumbers.get(instanceNumberIndex).toString() + port; + String num = instNums.get(instanceNumberIndex).toString() + port; result = Integer.parseInt(num); } catch (NumberFormatException e) { @@ -302,10 +326,11 @@ protected int getFirstPort() { int result = port; - if (!instanceNumbers.isEmpty() && !forceNoCluster) { + List instNums = getInstanceNumbers(); + if (!instNums.isEmpty() && !forceNoCluster) { int instanceNumberIndex = 0; try { - String num = instanceNumbers.get(instanceNumberIndex).toString() + port; + String num = instNums.get(instanceNumberIndex).toString() + port; result = Integer.parseInt(num); } catch (NumberFormatException e) { @@ -316,6 +341,20 @@ return result; } + protected int getNthPort(int instanceNumber) { + int result = port; + if (!forceNoCluster) { + try { + String num = instanceNumber + "" + port; + result = Integer.parseInt(num); + + } catch (NumberFormatException e) { + System.out.println(e.getMessage()); + throw e; + } + } + return result; + } /** * The same as {@link #getPage(String)} except this uses the specified * WebClient. @@ -376,7 +415,25 @@ } + protected URL getURLFromInstanceN(String path, int instanceNumber) throws Exception { + StringBuilder sb = new StringBuilder("http://"); + sb.append(host); + int myPort = getNthPort(instanceNumber); + if (myPort != 80) { + sb.append(":"); + sb.append("").append(myPort); + } + sb.append(contextPath); + sb.append(path); + if (log.isLoggable(Level.INFO)) { + log.info(sb.toString()); + } + return (new URL(sb.toString())); + + } + + /** *

Parse and save any session identifier from the specified page.

* Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp (revision 0) @@ -0,0 +1,50 @@ +<%-- + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 2 only ("GPL") or the Common Development + and Distribution License("CDDL") (collectively, the "License"). You + may not use this file except in compliance with the License. You can + obtain a copy of the License at + https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + or packager/legal/LICENSE.txt. See the License for the specific + language governing permissions and limitations under the License. + + When distributing the software, include this License Header Notice in each + file and include the License file at packager/legal/LICENSE.txt. + + GPL Classpath Exception: + Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the GPL Version 2 section of the License + file that accompanied this code. + + Modifications: + If applicable, add the following below the License Header, with the fields + enclosed by brackets [] replaced by your own identifying information: + "Portions Copyright [year] [name of copyright owner]" + + Contributor(s): + If you wish your version of this file to be governed by only the CDDL or + only the GPL Version 2, indicate your decision by adding "[Contributor] + elects to include this software in this distribution under the [CDDL or GPL + Version 2] license." If you don't indicate a single choice of license, a + recipient has the option to distribute your version of this file under + either the CDDL, the GPL Version 2 or to extend the choice of license to + its licensees as provided above. However, if you add GPL Version 2 code + and therefore, elected the GPL Version 2 license, then the option applies + only if the new code is made subject to such option by the copyright + holder. + +--%> + + + + View Expired + + +Error page invoked + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) @@ -0,0 +1,74 @@ + + + + + + Webapp to validate ViewExpiredException is properly handled. + + View Expired Test + + + com.sun.faces.enableAgressiveSessionDirtying + false + + + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + + Faces Servlet + /faces/* + + + + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp (revision 0) @@ -0,0 +1,66 @@ +<%-- + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 2 only ("GPL") or the Common Development + and Distribution License("CDDL") (collectively, the "License"). You + may not use this file except in compliance with the License. You can + obtain a copy of the License at + https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + or packager/legal/LICENSE.txt. See the License for the specific + language governing permissions and limitations under the License. + + When distributing the software, include this License Header Notice in each + file and include the License file at packager/legal/LICENSE.txt. + + GPL Classpath Exception: + Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the GPL Version 2 section of the License + file that accompanied this code. + + Modifications: + If applicable, add the following below the License Header, with the fields + enclosed by brackets [] replaced by your own identifying information: + "Portions Copyright [year] [name of copyright owner]" + + Contributor(s): + If you wish your version of this file to be governed by only the CDDL or + only the GPL Version 2, indicate your decision by adding "[Contributor] + elects to include this software in this distribution under the [CDDL or GPL + Version 2] license." If you don't indicate a single choice of license, a + recipient has the option to distribute your version of this file under + either the CDDL, the GPL Version 2 or to extend the choice of license to + its licensees as provided above. However, if you add GPL Version 2 code + and therefore, elected the GPL Version 2 license, then the option applies + only if the new code is made subject to such option by the copyright + holder. + +--%> + + + + + + + test + <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> + <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> + + + +

test

+ + + + + + + + + +
+ + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml (revision 0) @@ -0,0 +1,64 @@ + + + + + + Simple Session Sharing + + + + + + + + + + + + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/src/java/com/sun/faces/systest/ClusterNoAgressiveSessionDirtyingTestCase.java (revision 0) @@ -0,0 +1,94 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.systest; + + +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.sun.faces.htmlunit.AbstractTestCase; +import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + + +public class ClusterNoAgressiveSessionDirtyingTestCase extends AbstractTestCase { + + public ClusterNoAgressiveSessionDirtyingTestCase(String name) { + super(name); + } + + /** + * Return the tests included in this test suite. + */ + public static Test suite() { + return (new TestSuite(ClusterNoAgressiveSessionDirtyingTestCase.class)); + } + + + // ------------------------------------------------------------ Test Methods + + public void testSimpleObject() throws Exception { + List instNums = getInstanceNumbers(); + + // Get the page from the first instance in the cluster + // and store a simple string into the session. + HtmlPage page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(0)); + HtmlTextInput input = (HtmlTextInput) page.getElementById("input"); + String inputValue = "simple session value" + System.currentTimeMillis(); + input.setValueAttribute(inputValue); + HtmlSubmitInput button = (HtmlSubmitInput) page.getElementById("button"); + page = button.click(); + String text = page.asText(); + assertTrue(text.contains(inputValue)); + + // Get the same page from each of the subsequent intstances + // in the cluster and assert that the session value is the same. + for (int i = 1; i < instNums.size(); i++) { + page = getPageFromInstanceN("/faces/session.xhtml", instNums.get(i)); + text = page.asText(); + assertTrue(text.contains(inputValue)); + } + + + } +} + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp (revision 0) @@ -0,0 +1,50 @@ +<%-- + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 2 only ("GPL") or the Common Development + and Distribution License("CDDL") (collectively, the "License"). You + may not use this file except in compliance with the License. You can + obtain a copy of the License at + https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + or packager/legal/LICENSE.txt. See the License for the specific + language governing permissions and limitations under the License. + + When distributing the software, include this License Header Notice in each + file and include the License file at packager/legal/LICENSE.txt. + + GPL Classpath Exception: + Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the GPL Version 2 section of the License + file that accompanied this code. + + Modifications: + If applicable, add the following below the License Header, with the fields + enclosed by brackets [] replaced by your own identifying information: + "Portions Copyright [year] [name of copyright owner]" + + Contributor(s): + If you wish your version of this file to be governed by only the CDDL or + only the GPL Version 2, indicate your decision by adding "[Contributor] + elects to include this software in this distribution under the [CDDL or GPL + Version 2] license." If you don't indicate a single choice of license, a + recipient has the option to distribute your version of this file under + either the CDDL, the GPL Version 2 or to extend the choice of license to + its licensees as provided above. However, if you add GPL Version 2 code + and therefore, elected the GPL Version 2 license, then the option applies + only if the new code is made subject to such option by the copyright + holder. + +--%> + + + + View Expired + + +Error page invoked + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) @@ -0,0 +1,74 @@ + + + + + + Webapp to validate ViewExpiredException is properly handled. + + View Expired Test + + + com.sun.faces.enableAgressiveSessionDirtying + false + + + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + + Faces Servlet + /faces/* + + + + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp (revision 0) @@ -0,0 +1,66 @@ +<%-- + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 2 only ("GPL") or the Common Development + and Distribution License("CDDL") (collectively, the "License"). You + may not use this file except in compliance with the License. You can + obtain a copy of the License at + https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + or packager/legal/LICENSE.txt. See the License for the specific + language governing permissions and limitations under the License. + + When distributing the software, include this License Header Notice in each + file and include the License file at packager/legal/LICENSE.txt. + + GPL Classpath Exception: + Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the GPL Version 2 section of the License + file that accompanied this code. + + Modifications: + If applicable, add the following below the License Header, with the fields + enclosed by brackets [] replaced by your own identifying information: + "Portions Copyright [year] [name of copyright owner]" + + Contributor(s): + If you wish your version of this file to be governed by only the CDDL or + only the GPL Version 2, indicate your decision by adding "[Contributor] + elects to include this software in this distribution under the [CDDL or GPL + Version 2] license." If you don't indicate a single choice of license, a + recipient has the option to distribute your version of this file under + either the CDDL, the GPL Version 2 or to extend the choice of license to + its licensees as provided above. However, if you add GPL Version 2 code + and therefore, elected the GPL Version 2 license, then the option applies + only if the new code is made subject to such option by the copyright + holder. + +--%> + + + + + + + test + <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> + <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> + + + +

test

+ + + + + + + + + +
+ + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml (revision 0) @@ -0,0 +1,64 @@ + + + + + + Simple Session Sharing + + + + + + + + + + + + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/error.jsp (revision 0) @@ -0,0 +1,50 @@ +<%-- + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 2 only ("GPL") or the Common Development + and Distribution License("CDDL") (collectively, the "License"). You + may not use this file except in compliance with the License. You can + obtain a copy of the License at + https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + or packager/legal/LICENSE.txt. See the License for the specific + language governing permissions and limitations under the License. + + When distributing the software, include this License Header Notice in each + file and include the License file at packager/legal/LICENSE.txt. + + GPL Classpath Exception: + Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the GPL Version 2 section of the License + file that accompanied this code. + + Modifications: + If applicable, add the following below the License Header, with the fields + enclosed by brackets [] replaced by your own identifying information: + "Portions Copyright [year] [name of copyright owner]" + + Contributor(s): + If you wish your version of this file to be governed by only the CDDL or + only the GPL Version 2, indicate your decision by adding "[Contributor] + elects to include this software in this distribution under the [CDDL or GPL + Version 2] license." If you don't indicate a single choice of license, a + recipient has the option to distribute your version of this file under + either the CDDL, the GPL Version 2 or to extend the choice of license to + its licensees as provided above. However, if you add GPL Version 2 code + and therefore, elected the GPL Version 2 license, then the option applies + only if the new code is made subject to such option by the copyright + holder. + +--%> + + + + View Expired + + +Error page invoked + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) @@ -0,0 +1,74 @@ + + + + + + Webapp to validate ViewExpiredException is properly handled. + + View Expired Test + + + com.sun.faces.enableAgressiveSessionDirtying + false + + + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + + Faces Servlet + /faces/* + + + + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/WEB-INF/web.xml (revision 0) @@ -0,0 +1,74 @@ + + + + + + Webapp to validate ViewExpiredException is properly handled. + + View Expired Test + + + com.sun.faces.enableAgressiveSessionDirtying + false + + + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + + Faces Servlet + /faces/* + + + + + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/test.jsp (revision 0) @@ -0,0 +1,66 @@ +<%-- + + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + + Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. + + The contents of this file are subject to the terms of either the GNU + General Public License Version 2 only ("GPL") or the Common Development + and Distribution License("CDDL") (collectively, the "License"). You + may not use this file except in compliance with the License. You can + obtain a copy of the License at + https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + or packager/legal/LICENSE.txt. See the License for the specific + language governing permissions and limitations under the License. + + When distributing the software, include this License Header Notice in each + file and include the License file at packager/legal/LICENSE.txt. + + GPL Classpath Exception: + Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the GPL Version 2 section of the License + file that accompanied this code. + + Modifications: + If applicable, add the following below the License Header, with the fields + enclosed by brackets [] replaced by your own identifying information: + "Portions Copyright [year] [name of copyright owner]" + + Contributor(s): + If you wish your version of this file to be governed by only the CDDL or + only the GPL Version 2, indicate your decision by adding "[Contributor] + elects to include this software in this distribution under the [CDDL or GPL + Version 2] license." If you don't indicate a single choice of license, a + recipient has the option to distribute your version of this file under + either the CDDL, the GPL Version 2 or to extend the choice of license to + its licensees as provided above. However, if you add GPL Version 2 code + and therefore, elected the GPL Version 2 license, then the option applies + only if the new code is made subject to such option by the copyright + holder. + +--%> + + + + + + + test + <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> + <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> + + + +

test

+ + + + + + + + + +
+ + Index: jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml =================================================================== --- jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml (revision 0) +++ jsf-ri/systest-per-webapp/cluster-no-agressive-session-dirtying/web/session.xhtml (revision 0) @@ -0,0 +1,64 @@ + + + + + + Simple Session Sharing + + + + + + + + + + + + + Index: jsf-ri/systest-per-webapp/build.xml =================================================================== --- jsf-ri/systest-per-webapp/build.xml (revision 8771) +++ jsf-ri/systest-per-webapp/build.xml (working copy) @@ -72,7 +72,8 @@ + no-web-xml, + cluster-no-agressive-session-dirtying" /> + +