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]

Reply via email to