Hi Jacques:
IMO, it is a big deal. When someone is looking at OFBiz for an enterprise solution and the competition is Jetspeed, Liferay, Websphere etc., we should be clear that when the OFBiz project says "Portal" it does not mean what everyone else "thinks it means". It is misleading.

Just to be clear: I don't think OFBiz needs a JSR compliant portal server. In my experience, portal servers are bloated and overrated and have limited use.

Maybe we could take a little survey - do some marketing - and come up with another label for these features/functions?

Just a thought.
Ruth

Jacques Le Roux wrote:
From: "David E Jones" <d...@me.com>
Bring confusion in the future? That's like saying you shouldn't use the term object-relational mapping unless you're talking about JPA.

Just like object-relational mapping is a general term with many variations and implementations, and supporting the JPA interfaces is simply a feature of some of those implementations, portal and portlet are also general terms with many variations and implementations, and only some of them support the JSR 168 specification.

Should we then say that portal/portlet software not written in Java should not use those terms?

If so, which terms should those unfortunate souls use to describe their creations?

OFBiz-portlets and OFBiz-portal ? Not a big deal anyway, just that some people think they will be able to embed some external portlets in OFBiz and are dissapointed.

Jacques

-David


On Dec 31, 2009, at 8:48 AM, Jacques Le Roux wrote:

I agree with Ruth, this will (and has already) certainly bring some confusion in future.

Jacques

From: "Ruth Hoffman" <rhoff...@aesolves.com>
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 <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











Reply via email to