Short portlet programming guide in p grade gridsphere environment
This presentation is the property of its rightful owner.
Sponsored Links
1 / 40

Short Portlet Programming Guide in P-Grade (Gridsphere) environment PowerPoint PPT Presentation


  • 44 Views
  • Uploaded on
  • Presentation posted in: General

Short Portlet Programming Guide in P-Grade (Gridsphere) environment. G. Hermann. Content. Main ideas Execution model Representation Part I Java – JSP collaboration Part II Definition of Portlets by portlet.xml and layout.xml Tomcat directory hierarchy. Main ideas.

Download Presentation

Short Portlet Programming Guide in P-Grade (Gridsphere) environment

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Short portlet programming guide in p grade gridsphere environment

Short Portlet Programming Guide in P-Grade (Gridsphere) environment

G. Hermann


Content

Content

  • Main ideas

  • Execution model

  • Representation

  • Part I Java – JSP collaboration

  • Part II Definition of Portlets by portlet.xml and layout.xml

  • Tomcat directory hierarchy


Main ideas

Main ideas

  • Layout design and business logic are separated

  • Response WEB pages are generated with the help of run time compiled and linked java code.

  • Even little parts of WEB pages can be handled independently (portlet concept)


Warning

Warning !

  • We restrict ourselves to the Portlet implementation of the Gridsphere

  • Focus on the class ActionPortlet

    Tasks:

    • Defines “states” described by Java Servlet Pages (Jsp)

    • Defines callback routines called

      • before HTML response generation (view)

      • after user action (update)


Execution model possible ways

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

init(PotletConfig)

Execution model - possible ways

HTTML response generation


Execution model regime modify

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

init(PotletConfig)

Execution model-regime modify

HTTML response generation


Execution model regime show

First request from client

Next requests from client

X(RenderFormEvent)

init(PotletConfig)

Execution model-regime show

HTTML response generation


Representation i

Representation I

  • java code (Action Portlet)defines the callback routines and the current (and next) state made intuitive to the client by defining the selection of the proper Jsp page in that state. The java code is responsible for the whole business logic.

  • Java Servlet Page (JSP) (file: xx.jsp) Composes the frame of the layout and defines communication interface between the client and java code in a given state.

  • The UI Tag Librarydefines the layout and the passive –data- interface between java code and JSP. The Java representation of the UI Tag Library follows the Bean concept. The JSP representation of UI Tag Library is XML.

  • “portlet.xml” defines the portlet and references the java code

  • “layout.xml” defines the menu hierarchy haw the callable portlets should appear. (layout.xml is GridSphere specific!)


Representation ii

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

init(PotletConfig)

UI Tag Library objects

Ani.jsp

Representation II

class Any extends ActionPortlet

HTTML response generation


Remarks 1 ui tag library

Remarks(1) UI TAG LIBRARY

  • The UI Tag Library is not discussed in detailed in the subsequent example.

  • The Java side usage of it is self explaining by the Bean paradigm.

  • For the XML usage of it in the JSP file consult the document:http://www.gridsphere.org/gridsphere/docs/TagGuide/TagGuide.htm

  • What you must know is that the interface variables are identified by associated Strings


Remarks 2 state transitions

Remarks(2) State Transitions

Please note that the event handling interrupt routines of the Java Class ActionPortlet may terminate with the state transition instruction setNextState(PortletReqest,String), where the String parameter may refer either

  • a name of a routine, or

  • a JSP. The action defined in that JSP defines the next state.


Remarks 3 other state subtilities

Remarks(3) other state subtilities

  • The String “DEFAULT_HELP_PAGE” is used to define a JSP when the client hits the “?” icon on the portlet

  • The String “DEFAULT_EDIT_PAGE” is used to define a JSP when client hits the “pen” edit icon.


Remarks 4 programing style

Remarks (4) Programing style

  • The JSP pages may contain direct java code fragments among UI tags and forms.However you are emphatically asked to avoid them: The overview of the program logic can be lost easily if the program code is fragmented, and the JSP is not used as its designated: for gathering and rendering of client data.


Part i life cycle of a portlet by an example

Part I: Life Cycle of a Portlet by an example

