These impls are quite simple ... No one so far ever needed something like this
On Wed, Jan 16, 2013 at 1:14 PM, Oscar Besga Arcauz <obe...@isdefe.es>wrote: > I've made a class, extending the DefaultPageManagerProvider to avoid > Wicket page store (in order recreate every page at every request from users) > > > I'm testing it, and found no problems - for now. > > Take a look; I'm thinking about sending it to JIRA as an improvement > > > /** > * User: obesga > * Date: 16-jan-2013 > * Page manager that does not store any page, nor any bit > */ > public class VoidPageManagerProvider extends DefaultPageManagerProvider { > > // Common properties > private IPageManagerContext iPageManagerContext; > private IPageManager iPageManager; > private IDataStore iDataStore; > private IPageStore iPageStore; > > /** > * Basic construftor > * @param application Actual application > */ > public VoidPageManagerProvider(Application application) { > super(application); > iPageManagerContext = new DefaultPageManagerContext(); > iDataStore = new VoidIDataStore(); > iPageStore = new VoidIPageStore(); > iPageManager = new > VoidPageStoreManager(application.getName(),iPageStore,iPageManagerContext); > } > > @Override > public IPageManager get(IPageManagerContext pageManagerContext) { > return iPageManager; > } > > @Override > protected IPageStore newPageStore(IDataStore dataStore) { > return iPageStore; > } > > @Override > protected IDataStore newDataStore() { > return iDataStore; > } > > /** > * A data store that doesn't store a byte > */ > private class VoidIDataStore implements IDataStore { > > public byte[] getData(String s, int i) { > return null; > } > > public void removeData(String s, int i) { > } > > public void removeData(String s) { > } > > public void storeData(String s, int i, byte[] bytes) { > } > > public void destroy() { > } > > public boolean isReplicated() { > return true; > } > > public boolean canBeAsynchronous() { > return true; > } > } > > /** > * A page store that doesn't store a page > */ > private class VoidIPageStore implements IPageStore { > > public void destroy() { > > } > > public IManageablePage getPage(String s, int i) { > return null; > } > > public void removePage(String s, int i) { > > } > > public void storePage(String s, IManageablePage iManageablePage) { > > } > > public void unbind(String s) { > > } > > public Serializable prepareForSerialization(String s, Object o) { > return null; > } > > public Object restoreAfterSerialization(Serializable serializable) > { > return null; > } > > public IManageablePage convertToPage(Object o) { > return null; > } > } > > /** > * The basic store manager, extended to not support versioning > */ > private class VoidPageStoreManager extends PageStoreManager implements > IPageManager { > > public VoidPageStoreManager(String applicationName, IPageStore > pageStore, IPageManagerContext context) { > super(applicationName, pageStore, context); > } > > @Override > public boolean supportsVersioning() { > return false; > } > } > > > } > > > > > > > > > Oscar Besga Arcauz < < < > > -----Martin Grigorov <mgrigo...@apache.org> escribió: ----- > Para: users@wicket.apache.org > De: Martin Grigorov <mgrigo...@apache.org> > Fecha: 16/01/2013 09:00 > Asunto: Re: Do not cache pages, nor in application, nor in browser > > Hi, > > > On Tue, Jan 15, 2013 at 7:59 PM, Oscar Besga Arcauz <obe...@isdefe.es > >wrote: > > > > > > > I use these code in order to avoid web page cache, in browser and in > > wicket application; > > also I want to avoid disk caching and serialization > > > > I'm using Wicket6 > > > > > > ¿ Do you see this code correct ? ¿ Is there any easier way to accomplish > > this ? > > > > /** > > * App > > */ > > public class MyApplication extends WebApplication { > > @Override > > public void init() { > > super.init(); > > setPageManagerProvider(new MyPageManagerProvider(this)); > > } > > > > /** > > * shall not save > > */ > > private class MyPageManagerProvider extends > DefaultPageManagerProvider > > { > > > > private MyPageManagerProvider(Application application) { > > super(application); > > } > > > > > > @Override > > protected IDataStore newDataStore() { > > // guardamos tod o en memoria > > return new HttpSessionDataStore(new > > DefaultPageManagerContext(), new PageNumberEvictionStrategy(0)); > > > > You can use getStoreSettings#setMaxSizePerSession(Bytes.bytes(1)) with the > default DiskDataStore too. > But your approach is better because this way you don't do IO operations. > > > > } > > > > } > > > > } > > > > > > > > > /******************************************************************************************/ > > > > /** > > * Web Page > > */ > > public class MyPage extends WebPage { > > > > @Override > > protected void setHeaders(WebResponse response) { > > super.setHeaders(response); > > response.setHeader("X-Frame-Options","deny"); // Avoid IFRFAMES > > response.setHeader("Cache-Control", > > > "no-cache,no-store,private,must-revalidate,max-stale=0,post-check=0,pre-check=0"); > > response.setHeader("Expires","0"); > > response.setHeader("Pragma", "no-cache"); > > response.disableCaching(); > > > > You probably want to call #disableCaching() *before* your setHeader() > calls. Currently #disableCaching() overrides some of them. > > > > } > > > > } > > > > > > > > > > > > > Oscar Besga Arcauz < < < > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com <http://jweekend.com/> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com <http://jweekend.com/>