From: erik Date: Tue, 27 Jul 2010 19:55:40 +0000 (+0000) Subject: (no commit message) X-Git-Tag: wamblee-utils-0.5~54 X-Git-Url: http://wamblee.org/gitweb/?a=commitdiff_plain;h=e5db03a4d79166e04cfb65254c883a41008bd320;p=utils --- diff --git a/wicket/components/src/main/java/org/wamblee/wicket/css/ResetCssBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/css/ResetCssBehavior.java index 7a0a3e2d..18c27f7d 100644 --- a/wicket/components/src/main/java/org/wamblee/wicket/css/ResetCssBehavior.java +++ b/wicket/components/src/main/java/org/wamblee/wicket/css/ResetCssBehavior.java @@ -17,7 +17,6 @@ package org.wamblee.wicket.css; import org.apache.wicket.behavior.HeaderContributor; import org.apache.wicket.markup.html.CSSPackageResource; -import org.apache.wicket.markup.html.JavascriptPackageResource; /** * Reset CSS style to obtain more uniform browser behavior. diff --git a/wicket/components/src/main/java/org/wamblee/wicket/page/CompositePageBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/page/CompositePageBehavior.java index 05208b3f..367fc8b4 100644 --- a/wicket/components/src/main/java/org/wamblee/wicket/page/CompositePageBehavior.java +++ b/wicket/components/src/main/java/org/wamblee/wicket/page/CompositePageBehavior.java @@ -15,7 +15,6 @@ */ package org.wamblee.wicket.page; -import java.io.Serializable; import java.util.ArrayList; import java.util.List; diff --git a/wicket/components/src/main/java/org/wamblee/wicket/page/ExpireBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/page/ExpireBehavior.java new file mode 100644 index 00000000..10a65541 --- /dev/null +++ b/wicket/components/src/main/java/org/wamblee/wicket/page/ExpireBehavior.java @@ -0,0 +1,54 @@ +/* + * Copyright 2005-2010 the original author or authors. + * + * 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.wamblee.wicket.page; + +import java.util.logging.Logger; + +import org.apache.wicket.markup.html.WebPage; + +/** + * Bahevior that will expire a page when the page is disabled. + * Implementations should implemnet + * + * @author Erik Brakkee + * + */ +public abstract class ExpireBehavior extends AbstractPageBehavior { + private static final Logger LOGGER = Logger.getLogger(ExpireBehavior.class.getName()); + + /** + * Constructs the behavior. + */ + public ExpireBehavior() { + super(); + } + + @Override + public void onDetach(WebPage aPage) { + if (isExpired(aPage)) { + aPage.getPageMap().remove(aPage); + } + } + + /** + * Must be implemented to determine if a page is expired. + * @param aPage Page to check. If a behavior instance is only used on one page then this + * argument is always that page so it can bne ignored in that case. + * @return + */ + protected abstract boolean isExpired(WebPage aPage); + +} diff --git a/wicket/components/src/main/java/org/wamblee/wicket/page/FlushEntityManagerBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/page/FlushEntityManagerBehavior.java index d1b663d8..4362faa7 100644 --- a/wicket/components/src/main/java/org/wamblee/wicket/page/FlushEntityManagerBehavior.java +++ b/wicket/components/src/main/java/org/wamblee/wicket/page/FlushEntityManagerBehavior.java @@ -18,13 +18,9 @@ package org.wamblee.wicket.page; import java.util.logging.Level; import java.util.logging.Logger; -import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.persistence.PersistenceException; import javax.persistence.TransactionRequiredException; -import javax.transaction.Status; -import javax.transaction.SystemException; -import javax.transaction.UserTransaction; import org.apache.wicket.markup.html.WebPage; diff --git a/wicket/components/src/main/java/org/wamblee/wicket/page/WebApplicationBasePage.java b/wicket/components/src/main/java/org/wamblee/wicket/page/WebApplicationBasePage.java index 97e41a04..7a90c764 100644 --- a/wicket/components/src/main/java/org/wamblee/wicket/page/WebApplicationBasePage.java +++ b/wicket/components/src/main/java/org/wamblee/wicket/page/WebApplicationBasePage.java @@ -16,7 +16,6 @@ package org.wamblee.wicket.page; import javax.persistence.EntityManager; -import javax.transaction.UserTransaction; import org.apache.wicket.IPageMap; import org.apache.wicket.PageParameters; @@ -42,6 +41,8 @@ public class WebApplicationBasePage extends WebPage { protected WebApplicationBasePage() { super(); + + setEnabled(false); init(); } diff --git a/wicket/components/src/test/java/org/wamblee/wicket/page/CompositePageBehaviorTest.java b/wicket/components/src/test/java/org/wamblee/wicket/page/CompositePageBehaviorTest.java index 37e7c1fe..1638fab8 100644 --- a/wicket/components/src/test/java/org/wamblee/wicket/page/CompositePageBehaviorTest.java +++ b/wicket/components/src/test/java/org/wamblee/wicket/page/CompositePageBehaviorTest.java @@ -21,8 +21,6 @@ import junit.framework.TestCase; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.protocol.http.WebResponse; -import org.wamblee.wicket.page.CompositePageBehavior; -import org.wamblee.wicket.page.PageBehavior; public class CompositePageBehaviorTest extends TestCase { diff --git a/wicket/components/src/test/java/org/wamblee/wicket/page/WebApplicationBasePageTest.java b/wicket/components/src/test/java/org/wamblee/wicket/page/WebApplicationBasePageTest.java index 707871c0..ec7b9e3b 100644 --- a/wicket/components/src/test/java/org/wamblee/wicket/page/WebApplicationBasePageTest.java +++ b/wicket/components/src/test/java/org/wamblee/wicket/page/WebApplicationBasePageTest.java @@ -22,23 +22,16 @@ import static org.mockito.Mockito.*; import java.lang.reflect.Field; import javax.persistence.EntityManager; -import javax.transaction.Status; -import javax.transaction.UserTransaction; import org.apache.wicket.IPageMap; import org.apache.wicket.PageParameters; +import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.WebResponse; import org.apache.wicket.util.tester.WicketTester; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.wamblee.wicket.page.CompositePageBehavior; -import org.wamblee.wicket.page.DisableCachingBehavior; -import org.wamblee.wicket.page.ExpirePageImmediatelyBehavior; -import org.wamblee.wicket.page.FlushEntityManagerBehavior; -import org.wamblee.wicket.page.PageBehavior; -import org.wamblee.wicket.page.WebApplicationBasePage; public class WebApplicationBasePageTest { private WicketTester wicket; @@ -136,8 +129,8 @@ public class WebApplicationBasePageTest { public void callBeforeRender() { onBeforeRender(); } - - public void callOnDetach() { + + public void callOnDetach() { onDetach(); } } @@ -163,7 +156,7 @@ public class WebApplicationBasePageTest { page.callSetHeaders(); verify(behavior).setHeaders(same(page), same(response)); verifyNoMoreInteractions(behavior); - + reset(behavior); page.callOnDetach(); verify(behavior).onDetach(same(page)); @@ -179,6 +172,20 @@ public class WebApplicationBasePageTest { wicket.assertRenderedPage(WebApplicationBasePage.class); } + @Test + public void testSmokeExpireBehavior() throws Exception { + WebApplicationBasePage page = new WebApplicationBasePage( + mock(IPageMap.class), new PageParameters()); + page.addBehavior(new ExpireBehavior() { + @Override + protected boolean isExpired(WebPage aPage) { + return true; + } + }); + wicket.startPage(page); + wicket.assertRenderedPage(WebApplicationBasePage.class); + } + @Test public void testSmokeBehaviorDisableCaching() throws Exception { WebApplicationBasePage page = new WebApplicationBasePage(