You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/12/02 02:56:40 UTC
svn commit: r481488 - in /tapestry/tapestry4/trunk: ./ tapestry-framework/
tapestry-framework/src/conf/
tapestry-framework/src/java/org/apache/tapestry/pageload/
tapestry-framework/src/java/org/apache/tapestry/services/impl/
tapestry-framework/src/test...
Author: jkuhnert
Date: Fri Dec 1 17:56:38 2006
New Revision: 481488
URL: http://svn.apache.org/viewvc?view=rev&rev=481488
Log:
Resolved TAPESTRY-848 (was our most popular issue! )
Removed old PageLoader sync blocks as they were ineffective against a large block in DisableCachingFilter which
is where the locking logic was moved.
Updated testng tests to run in parallel mode for faster testing and cleaned up subsequent failing tests.
Added:
tapestry/tapestry4/trunk/tapestry-framework/src/conf/testng.xml (with props)
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilterThreaded.java
Removed:
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/pageload/PageSourceTest.java
Modified:
tapestry/tapestry4/trunk/pom.xml
tapestry/tapestry4/trunk/tapestry-framework/pom.xml
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageSource.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentConstructorFactoryImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DisableCachingFilter.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/AjaxShellDelegateTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestEnhancementOperation.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectPageWorker.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/LinkSubmitTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestButton.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/TestBrowserIssues.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/i18n/TestI18nResources.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/script/TestScript.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/listener/ListenerMethodInvokerTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/markup/TestMarkupWriter.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilter.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/util/TestPageRenderSupport.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestDateValidator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestEmailValidator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestPatternValidator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestStringValidator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestUrlValidator.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestValidField.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/ValidationDelegateTest.java
tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletServicerBridges.java
Modified: tapestry/tapestry4/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/pom.xml?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/pom.xml (original)
+++ tapestry/tapestry4/trunk/pom.xml Fri Dec 1 17:56:38 2006
@@ -255,7 +255,8 @@
<value>en_US</value>
</property>
</systemProperties>
- <parallel>false</parallel>
+ <parallel>true</parallel>
+ <threadCount>4</threadCount>
</configuration>
</plugin>
<plugin>
Modified: tapestry/tapestry4/trunk/tapestry-framework/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/pom.xml?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/pom.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/pom.xml Fri Dec 1 17:56:38 2006
@@ -215,10 +215,10 @@
<phase>compile</phase>
<configuration>
<tasks>
- <ant antfile="../support/build.xml" inheritRefs="true" >
+ <ant antfile="../support/build.xml" inheritRefs="true">
<property name="target.dir" value="../target/site/tapestry-framework" />
<target name="build" />
- </ant>
+ </ant>
</tasks>
</configuration>
<goals>
Added: tapestry/tapestry4/trunk/tapestry-framework/src/conf/testng.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/conf/testng.xml?view=auto&rev=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/conf/testng.xml (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/conf/testng.xml Fri Dec 1 17:56:38 2006
@@ -0,0 +1,18 @@
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+
+<suite name="Tapestry Core Framework" verbose="3" parallel="true" thread-count="4">
+
+ <test name="Threaded Services" parallel="true">
+ <groups>
+ <run>
+ <include name="threaded" />
+ </run>
+ </groups>
+
+ <packages>
+ <package name="org.apache.tapestry.services.impl.*" />
+ </packages>
+ </test>
+
+</suite>
+
Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/conf/testng.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageSource.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageSource.java Fri Dec 1 17:56:38 2006
@@ -14,10 +14,6 @@
package org.apache.tapestry.pageload;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.locks.ReentrantLock;
-
import org.apache.hivemind.ClassResolver;
import org.apache.tapestry.IEngine;
import org.apache.tapestry.IPage;
@@ -45,9 +41,7 @@
*/
public class PageSource implements IPageSource
-{
- private static final int ESTIMATED_PAGES = 45;
-
+{
/** set by container. */
private ClassResolver _classResolver;
@@ -65,13 +59,6 @@
private ObjectPool _pool;
- /**
- * Provides concurrent access to page keys to prevent
- * possibly creating more than one page spec of the same page.
- */
-
- private ConcurrentMap _keyMap = new ConcurrentHashMap(ESTIMATED_PAGES);
-
public ClassResolver getClassResolver()
{
return _classResolver;
@@ -103,29 +90,6 @@
return new MultiKey(keys, false);
}
-
- /**
- * Gets a simple lock for the given page that should be used before
- * doing any page specification resolution operations.
- *
- * @param key The page key to use.
- * @return The existing/created lock for this specific page.
- */
- protected ReentrantLock getPageLock(Object key)
- {
- ReentrantLock lock = (ReentrantLock)_keyMap.get(key);
-
- if (lock != null)
- return lock;
-
- lock = new ReentrantLock();
-
- // writes are synchronized, this is where the "magic" happens
-
- _keyMap.put(key, lock);
-
- return lock;
- }
/**
* Gets the page from a pool, or otherwise loads the page. This operation is threadsafe.
@@ -133,50 +97,39 @@
public IPage getPage(IRequestCycle cycle, String pageName)
{
+
IEngine engine = cycle.getEngine();
Object key = buildKey(engine, pageName);
- ReentrantLock lock = getPageLock(key);
IPage result = null;
-
- try {
- // lock our page specific key lock first
- // This is only a temporary measure until a more robust
- // page pool implementation can be created.
-
- lock.lockInterruptibly();
-
- result = (IPage) _pool.get(key);
-
- if (result == null)
- {
- _pageSpecificationResolver.resolve(cycle, pageName);
-
- // The loader is responsible for invoking attach(),
- // and for firing events to PageAttachListeners
-
- result = _loader.loadPage(
- _pageSpecificationResolver.getSimplePageName(),
- _pageSpecificationResolver.getNamespace(),
- cycle,
- _pageSpecificationResolver.getSpecification());
- }
- else
- {
- // But for pooled pages, we are responsible.
- // This call will also fire events to any PageAttachListeners
- result.attach(engine, cycle);
- }
-
- } catch (InterruptedException e) {
-
- throw new RuntimeException(e);
- } finally {
-
- lock.unlock();
+ // lock our page specific key lock first
+ // This is only a temporary measure until a more robust
+ // page pool implementation can be created.
+
+ result = (IPage) _pool.get(key);
+
+ if (result == null)
+ {
+ _pageSpecificationResolver.resolve(cycle, pageName);
+
+ // The loader is responsible for invoking attach(),
+ // and for firing events to PageAttachListeners
+
+ result = _loader.loadPage(
+ _pageSpecificationResolver.getSimplePageName(),
+ _pageSpecificationResolver.getNamespace(),
+ cycle,
+ _pageSpecificationResolver.getSpecification());
}
-
+ else
+ {
+ // But for pooled pages, we are responsible.
+ // This call will also fire events to any PageAttachListeners
+
+ result.attach(engine, cycle);
+ }
+
return result;
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentConstructorFactoryImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentConstructorFactoryImpl.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentConstructorFactoryImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentConstructorFactoryImpl.java Fri Dec 1 17:56:38 2006
@@ -14,11 +14,14 @@
package org.apache.tapestry.services.impl;
+import edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock;
+
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
+import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ClassResolver;
import org.apache.hivemind.service.ClassFactory;
import org.apache.hivemind.util.Defense;
@@ -42,6 +45,8 @@
public class ComponentConstructorFactoryImpl implements ComponentConstructorFactory,
ResetEventListener, ReportStatusListener
{
+ private final ReentrantLock _lock = new ReentrantLock();
+
private String _serviceId;
private Log _log;
@@ -79,7 +84,9 @@
{
Defense.notNull(specification, "specification");
- synchronized (specification) {
+ try {
+
+ _lock.lockInterruptibly();
ComponentConstructor result = (ComponentConstructor) _cachedConstructors.get(specification);
@@ -105,6 +112,13 @@
}
return result;
+
+ } catch (InterruptedException e) {
+
+ throw new ApplicationRuntimeException(e);
+ } finally {
+
+ _lock.unlock();
}
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DisableCachingFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DisableCachingFilter.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DisableCachingFilter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DisableCachingFilter.java Fri Dec 1 17:56:38 2006
@@ -14,6 +14,8 @@
package org.apache.tapestry.services.impl;
+import edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock;
+
import java.io.IOException;
import org.apache.hivemind.ErrorLog;
@@ -26,7 +28,7 @@
/**
* Filter whose job is to invoke
- * {@link org.apache.tapestry.services.ResetEventHub#fireResetEvent()}after the request has
+ * {@link org.apache.tapestry.services.ResetEventHub#fireResetEvent()} after the request has
* been processed. This filter is only contributed into the
* tapestry.request.WebRequestServicerPipeline configuration if the
* org.apache.tapestry.disable-caching system property is true.
@@ -36,20 +38,26 @@
*/
public class DisableCachingFilter implements WebRequestServicerFilter
{
+ private final ReentrantLock _lock = new ReentrantLock();
+
private ErrorLog _errorLog;
-
+
private ResetEventHub _resetEventHub;
-
+
public void service(WebRequest request, WebResponse response, WebRequestServicer servicer)
throws IOException
{
try
{
+ _lock.lock();
+
servicer.service(request, response);
}
finally
{
fireResetEvent();
+
+ _lock.unlock();
}
}
@@ -65,7 +73,7 @@
_errorLog.error(ImplMessages.errorResetting(ex), HiveMind.getLocation(ex), ex);
}
}
-
+
public void setResetEventHub(ResetEventHub resetEventCoordinator)
{
_resetEventHub = resetEventCoordinator;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/AjaxShellDelegateTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/AjaxShellDelegateTest.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/AjaxShellDelegateTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/AjaxShellDelegateTest.java Fri Dec 1 17:56:38 2006
@@ -33,7 +33,7 @@
*
* @author jkuhnert
*/
-@Test
+@Test(sequential=true)
public class AjaxShellDelegateTest extends BaseComponentTestCase
{
private static final String SYSTEM_NEWLINE= (String)java.security.AccessController.doPrivileged(
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java Fri Dec 1 17:56:38 2006
@@ -47,7 +47,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestAutocompleter extends BaseFormComponentTestCase
{
private IAutocompleteModel createModel()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestEnhancementOperation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestEnhancementOperation.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestEnhancementOperation.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestEnhancementOperation.java Fri Dec 1 17:56:38 2006
@@ -46,7 +46,7 @@
import org.apache.tapestry.link.ServiceLink;
import org.apache.tapestry.services.ComponentConstructor;
import org.apache.tapestry.spec.IComponentSpecification;
-import org.testng.annotations.Configuration;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
@@ -55,10 +55,10 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestEnhancementOperation extends BaseComponentTestCase
{
- @Configuration(beforeTestMethod = true)
+ @BeforeMethod(alwaysRun=true)
protected void setUp() throws Exception
{
EnhancementOperationImpl._uid = 97;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectPageWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectPageWorker.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectPageWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/enhance/TestInjectPageWorker.java Fri Dec 1 17:56:38 2006
@@ -33,7 +33,7 @@
* @author Howard Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestInjectPageWorker extends BaseComponentTestCase
{
public void testPrimitivePropertyType()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/LinkSubmitTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/LinkSubmitTest.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/LinkSubmitTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/LinkSubmitTest.java Fri Dec 1 17:56:38 2006
@@ -41,7 +41,7 @@
* @author Howard Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class LinkSubmitTest extends BaseComponentTestCase
{
private class ScriptFixture implements IScript
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestButton.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestButton.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestButton.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestButton.java Fri Dec 1 17:56:38 2006
@@ -21,7 +21,7 @@
import org.apache.tapestry.spec.ComponentSpecification;
import org.testng.annotations.Test;
-@Test
+@Test(sequential=true)
public class TestButton extends BaseComponentTestCase
{
public void testRender()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java Fri Dec 1 17:56:38 2006
@@ -33,7 +33,7 @@
* @author Howard Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestCheckbox extends BaseFormComponentTestCase
{
public void testRenderChecked()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java Fri Dec 1 17:56:38 2006
@@ -32,7 +32,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestTextArea extends BaseFormComponentTestCase
{
public void testRewind()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java Fri Dec 1 17:56:38 2006
@@ -33,7 +33,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestTextField extends BaseFormComponentTestCase
{
public void testRewind()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java Fri Dec 1 17:56:38 2006
@@ -39,7 +39,7 @@
* @author Paul Ferraro
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestDateTranslator extends FormComponentContributorTestCase
{
private Calendar _calendar = Calendar.getInstance();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java Fri Dec 1 17:56:38 2006
@@ -32,7 +32,7 @@
* @author Paul Ferraro
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestStringTranslator extends FormComponentContributorTestCase
{
private StringTranslator _translator = new StringTranslator();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/TestBrowserIssues.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/TestBrowserIssues.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/TestBrowserIssues.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/TestBrowserIssues.java Fri Dec 1 17:56:38 2006
@@ -27,7 +27,7 @@
* Note: If these tests fail with BindException when starting Jetty, it could be Skype. At least on
* my system, Skype is listening on localhost:80.
*/
-@Test(timeOut = 50000, groups = "integration" )
+@Test(timeOut = 50000, groups = "integration", sequential=true)
public class TestBrowserIssues extends Assert
{
private static final int JETTY_PORT = 9999;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/i18n/TestI18nResources.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/i18n/TestI18nResources.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/i18n/TestI18nResources.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/integration/i18n/TestI18nResources.java Fri Dec 1 17:56:38 2006
@@ -30,7 +30,7 @@
*
* @author jkuhnert
*/
-@Test(timeOut = 50000, groups = "integration")
+@Test(timeOut = 50000, groups = "integration", sequential=true)
public class TestI18nResources
{
private static final int JETTY_PORT = 9999;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/script/TestScript.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/script/TestScript.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/script/TestScript.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/junit/script/TestScript.java Fri Dec 1 17:56:38 2006
@@ -43,7 +43,7 @@
* @author Howard Lewis Ship
* @since 2.2
*/
-@Test
+@Test(sequential=true)
public class TestScript extends TapestryTestCase
{
private MockScriptProcessor _processor = new MockScriptProcessor();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/listener/ListenerMethodInvokerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/listener/ListenerMethodInvokerTest.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/listener/ListenerMethodInvokerTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/listener/ListenerMethodInvokerTest.java Fri Dec 1 17:56:38 2006
@@ -26,7 +26,7 @@
*
* @author jkuhnert
*/
-@Test
+@Test(sequential=true)
public class ListenerMethodInvokerTest extends BaseComponentTestCase
{
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/markup/TestMarkupWriter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/markup/TestMarkupWriter.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/markup/TestMarkupWriter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/markup/TestMarkupWriter.java Fri Dec 1 17:56:38 2006
@@ -29,7 +29,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestMarkupWriter extends BaseComponentTestCase
{
private static CharArrayWriter _writer;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilter.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilter.java Fri Dec 1 17:56:38 2006
@@ -32,7 +32,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test()
public class TestDisableCachingFilter extends BaseComponentTestCase
{
private WebResponse newResponse()
@@ -50,7 +50,7 @@
return newMock(ResetEventHub.class);
}
- public void testNormal() throws Exception
+ public void test_Normal() throws Exception
{
WebRequest request = newRequest();
WebResponse response = newResponse();
@@ -70,7 +70,7 @@
verify();
}
- public void testResetFailure() throws Exception
+ public void test_Reset_Failure() throws Exception
{
WebRequest request = newRequest();
WebResponse response = newResponse();
@@ -100,5 +100,4 @@
verify();
}
-
-}
\ No newline at end of file
+}
Added: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilterThreaded.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilterThreaded.java?view=auto&rev=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilterThreaded.java (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestDisableCachingFilterThreaded.java Fri Dec 1 17:56:38 2006
@@ -0,0 +1,112 @@
+// Copyright 2004, 2005 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package org.apache.tapestry.services.impl;
+
+import java.io.IOException;
+
+import org.apache.tapestry.BaseComponentTestCase;
+import org.apache.tapestry.event.ResetEventListener;
+import org.apache.tapestry.services.ResetEventHub;
+import org.apache.tapestry.services.WebRequestServicer;
+import org.apache.tapestry.web.WebRequest;
+import org.apache.tapestry.web.WebResponse;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+
+/**
+ * Tests threaded calls on {@link DisableCachingFilter}.
+ *
+ * @author jkuhnert
+ */
+@Test(threadPoolSize=4)
+public class TestDisableCachingFilterThreaded extends BaseComponentTestCase
+{
+ class MockServicer implements WebRequestServicer
+ {
+ CountingResetListener _listener;
+
+ public MockServicer(CountingResetListener listener)
+ {
+ _listener = listener;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void service(WebRequest request, WebResponse response)
+ throws IOException
+ {
+ _listener.performOperation();
+ }
+
+ }
+
+ class CountingResetListener implements ResetEventListener
+ {
+ private int _counter=0;
+
+ public void performOperation()
+ {
+ _counter++;
+
+ if (_counter != 1)
+ throw new AssertionError("Counter should be 1 but is " + _counter);
+ }
+
+ public void resetEventDidOccur()
+ {
+ _counter--;
+ }
+
+ public int getCount()
+ {
+ return _counter;
+ }
+ }
+
+ private ResetEventHub _resetHub;
+ private CountingResetListener _listener;
+
+ DisableCachingFilter _filter;
+ WebRequestServicer _servicer;
+
+ @BeforeClass
+ public void setup_Event_Hub()
+ {
+ _resetHub = new ResetEventHubImpl();
+
+ _filter = new DisableCachingFilter();
+ _filter.setResetEventHub(_resetHub);
+
+ _listener = new CountingResetListener();
+
+ _resetHub.addResetEventListener(_listener);
+
+ _servicer = new MockServicer(_listener);
+ }
+
+ @Test(invocationCount = 100, threadPoolSize=4)
+ public void invoke_Listener() throws Exception
+ {
+ _filter.service(null, null, _servicer);
+ }
+
+ @AfterSuite(alwaysRun=true)
+ public void verify_Reset_Counters()
+ {
+ assertEquals(_listener.getCount(), 0);
+ }
+}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/util/TestPageRenderSupport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/util/TestPageRenderSupport.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/util/TestPageRenderSupport.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/util/TestPageRenderSupport.java Fri Dec 1 17:56:38 2006
@@ -39,7 +39,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestPageRenderSupport extends BaseComponentTestCase
{
private static final String SYSTEM_NEWLINE= (String)java.security.AccessController.doPrivileged(
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java Fri Dec 1 17:56:38 2006
@@ -32,7 +32,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class FieldLabelTest extends BaseFormComponentTestCase
{
private IForm newForm(IValidationDelegate delegate)
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestDateValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestDateValidator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestDateValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestDateValidator.java Fri Dec 1 17:56:38 2006
@@ -21,7 +21,7 @@
import java.util.Locale;
import org.apache.tapestry.form.IFormComponent;
-import org.testng.annotations.Configuration;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
/**
@@ -30,14 +30,14 @@
* @author Howard Lewis Ship
* @since 1.0.8
*/
-@Test
+@Test(sequential=true)
public class TestDateValidator extends BaseValidatorTestCase
{
private Calendar calendar = new GregorianCalendar();
private DateValidator v = new DateValidator();
- @Configuration(afterTestMethod = true)
+ @AfterMethod
public void reset()
{
v.setRequired(false);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestEmailValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestEmailValidator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestEmailValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestEmailValidator.java Fri Dec 1 17:56:38 2006
@@ -15,7 +15,7 @@
package org.apache.tapestry.valid;
import org.apache.tapestry.form.IFormComponent;
-import org.testng.annotations.Configuration;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
/**
@@ -24,12 +24,12 @@
* @author Howard Lewis Ship
* @since 3.0
*/
-@Test
+@Test(sequential=true)
public class TestEmailValidator extends BaseValidatorTestCase
{
private EmailValidator v = new EmailValidator();
- @Configuration(afterTestMethod = true)
+ @AfterMethod
public void reset()
{
v.setClientScriptingEnabled(false);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java Fri Dec 1 17:56:38 2006
@@ -31,7 +31,7 @@
* @author Howard Lewis Ship
* @since 1.0.8
*/
-@Test
+@Test(sequential=true)
public class TestNumberValidator extends BaseValidatorTestCase
{
private NumberValidator v = new NumberValidator();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestPatternValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestPatternValidator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestPatternValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestPatternValidator.java Fri Dec 1 17:56:38 2006
@@ -19,7 +19,7 @@
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.Location;
import org.apache.tapestry.form.IFormComponent;
-import org.testng.annotations.Configuration;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
/**
@@ -28,12 +28,12 @@
* @author Harish Krishnaswamy
* @since 3.0
*/
-@Test
+@Test(sequential=true)
public class TestPatternValidator extends BaseValidatorTestCase
{
PatternValidator pv = new PatternValidator();
- @Configuration(afterTestMethod = true)
+ @AfterMethod
public void reset()
{
pv.setClientScriptingEnabled(false);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestStringValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestStringValidator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestStringValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestStringValidator.java Fri Dec 1 17:56:38 2006
@@ -24,7 +24,7 @@
* @author Howard Lewis Ship
* @since 1.0.8
*/
-@Test
+@Test(sequential=true)
public class TestStringValidator extends BaseValidatorTestCase
{
private StringValidator v = new StringValidator();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestUrlValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestUrlValidator.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestUrlValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestUrlValidator.java Fri Dec 1 17:56:38 2006
@@ -20,7 +20,7 @@
import org.apache.tapestry.IPage;
import org.apache.tapestry.form.IFormComponent;
-import org.testng.annotations.Configuration;
+import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
/**
@@ -35,7 +35,7 @@
{
private UrlValidator v = new UrlValidator();
- @Configuration(afterTestMethod = true)
+ @AfterMethod(alwaysRun=true)
public void reset()
{
v.setClientScriptingEnabled(false);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestValidField.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestValidField.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestValidField.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestValidField.java Fri Dec 1 17:56:38 2006
@@ -37,7 +37,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestValidField extends BaseFormComponentTestCase
{
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/ValidationDelegateTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/ValidationDelegateTest.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/ValidationDelegateTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/ValidationDelegateTest.java Fri Dec 1 17:56:38 2006
@@ -30,7 +30,7 @@
* @author Howard Lewis Ship
* @since 1.0.8
*/
-@Test
+@Test(sequential=true)
public class ValidationDelegateTest extends BaseValidatorTestCase
{
protected IFormComponent newField(String name, int count)
Modified: tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletServicerBridges.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletServicerBridges.java?view=diff&rev=481488&r1=481487&r2=481488
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletServicerBridges.java (original)
+++ tapestry/tapestry4/trunk/tapestry-portlet/src/test/org/apache/tapestry/portlet/TestPortletServicerBridges.java Fri Dec 1 17:56:38 2006
@@ -39,7 +39,7 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-@Test
+@Test(sequential=true)
public class TestPortletServicerBridges extends BaseComponentTestCase
{
private class WebRequestServicerFixture implements WebRequestServicer