Are you using the RSSPortlet or NewRSSPortlet?
I believe you should be using the new.

To control the expiration,  override the getExpire() method.


----- Original Message -----
From: "Setera, Craig" <[EMAIL PROTECTED]>
To: "Jetspeed Developers List" <[EMAIL PROTECTED]>
Sent: Monday, January 14, 2002 2:29 PM
Subject: Please Help: Howto Expire RSS Portlets Programmatically?


> Hello all,
>
> I asked about this once before, but received no response.  Not sure if
> people just don't know the answer or if my original request was missed.
> Hopefully it was the latter and my asking again won't be too much of a
> bother.
>
> My company is busy building things around the excellent Jetspeed 1.3a2
> release of the portal.  We have built a number of "local" OCS content
feeds
> that are managed on the local disk.  In addition, we have built a very
> simple content management front-end to add content to the OCS/RSS stream.
> We would like to be able to flush all of the affected RSS portlets
> immediately following an update to one of the RSS files such that the next
> load of the portlet will show the new/removed items.  Unfortunately, I
can't
> seem to get this to work.  I've coded up the following in hopes of
clearing
> the changed portlet, but it doesn't seem to work for some reason.
>
> /**
>  * Flush the cached version of the portlet that wraps
>  * the specified RSS content stream.
>  */
> protected void flushRssPortlet(String rss) {
> // Get access the the portlet factory service
> ServiceBroker serviceBroker = TurbineServices.getInstance();
> PortletFactoryService portletFactory =
> (PortletFactoryService)
> serviceBroker.getService(PortletFactoryService.SERVICE_NAME);
>
> // Look up the portlet in the factory
> Portlet portlet = null;
> try {
> portlet = portletFactory.getPortlet(rss);
> } catch (PortletException e) {
> // munch
> }
>
> // If we found it, pull its cache key and remove
> // it from the caches
> if (portlet != null) {
> // First, clear the disk cache
> String diskCacheURL = portlet.getPortletConfig().getURL();
> JetspeedDiskCache.getInstance().refresh(diskCacheURL);
>
> // Then the portlet cache
> if (portlet instanceof Cacheable) {
> String cacheKey = ((Cacheable) portlet).getHandle();
>
> // OK.  We have the cache key now.  Remove from the
> // portlet cache
> PortletCache.removeCacheable(cacheKey);
> }
> }
> }
>
> Part of this *may* be due to the fact that the FileWatcherExpire object
does
> not seem to be intialized when the portlet is initially created.
> Unfortunately, even forcing the expire object to be created/initialized
> didn't fix things.
>
> Can anyone offer any insights or thoughts on how to solve this?  I have
run
> out of ideas and could really use some help.
>
> Thanks,
> Craig
>
> Craig Setera
> Sun Certified Java Programmer/Developer/Web Component Developer
> Senior Software Architect, Kingland Systems Corporation
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to