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 <d...@me.com>: >> >> 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 >> >>