Hi I'm a new Jetspeed user and I want to ask some questions hope not to be replied before 1) Where/When is ECS used to render the portlets ? ECS is used in the under the covers of Jetspeed for returning content. You don't need a detailed knowledge of ECS any more unless you want to generate HTML,XML, WML in your portlet. It is much easier to do this with Velocity.
2) How is links of ( Minimize , Maximize .... ) are constructed ? These are create dynamically based on the user's security settings. The template used to render the actual portlets is jetspeed.vm. I am still working on understanding security as it relates to porlets. I would review JetspeedSecurity.properties and the JetspeedAccessController code. 3) jslink , clink , and other variables how can I get used from .. or what are their functionality exactly ? There is a Portlet called JSLINK that gives example of using the JSLINK pull tool. jlink is no longer used after version 1.3X. jslink is used for creating links to a user's /group/role panes and portlets. It also provide links to specific PSML reference within the user/group/role context. jslink.getGroup("Warehouse") http://www.hughbrien.com/jetspeed/portal/group/Warehouse jslink.getGroup("lab","LabHome") http://www.hughbrien.com/jetspeed/portal/group/lab/page/LabHome jslink.getRole("manager") http://www.hughbrien.com/jetspeed/portal/role/manager jslink.getUser("joe") http://www.hughbrien.com/jetspeed/portal/user/joe I'll be thankful if the reply is done over a cycle of request for jetspeed .. as how is default page constructed when it is requested All of the portlet rendering is done starting at the Home.vm templates in the templates/screens directory. This template references the JetspeedTool ($jetspeed). If you look at the source code, specifically at the getPane() method you can see where this kicks everything off. Within this methods the following occurs: the RunData object, which was instantiated in the Turbine servlet, is passed to the Profiler and a specific profile is returned. The profile is made up of user, group, role, country, language, etc see the Profile interface for all the parameters. The parameters in the Profile determine which PSML file will be retieved by the Profile service. The Profile services can be configured to used either a the file system or database to store PSML documents. We used database option at our company. profile = Profiler.getProfile(rundata); rundata.setProfile(profile); PSMLDocument doc = profile.getDocument(); result = PortalToolkit.getSet(doc.getPortlets()).getContent(rundata); doc.getPortlets() returns all the objects references to all the portlets from a specific PSML document. The PortletToolKit is the convenience class for the PortletToolKitSerice. PortalToolKit.getSet() returns the a PortletSet based upon the request. PortletSet.getContent() returns the content of a single portlet or a set of Porlets. Basically the Portlet are all available from the PSML file, PortletToolkit looks the PSML file, the controllers and controls are starts rendering the what the user requested. To get a better understanding of how this all works I would recommend writing some test code and call the relavent services: Profiler, PortletToolKit. Actually I would recommend calling all of the servics to help you understand how it all works. Once you understand a couple of services it will help you understand Jetspeed. Its only a small part of Jetspeed but I hope it help. I would also look at Turbine2, Velocity and Torque to get and understanding of the other facets of Jetspeed. r, Hugh hth Kassem Tawfik Java/Web developer www.nilceclix.com.eg -- To unsubscribe, e-mail: <mailto:jetspeed-user-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:jetspeed-user-help@;jakarta.apache.org> -- To unsubscribe, e-mail: <mailto:jetspeed-user-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:jetspeed-user-help@;jakarta.apache.org>