|
Eric, I strongly favor #2, retaining portlet-adapter-as-an-implementation-of-a-channel-API and making this an easier pill to swallow by introducing even more powerful (IPortletChannel) interfaces. There's a tremendous amount of machinery re-use gained from the CPortletAdapter being "just another IChannel" in appropriate respects -- worker thread dispatching, timeout support, error channel replacement support, so forth. I don't see any reason not to introduce new IBetterThanChannel APIs to implement better support for portlet adapters -- those IBetterThanChannels can be supported alongside IChannel, which seems to me to get all the value of what is meant by supporting portlets "as first class citizens" with less apocalypse. There are some things that Portlets do better than channels. As a trivial example: On sober second thought, help, about, and edit are better represented as modes than as events. There's nothing stopping uPortal from evolving IChannel-ish-APIs towards this better approach -- in reality the number of implementations of receiving the Edit, About, and Help events out there in the wild are small and the effort to refactor towards an IBetterChannel API to take advantage of that sort of modeling as we incrementally improve those channels is modest. It's the duplication of code spectre that pushes me towards #2. Rendering a channel and rendering a portlet share more than they differ. I think we should be very open to powerful innovations to make JSR-168 and JSR-286 support really good --- it's been commented many times that uPortal should be smarter about reading portlet preferences declared in portlet.xml and making them available in the channel publishing workflow in a more natural way. Absolutely! This can be part of a re-visitation of the way that Channel Manager workflow is currently implemented. Right now it's really good at what it does, and that's a good thing, cuz it's really hard to change. (Massive XSLT, anyone?) A more pluggable Channel Manager and way to implement even better publication workflows would be a good thing. One important application of this, but by no means the only one, would be to implement better portlet publication support. Better UIs and user experiences for publishing portlets does not necessitate abandoning the concept of an adapter class. Having an API for the adapter class and an implementation of that API has nice properties in the ability to introduce alternative implementations. Is Sun's portlet container implementation better than Pluto's in some way? I don't know, but I prefer an architecture that makes it easy to contemplate introducing an alternative implementation of the adapter and having that bake-off. Do you need your portlet adapter to introduce CAS proxy tickets in particular places, say as special request parameters? We've seen a demonstrated need for this already. Would you sleep easier at night if only the portlets that actually need the end user's password have them available to them, rather than the adapter always passing the password along when it is available? I just might. Conceivably, we'd have a different adapter implementation for JSR-168 and JSR-286, and yet another for the JSR-286-plus-non-standard-but-widely-adopted-AJAXY-stuff. Note that there's already a marker interface for IChannels wishing to be treated specially as portlet adapters. I introduced this once upon a time when trying to remove classname-specific checking in channel rendering. That might be something to evolve into the new interface. Andrew Not having cycles to code doesn't mean you shouldn't vote and I hope everyone contributes to the discussion here even if that is all they can do. -- You are currently subscribed to [email protected] as: [EMAIL PROTECTED] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/uportal-dev |
- [uportal-dev] Pluto 1.1 integration design Eric Dalquist
- Re: [uportal-dev] Pluto 1.1 integration desi... William G. Thompson, Jr.
- Re: [uportal-dev] Pluto 1.1 integration ... Eric Dalquist
- Re: [uportal-dev] Pluto 1.1 integrat... Andrew Petro
- Re: [uportal-dev] Pluto 1.1 inte... Eric Dalquist
- Re: [uportal-dev] Pluto 1.1 integration desi... Cris J Holdorph
- Re: [uportal-dev] Pluto 1.1 integration desi... Elliot Metsger
- Re: [uportal-dev] Pluto 1.1 integration ... Eric Dalquist
- [uportal-dev] Pluto 1.1 integration ... Eric Dalquist
- Re: [uportal-dev] Pluto 1.1 inte... Jason Shao
