Author: mgrigorov
Date: Sat Sep 25 14:51:48 2010
New Revision: 1001226

URL: http://svn.apache.org/viewvc?rev=1001226&view=rev
Log:
Use providers to configure the Application.

Add DefaultPageManagerProvider (must be part of r1001214)


Added:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
   (with props)

Added: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java?rev=1001226&view=auto
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
 (added)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
 Sat Sep 25 14:51:48 2010
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.wicket;
+
+import org.apache.wicket.page.IPageManager;
+import org.apache.wicket.page.IPageManagerContext;
+import org.apache.wicket.page.PersistentPageManager;
+import org.apache.wicket.pageStore.DefaultPageStore;
+import org.apache.wicket.pageStore.DiskDataStore;
+import org.apache.wicket.pageStore.IDataStore;
+import org.apache.wicket.pageStore.IPageStore;
+import org.apache.wicket.util.IProvider;
+
+/**
+ * {...@link IPageManagerProvider} implementation that creates new instance of 
{...@link IPageManager}
+ * that persists the pages in {...@link DiskDataStore}
+ */
+public class DefaultPageManagerProvider implements IProvider<IPageManager>
+{
+       private static final int DEFAULT_CACHE_SIZE = 40;
+
+       private static final int DEFAULT_FILE_CHANNEL_POOL_CAPACITY = 50;
+
+       private static final int DEFAULT_MAX_SIZE_PER_SESSION = 1000000;
+
+       private final Application application;
+
+       private final IPageManagerContext pageManagerContext;
+
+       /**
+        * Construct.
+        * 
+        * @param application
+        * @param pageManagerContext
+        */
+       public DefaultPageManagerProvider(Application application,
+               IPageManagerContext pageManagerContext)
+       {
+               this.application = application;
+               this.pageManagerContext = pageManagerContext;
+       }
+
+       public IPageManager get()
+       {
+               IDataStore dataStore = new DiskDataStore(application.getName(), 
getMaxSizePerSession(),
+                       getFileChannelPoolCapacity());
+               IPageStore pageStore = new 
DefaultPageStore(application.getName(), dataStore,
+                       getCacheSize());
+               return new PersistentPageManager(application.getName(), 
pageStore, pageManagerContext);
+
+       }
+
+       protected int getMaxSizePerSession()
+       {
+               return DEFAULT_MAX_SIZE_PER_SESSION;
+       }
+
+       protected int getCacheSize()
+       {
+               return DEFAULT_CACHE_SIZE;
+       }
+
+       protected int getFileChannelPoolCapacity()
+       {
+               return DEFAULT_FILE_CHANNEL_POOL_CAPACITY;
+       }
+}
\ No newline at end of file

Propchange: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to