(no commit message)
authorerik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Tue, 27 Jul 2010 19:55:40 +0000 (19:55 +0000)
committererik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Tue, 27 Jul 2010 19:55:40 +0000 (19:55 +0000)
wicket/components/src/main/java/org/wamblee/wicket/css/ResetCssBehavior.java
wicket/components/src/main/java/org/wamblee/wicket/page/CompositePageBehavior.java
wicket/components/src/main/java/org/wamblee/wicket/page/ExpireBehavior.java [new file with mode: 0644]
wicket/components/src/main/java/org/wamblee/wicket/page/FlushEntityManagerBehavior.java
wicket/components/src/main/java/org/wamblee/wicket/page/WebApplicationBasePage.java
wicket/components/src/test/java/org/wamblee/wicket/page/CompositePageBehaviorTest.java
wicket/components/src/test/java/org/wamblee/wicket/page/WebApplicationBasePageTest.java

index 7a0a3e2d54bf9644d6b796b311a0c0be6a676d2c..18c27f7d57efc60caaecf9817868ffa940ae4cb0 100644 (file)
@@ -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.
index 05208b3faf80630f89583088f0ccd9d4fc816de4..367fc8b4b9004f4a538c14ea69bad93e60d79635 100644 (file)
@@ -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 (file)
index 0000000..10a6554
--- /dev/null
@@ -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); 
+    
+}
index d1b663d85b81970ac59a39437b161f97389f40c7..4362faa7dabe0b31db6362663e8721d5e28af203 100644 (file)
@@ -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;
 
index 97e41a04c066cc6bdf59d6cbd134781e3aa95690..7a90c76484bcd5a1d67a9f007dffb79baf9d6859 100644 (file)
@@ -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();
     }
 
index 37e7c1fe1269f414598b5ff823685938c03b5573..1638fab811e0ab6ac75e913fc155630255eed365 100644 (file)
@@ -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 {
 
index 707871c025c1709a64e62c1f106e7cc32121b373..ec7b9e3bfe73fa536d8b4b4890a8a84af09f0494 100644 (file)
@@ -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(