The simple Portlet “EnterName” redisplays a single string entered by the client.


Entername java and the corresponding entername jsp files

EnterName.java and the corresponding EnterName.jsp files


First request arrives from the client

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

Init(PotletConfig)

First Request arrives from the client

HTTML response generation

The routine init will be activated


Java jsp connections 1

Java – Jsp connections-1

DEFAULT_VIEW_PAGE determines

that before the elaboration of the first

response the given rendering routine

will be called.


First rendering

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

Init(PotletConfig)

First Rendering

HTTML response generation

Variables need to show to the client are prepared


Java jsp connections 2

Java – Jsp connections-2

The jsp is referenced by the java code.

After the running of the routine the HTML generation defined by the Jsp will be performed


Java jsp connections 3

Java – Jsp connections-3

The parameter referenced by the handle “nameSessionHandle” does not exist, therefore the bean object referenced “nameOld” – wich will be created upon the first reference –receives the value “not defined”.


Java jsp connections 4

Java – Jsp connections-4

The bean referenced as

“nameOld” will be used to display the value known by the system before the user interaction.


Java jsp connections 5

Java – Jsp connections-5

The jsp page will generate the HTML response


Html generated by the jsp as it appears for the client

HTML generated by the JSP as it appears for the Client

The Jsp page will generate the HTML code in the response for the selected frame


Java jsp connections 6

The internally generated bean objects are used to exchange data between Jsp defined HTML code and Java routines

Java – Jsp connections-6


Java jsp connections 7

Java – Jsp connections-7

The user hitting the button labeled as “Update” generates a Request activating the routine updateName


Java jsp connections 8

Java – Jsp connections-8

Example: The Client fills the text field as “newValue”, and hits the

Button “Update”


Repeated request arrives

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

Init(PotletConfig)

Repeated request arrives

The prescribed ActionFormEvent handler will be activated.

HTTML response generation


Java jsp connections 9

Java – Jsp connections-9

In the action event handler the value defined by the client and stored in a bean referenced as “nameNew” will be read


Java jsp connections 10

Java – Jsp connections-10

The text value will be forwarded to the subsequent rendering routine via the handle “nameSessionHandle”


Java jsp connections

Java – jsp connections

As a last step the routine triggers the rendering event


Repeated rendering

First request from client

Next requests from client

Y(ActionFormEvent)

X(RenderFormEvent)

Init(PotletConfig)

Repeated Rendering

HTTML response generation


Java jsp connections 11

Java – Jsp connections-11

As the value associated by

“nameSessionHandle” is not emptythe bean referenced as “nameOld”will receive this value


Html generated by the jsp as it appears for the client after repeated rendering

HTML generated by the JSP as it appears for the Client after repeated Rendering

The bean referenced “nameOld” now has the value “newValue”


Summary of all external java jsp connections

Summary of all external Java- Jsp connections


Part ii definition of a portlet

Part II Definition of a Portlet

  • A new portlet prepared by the java and JSP files must have an entry in the file “portlet.xml” and it

  • must be referenced in the file “layout.xml”,

  • must define an interpreter java class path,

  • And a title label


Portlet xml

portlet.xml

The new potrlet

Portlet name will be referenced in file layout.xml

Path of the java class controlling the portlet

Text in the title of the portlet


The layout xml

The layout.xml

  • Must define the menu hierarchy

  • Define the appropriate labels for the user navigation

  • Reference the used portlets


Layout xml

layout.xml

Display name of a group of a submenu

Display name of of a submenu item

Referencing the name of the potled defined in portlet.xml

Portlet as a submenu item

Referencing the web application


Summary of connectons layout xml portlet xml and html image

Summary of connectons: layout.xml, portlet.xml and HTML image


Tomcat dictionary

webapps/

hu/

…/

…/

jsp/

WEB-INF/

…/

portal30/

…/

…/

hello/

…/

…/

hello/

portlets/

pgportal/

lpds/

sztaki/

…/

portlet.xml

enterName.jsp

…jsp

lib/

layout.xml

…/

…jsp

classes/

EnterName.class

Tomcat dictionary

The jar files encountered here must correspond to the import references defined in EnterName.java


  • Login