With the major rewrite of the Pluto 2.0.0 container, the need and usage of the PortletEntity no longer is needed within Pluto itself, nor in Jetspeed.
The Portlet specification (2.0) describes the concept of a PortletEntity as follows in PLT.5.3.1:
"At runtime, when serving requests, one or more preference objects are associated with a portlet.
The resulting association of a specific preference object with a portlet is called the portlet entity.
This concept is abstract. There is not a concrete object that represents the portlet entity.
The portal / portlet container merely associates the proper preference object with the context that is passed to the executing portlet."
As the Pluto container does not impose in any way how the proper preference object is associated, but delegates this to the portal (like Jetspeed) for which it provides the current PortletWindow as selector,
it is completely up to the embedding portal how to select the proper preference object. Within the Pluto container, there is no concrete usage anymore of a PortletEntity nor wat it should be or do, if it even exists.
In Jetspeed 2.1.x, the PortletEntity implementation used to drive the access to the portlet preferences, but in Jetspeed 2.2 this is now all derived from the PortletWindow (ID) itself, and no longer requires a concrete OM to manage it.
This might change again in the future (see:
JS2-876), but when that happens it will require a very different OM implementation and handling than the current one.
In Pluto, the PortletEntity interface will be dropped shortly, see:
PLUTO-559, after moving its only getPortletDefinition() method up into PortletWindow.
NB: in Jetspeed this actually already has been done: Jetspeed PortletWindow already extends Pluto PortletEntity.
As a consequence of
PLUTO-559 we will need to drop the dependency its PortletEntity in Jetspeed too, including replacing any remaining old usages of PortletEntity.getPortletDefinition() with PortletWindow.getPortletDefinition().
I'll also remove, comment out or make obsolete any remaining usages of our PortletEntityAccessComponent and its corresponding PersistenceBroker which no longer were actively used anyway.
Furthermore, the OM database table, PORTLET_ENTITY won't be needed anymore either, so I'll remove that from the schema generation and (OJB) persistence mapping as well.
I will not remove the now obsolete jetspeed api nor the core implementation classes however. They might either get dropped in a next release or enhanced/refactored to serve a new purpose like as for