Everything Java Apache Geospatial Open Source. Hello Shinning Stars!!! Vincent Massol, Raphael Luta, Santiago Gala, Carsten Z.

Friday, September 01, 2006

Profiling, profiling, profiling. When a user connects to the Apache Portals Jetspeed enterprise portal the profiler will decide what he or she gets. The profiler uses rules and criteria in order to find a match based on user, group, role, language, media type, country, language.

The Profiler Valve invokes this process. First the criteria object is build defined by the keys: page, user, group, role, media-type.

There are only two default rule objects used by J2 out of the box. The StandardProfilingRule and the RoleFallbackProfilingRule. Both set up keys for the criteria stored in the database.

The database implements two tables, PROFILING_RULE and RULE_CRITERION. When applied the rules build a ProfileLocator which is used in the content negociation logic of the ProfilerValve. Implemenation to be verified.

The ProfileLocator object is like a super map full of keys and values. The key is the Criterion object. Currently reading implementation...

Administrators can see all the rules available but one has to know the keys, 'page', and 'menu' are the most common and are setup out of the box. Both users 'user' and 'jetspeed' are setup with the 'role-group' rule set to the key 'menu'. Their 'page' rules are different. 'role-fallback' and 'j2' respectfully. Their roles are set to 'user'.

The Profiler in conjunction with the Page Manager converts location keys into file system paths. Example,


Is converted to,


A fallback mechanism is used to search for alternatives. The first file found is used to render the page,


See the Profiler - Page Manager design documentation for a more detailed description.

What is Fallback? People say things like a Jetspeed Profile Rule fallback, meaning the rule will fallback if it does not find an exact match. This means that the rule will loop through a sequence of paths until it finds a file that meets the Criteria. See the above example.

No comments: