I think when PSML is refreshing, the client browser still cache old pages. You can use client side code,such like java script or applet to fource browser to reload new content.
Sam Fan > It works fine, the psml was reloaded but the screen change only after I > refresh it. > > Anyboyd have idea how to get it changed w after execute the method call for > reload the psml? > > Thank you very much for all helps. > > > ----- Original Message ----- > From: "綠羽毛" <[EMAIL PROTECTED]> > To: "Jetspeed Developers List" <[EMAIL PROTECTED]> > Sent: Friday, December 03, 2004 7:15 AM > Subject: Re: Refreshing a psml reference > > > > hellow all > > I have the same problem on this issue, but I solved it. > > Here is my solution: > > > > 1.add following method in CastorPsmlManagerService.java > > > > public FileCache getDocuments() { > > return documents; > > } > > > > 2.add following method in FileCache.java > > > > public void evictAll() { > > synchronized (cache) { > > > > List list = new LinkedList(cache.values()); > > Collections.sort(list, this); > > > > > > > > for (Iterator it = list.iterator(); it.hasNext();) { > > > > FileCacheEntry entry = (FileCacheEntry) it.next(); > > String key = null; > > try { > > key = entry.getFile().getCanonicalPath(); > > } catch (java.io.IOException e) { > > logger.error("Exception getting file path: ", e); > > } > > // notify that eviction will soon take place > > for (Iterator lit = this.listeners.iterator(); > > lit.hasNext(); > > ) { > > FileCacheEventListener listener = > > (FileCacheEventListener) lit.next(); > > listener.evict(entry); > > } > > cache.remove(key); > > } > > } > > } > > > > 3.When you change source PSML which will be referenced by other > > PSML,run following method in any action. PSML cache will be evictd, and > > PSML will all refresh. The PSML cache is still working. > > > > CastorPsmlManagerService cs = > > > (CastorPsmlManagerService)TurbineServices.getInstance().getService("PsmlMana > ger"); > > FileCache fc =cs.getDocuments(); > > System.out.println("before evictting Cach Size:" + fc.getSize()); > > fc.evictAll(); > > System.out.println("after evictting Cach Size:" + fc.getSize()); > > > > > > Hope it will userful for you. > > > > Regards, > > > > Sam Fan > > From: [EMAIL PROTECTED] <[EMAIL PROTECTED]> > > Subject: Refreshing a psml reference > > Date: Wed, 17 Nov 2004 14:14:58 -0700 > > Content-Type: text/plain; > > charset="iso-8859-1" > > > > I am looking into the getDocument method in the PsmlManagerService. The > > refresh method call getDocument() with the getCached set to false. I > believe > > the tricky part is when and where to do refresh. When using a reference, > the > > psml manager doesn't know if the referenced psml is changed or not. I am > > still digging and hopefully will find a good resolution. > > This happened in a user by user basis because one user has psml cached but > > the other one doesn't. > > Andy > > > > -----Original Message----- > > From: Dan Moore [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, November 17, 2004 2:05 PM > > To: Jetspeed Users List > > Subject: RE: Refreshing a psml reference > > > > > > I'd think bypassing the cache would be a bad thing in the future. You > > might want to look at the 'refresh' method on the PSMLManager service > > interface: > > > > > http://portals.apache.org/jetspeed-1/apidocs/org/apache/jetspeed/services/ps > > > mlmanager/PsmlManagerService.html#refresh(org.apache.jetspeed.om.profile.Pro > > fileLocator) > > > > I'd dig into that class to gain a better understanding of how caching > > of psml documents actually happens. What you're experiencing implies > > that it happens on a user by user basis, which does not make a whole > > lot of sense to me, at least for group and role based psml documents. > > > > Dan > > > > --- [EMAIL PROTECTED] wrote: > > > > > After a little more research, we discovered one more way to get > > > around this > > > issue. There is a setting in JetspeedResource.properties file, > > > services.PsmlManager.cacheSize. It is default to 100, meaning maximum > > > 100 > > > psml pages will be cached. We change that to 0 and it fixed this psml > > > reference refresh issue. > > > Is this change recommended? It is obviously for a performance reason > > > (probably save time on File I/O). With only limited users(<500)using > > > the > > > site now, we didn't notice a obvious impact. However, we will have > > > more > > > users in the future and the psml cache will be a good thing to have. > > > Without > > > turning it off, is there a setting to control the expiration of the > > > psml > > > cache? > > > Andy > > > > > > -----Original Message----- > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, November 17, 2004 11:05 AM > > > To: [EMAIL PROTECTED] > > > Subject: Refreshing a psml reference > > > > > > > > > We just implemented a Jetspeed 1.5 portal site with tomcat 4.1.18. > > > The psml > > > reference is used so that different users can share a group or role > > > psml > > > file. When we make a change to the group psml (e.g. adding a portlet > > > to the > > > page), the users who have previously login to the site won't see the > > > change > > > if they login again (even after a while). However, if the user login > > > as the > > > first time, they could see the change. Of course, the change will be > > > visible > > > to everyone after bouncing the tomcat. The sequence is like this. > > > -login as user1 then logout > > > -change the group psml that is referenced by user1's psml > > > -login as user2 to verify the referenced psml is changed. > > > -if yes from pervious step, login as user1 > > > -too bad, the user1 still don't see the change. > > > It seems that there is caching happened for user1. However we are not > > > sure > > > which setting could affect this. We also waited overnight expecting > > > the > > > cache will expire. That did not happen either. > > > Has anyone actively using reference? Any experience with this issue? > > > Thanks! > > > Andy > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: > > > [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: > > > [EMAIL PROTECTED] > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------- > > This message has been scanned for viruses and > > dangerous content by MailScanner, and is > > believed to be clean. > > > > By @utoTOOLS MIS > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] -- Sam <[EMAIL PROTECTED]> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]