It sounds like quite a task. The admin tool that you use to build page heirarchies - how does it store the info? XML presumably? And the XML is read by the application at run-time.
And so your plug-in would do the same - read its config from an XML file to establish the heirarchy and relationships.
The dynamic part sounds like a major piece of work - but you wouldn't necessarily need that - or is it integral? I suppose it depends on how much static content you have. Obviously with lots of static content, then it would seem churlish not to allow dynamic rearrangement of the site map.
But it depends on how you do it - most of the URLs in a struts-tiles app are based in files that can only be reloaded by reloading the whole app.
I think that's your first worry.
Adam
On 03/19/2004 09:45 AM Andrew Freeman wrote:
After taking a BroadVision One-To-One Portal Developer Workshop this week and seeing how BroadVision uses Struts, I have come to realize that some of the functionality that their product provides could be built directly into Struts itself. Let's start with a simple site map:
0. Root 1. Home 1. Products 1. Product Line 1 1. Product A 2. Product B 3. Product C 2. Product Line 2 1. Product D 2. Product E 2. Personal Home Page 1. Personal Weather Portlet 2. Personal Stock Portlet
First, BroadVision Portal provides an admin tool and an API to build page hierarchies like what is shown above. Every page within the page hierarchy knows itself, its parent, its siblings, and its children. Having an API like this prevents a page from ever becoming an orphan. It also allows sitemaps to be dynamically created and for each page to know how to build its own breadcrumb navigation like this:
Home >> Products >> Product Line 1 >> Product B
Second, each of the above pages can contain zero or more pieces of "content". Broadvision is designed so that multiple pages can point to the same "content". This is the same way multiple Struts Actions can point to the same JSP.
Third, they provide a way to create a user profile.
Fourth, BroadVision provides a way to define what they refer to as qualifiers. For instance:
Department: IT, HR, Finance, Marketing, Sales, etc. User Type: Customer, Employee, Supplier, Distributor Role: Admin, Power User, User, Guest Language: English, French, German
These qualifiers can be assigned to each page within the page hierarchy, each page's content items, and each user profile. This allows the portal to dynamically determine what content to display to a user based on what qualifiers have been assigned to the user. If no qualifiers have been assigned to a page, the page is publicly visible. Otherwise, unless the user profile has the same qualifiers assigned to it as the page, the page will not be visible. The same rules apply to the content items on the page. The cool part about this is that the user only sees the content relevant to them. Thus you are able to create truly dynamic content.
There are, of course, a lot more features associated with BroadVision Portal than what I have listed above. I am mainly looking to have some type of Page Hierarchy concept built into Struts as a Plugin as tightly as Tiles is. The rest of the features could be added onto that concept over time.
What do others think?
-- struts 1.1 + tomcat 5.0.16 + java 1.4.2 Linux 2.4.20 Debian
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]