The terms "portal" and "portlet" existed, and were used in a software user 
interface context, a LONG time before JSR 168 was a twinkle in the eye of the 
fans of ineffective design and standardization for marketing purposes that 
created the spec.

I have no intention of granting them ownership of these words. I don't even 
like their definitions of them!

So, thank you very much, I'll continue using them by their more traditional and 
general definitions and not the limited, and of limited use, definitions 
related to JSR 168.

On the practical side: if we did abandon the term "portlet" we should also 
abandon the term "portal" since they really always go together in the context 
of software user interfaces, and if we abandon those terms we have a lot of 
searching and replacing to do in OFBiz, aside from the small issue of coming up 
with other terms to use for these concepts.

-David


On Dec 31, 2009, at 7:32 AM, Ruth Hoffman wrote:

> Hi David:
> IMO the term "portlet" should only be applied to JSR 168/268 compliant code.
> 
> Regards,
> Ruth
> 
> David E Jones wrote:
>> MyPortal still needs a lot of work.
>> 
>> It should really be just the shell of the portal and include only a very few 
>> portlets that are part of the framework.
>> 
>> Higher level components, including applications components, can have their 
>> own portlets that appear in MyPortal by having data in seed/etc data files, 
>> and that data will tell MyPortal about these portlets.
>> 
>> OOTB the MyPortal stuff shouldn't know anything about any portlets (other 
>> than a few basic framework ones). At runtime MyPortal will look for 
>> information about other portlets, but that information should come only from 
>> the higher level components where the portlets themselves live.
>> 
>> -David
>> 
>> 
>> On Dec 31, 2009, at 4:50 AM, Bruno Busco wrote:
>> 
>>  
>>> That's true, it would be still a dependence.
>>> 
>>> Anyway, in this case the MyPortal is considered to be dependent from
>>> all other components (because it "mounts" portlets defined by all
>>> other components in the default portalPages).
>>> It should be possible to use the MyPortal component even if one of the
>>> other components is not used.
>>> 
>>> I think a different logic is needed here.
>>> 
>>> -Bruno
>>> 
>>> 2009/12/31 David E Jones <[email protected]>:
>>>    
>>>> That still represents a dependency on the other component.
>>>> 
>>>> Lower level components should not even have anything that represents an 
>>>> awareness of a higher level component.
>>>> 
>>>> The solution, and the only solution, is to move the data to the higher 
>>>> level components. It's that simple.
>>>> 
>>>> -David
>>>> 
>>>> 
>>>> On Dec 30, 2009, at 5:54 PM, Bruno Busco wrote:
>>>> 
>>>>      
>>>>> Hi,
>>>>> the MyPortal component has many seed data that create a dependence
>>>>> from many other components.
>>>>> This is done because the seed data create the default MyPortal
>>>>> portalPages that include several portlets from all other components.
>>>>> 
>>>>> For example:
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE"
>>>>> portalPortletId="SystemInfoNotes" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="0"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE"
>>>>> portalPortletId="SystemInfoStatus" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="1"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE"
>>>>> portalPortletId="Calendar" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="2"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE0"
>>>>> portalPortletId="INCOM_CUST_REQUESTS" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="0"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE0"
>>>>> portalPortletId="MyCommunications" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="1"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="party" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="0"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="partyRelContacts" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="1"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="partyRelAccounts" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="2"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="contact" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="3"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="LoyaltyPoints" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="4"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="PaymentMethods" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="5"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="AvsSettings" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="6"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="UserLogin" portletSeqId="00001" columnSeqId="00002"
>>>>> sequenceNum="1"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="Attributes" portletSeqId="00001" columnSeqId="00002"
>>>>> sequenceNum="2"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="Visits" portletSeqId="00001" columnSeqId="00002"
>>>>> sequenceNum="3"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="Content" portletSeqId="00001" columnSeqId="00002"
>>>>> sequenceNum="4"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="ShipperAccount" portletSeqId="00001"
>>>>> columnSeqId="00002" sequenceNum="5"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="Notes" portletSeqId="00001" columnSeqId="00002"
>>>>> sequenceNum="6"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE1"
>>>>> portalPortletId="MYTASKSPARTY" portletSeqId="00001"
>>>>> columnSeqId="00002" sequenceNum="7"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE2"
>>>>> portalPortletId="MyCommunications" portletSeqId="00001"
>>>>> columnSeqId="00001" sequenceNum="0"/>
>>>>>   <PortletAttribute portalPageId="MYPORTAL_EMPLOYEE2"
>>>>> portalPortletId="MyCommunications" portletSeqId="00001"
>>>>> attrName="communicationPartyId" attrValue="Company"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE4"
>>>>> portalPortletId="mytimesheet" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="0"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE5"
>>>>> portalPortletId="mytasks" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="0"/>
>>>>> 
>>>>> How can we have a conditional seed data loading that would load only
>>>>> seed data for the portlets really available in the system?
>>>>> I mean, could we have something like this:
>>>>> 
>>>>> <if-component-loaded name="Workeffort">
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE4"
>>>>> portalPortletId="mytimesheet" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="0"/>
>>>>>   <PortalPagePortlet portalPageId="MYPORTAL_EMPLOYEE5"
>>>>> portalPortletId="mytasks" portletSeqId="00001" columnSeqId="00001"
>>>>> sequenceNum="0"/>
>>>>> </if-component-loaded>
>>>>> 
>>>>> or is there any other tecnique to do this?
>>>>> 
>>>>> Many thanks,
>>>>> Bruno
>>>>>        
>>>>      
>> 
>> 
>>  

Reply via email to