portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From i...@apache.org
Subject cvs commit: jakarta-jetspeed/proposals/portletAPI portlet_app.htm
Date Wed, 07 Mar 2001 11:51:13 GMT
ingo        01/03/07 03:51:13

  Added:       proposals/portletAPI portlet_app.htm
  Log:
  [portlet API] first draft of a spec for portlet applications (PAR)
  
  Revision  Changes    Path
  1.1                  jakarta-jetspeed/proposals/portletAPI/portlet_app.htm
  
  Index: portlet_app.htm
  ===================================================================
  <html xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns:w="urn:schemas-microsoft-com:office:word"
  xmlns="http://www.w3.org/TR/REC-html40">
  
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=ProgId content=Word.Document>
  <meta name=Generator content="Microsoft Word 9">
  <meta name=Originator content="Microsoft Word 9">
  <link rel=File-List href="./portlet_app-Dateien/filelist.xml">
  <title>Portlet Applications</title>
  <!--[if gte mso 9]><xml>
   <o:DocumentProperties>
    <o:Author>Thomas F. Böhme</o:Author>
    <o:Template>Normal</o:Template>
    <o:LastAuthor>Thomas F. Böhme</o:LastAuthor>
    <o:Revision>2</o:Revision>
    <o:Created>2001-03-05T14:17:00Z</o:Created>
    <o:LastSaved>2001-03-05T14:17:00Z</o:LastSaved>
    <o:Pages>6</o:Pages>
    <o:Words>1907</o:Words>
    <o:Characters>10873</o:Characters>
    <o:Company>IBM Entwicklung GmbH</o:Company>
    <o:Lines>90</o:Lines>
    <o:Paragraphs>21</o:Paragraphs>
    <o:CharactersWithSpaces>13352</o:CharactersWithSpaces>
    <o:Version>9.2812</o:Version>
   </o:DocumentProperties>
  </xml><![endif]--><!--[if gte mso 9]><xml>
   <w:WordDocument>
    <w:HyphenationZone>21</w:HyphenationZone>
   </w:WordDocument>
  </xml><![endif]-->
  <style>
  <!--
   /* Font Definitions */
  @font-face
      {font-family:Courier;
      panose-1:0 0 0 0 0 0 0 0 0 0;
      mso-font-charset:0;
      mso-generic-font-family:modern;
      mso-font-format:other;
      mso-font-pitch:fixed;
      mso-font-signature:3 0 0 0 1 0;}
   /* Style Definitions */
  p.MsoNormal, li.MsoNormal, div.MsoNormal
      {mso-style-parent:"";
      margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:0cm;
      margin-left:0cm;
      margin-bottom:.0001pt;
      mso-pagination:widow-orphan;
      font-size:12.0pt;
      font-family:"Times New Roman";
      mso-fareast-font-family:"Times New Roman";}
  h1
      {mso-style-next:Standard;
      margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:3.0pt;
      margin-left:0cm;
      mso-pagination:widow-orphan;
      page-break-after:avoid;
      mso-outline-level:1;
      font-size:16.0pt;
      font-family:Arial;
      mso-font-kerning:16.0pt;}
  h2
      {mso-style-next:Standard;
      margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:3.0pt;
      margin-left:0cm;
      mso-pagination:widow-orphan;
      page-break-after:avoid;
      mso-outline-level:2;
      font-size:14.0pt;
      font-family:Arial;
      font-style:italic;}
  h3
      {mso-style-next:Standard;
      margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:3.0pt;
      margin-left:0cm;
      mso-pagination:widow-orphan;
      page-break-after:avoid;
      mso-outline-level:3;
      font-size:13.0pt;
      font-family:Arial;}
  p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
      {mso-style-update:auto;
      margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:0cm;
      margin-left:18.0pt;
      margin-bottom:.0001pt;
      text-indent:-18.0pt;
      mso-pagination:widow-orphan;
      mso-list:l0 level1 lfo1;
      tab-stops:list 18.0pt;
      font-size:12.0pt;
      font-family:"Times New Roman";
      mso-fareast-font-family:"Times New Roman";
      mso-ansi-language:FR;}
  p.MsoTitle, li.MsoTitle, div.MsoTitle
      {margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:3.0pt;
      margin-left:0cm;
      text-align:center;
      mso-pagination:widow-orphan;
      mso-outline-level:1;
      font-size:16.0pt;
      font-family:Arial;
      mso-fareast-font-family:"Times New Roman";
      mso-font-kerning:14.0pt;
      font-weight:bold;}
  p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
      {margin:0cm;
      margin-bottom:.0001pt;
      mso-pagination:widow-orphan;
      mso-layout-grid-align:none;
      text-autospace:none;
      font-size:12.0pt;
      font-family:"Times New Roman";
      mso-fareast-font-family:"Times New Roman";
      mso-ansi-language:EN-GB;
      font-style:italic;}
  p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
      {margin-right:0cm;
      mso-margin-top-alt:auto;
      margin-bottom:3.0pt;
      margin-left:0cm;
      text-align:center;
      mso-pagination:widow-orphan;
      mso-outline-level:2;
      font-size:12.0pt;
      font-family:Arial;
      mso-fareast-font-family:"Times New Roman";}
  p.Code, li.Code, div.Code
      {mso-style-name:Code;
      margin-top:0cm;
      margin-right:0cm;
      margin-bottom:0cm;
      margin-left:1.0cm;
      margin-bottom:.0001pt;
      mso-pagination:widow-orphan;
      mso-layout-grid-align:none;
      text-autospace:none;
      font-size:9.0pt;
      font-family:Courier;
      mso-fareast-font-family:"Times New Roman";
      mso-bidi-font-family:"Times New Roman";
      mso-ansi-language:EN-GB;}
  @page Section1
      {size:595.3pt 841.9pt;
      margin:72.0pt 90.0pt 72.0pt 90.0pt;
      mso-header-margin:35.4pt;
      mso-footer-margin:35.4pt;
      mso-paper-source:0;}
  div.Section1
      {page:Section1;}
   /* List Definitions */
  @list l0
      {mso-list-id:-119;
      mso-list-type:simple;
      mso-list-template-ids:-205387082;}
  @list l0:level1
      {mso-level-number-format:bullet;
      mso-level-style-link:Aufzählungszeichen;
      mso-level-text:\F0B7;
      mso-level-tab-stop:18.0pt;
      mso-level-number-position:left;
      margin-left:18.0pt;
      text-indent:-18.0pt;
      font-family:Symbol;}
  ol
      {margin-bottom:0cm;}
  ul
      {margin-bottom:0cm;}
  -->
  </style>
  </head>
  
  <body lang=DE style='tab-interval:35.4pt'>
  
  <div class=Section1>
  
  <p class=MsoTitle><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet
  Applications<o:p></o:p></span></p>
  
  <p class=MsoSubtitle><span lang=EN-GB style='mso-ansi-language:EN-GB'>Thomas F.
  Boehme<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  definition of web applications has brought the deployment of servlets and their
  resources to a new level of ease-of-use. This document aims to establish a
  similar structure for portlet applications, which should ultimately lead to
  simplified deployment of portlet applications. In fact, most of the
  specification in here has been directly taken from the Servlet API
  specification, verison 2.3. <o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Definition<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>A portlet
  application is a collection of portlets, html pages, classes, images, and other
  resources that can be bundled and run on multiple containers from multiple
  vendors.<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Relationship to
  PortletContext<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The portlet
  container must enforce a one to one correspondence between a portlet
  application and a </span><span lang=EN-GB style='font-size:9.0pt;font-family:
  Courier;mso-ansi-language:EN-GB'>PortletContex</span><span lang=EN-GB
  style='font-size:9.0pt;mso-ansi-language:EN-GB'>t</span><span lang=EN-GB
  style='mso-ansi-language:EN-GB'>. Therefore, all portlets of the same portlet
  application share the same </span><span lang=EN-GB style='font-size:9.0pt;
  font-family:Courier;mso-ansi-language:EN-GB'>PortletContext</span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'> object. </span><span lang=EN-GB
  style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>A </span><span
  lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:EN-GB'>PortletContext</span><span
  lang=EN-GB style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>
  </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>object can be viewed as
  a portlet’s view onto its application.<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Elements of a Portlet
  Application<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>A
  portlet application may consist of the following items:<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=FR style='font-family:
  Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=FR>Portlets</span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=FR style='font-family:
  Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=FR style='mso-bidi-font-size:9.5pt'>JavaServer</span><span
  lang=FR> Pages</span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=FR style='font-family:
  Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=FR>Utility Classes</span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=FR style='font-family:
  Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=FR>Static documents (HTLM, WML, images,
  sounds, etc.)</span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Client
  side applets, beans, and classes<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Descriptive
  meta information which ties all of the above elements together.<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Distinction Between
  Representations<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>This
  specification defines a hierarchical structure which can exist in an open file
  system, an archive file, or some other form for deployment purposes. It is<span
  style="mso-spacerun: yes">  </span>recommended, but not required, that portlet
  containers support this structure as a runtime representation.</span><span
  lang=EN-GB style='font-size:9.5pt;mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Directory Structure<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>A portlet
  application exists as a structured hierarchy of directories. The root of this
  hierarchy serves as a document root for serving files that are part of this
  context.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>A special
  directory exists within the application hierarchy named “</span><span
  lang=EN-GB style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>PORTLET-INF</span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'>”. This directory contains all
  things related to the application that aren’t in the document root of the
  application. It is important to note that the </span><span lang=EN-GB
  style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>PORTLET-INF
  </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>node is not part of the
  public document tree of the application. No file contained in the </span><span
  lang=EN-GB style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>PORTLET-INF
  </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>directory may be served
  directly to a client.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  contents of the </span><span lang=EN-GB style='font-size:10.0pt;font-family:
  Courier;mso-ansi-language:EN-GB'>PORTLET-INF </span><span lang=EN-GB
  style='mso-ansi-language:EN-GB'>directory are:<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-size:
  9.5pt;font-family:Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='font-size:9.0pt;font-family:
  Courier;mso-ansi-language:EN-GB'>/PORTLET-INF/portlet.xml</span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'><br>
  </span><span style='mso-ansi-language:DE'>deployment descriptor</span><span
  lang=EN-GB style='font-size:9.5pt;mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-size:
  9.5pt;font-family:Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='font-size:9.0pt;font-family:
  Courier;mso-ansi-language:EN-GB'>/PORTLET-INF/classes/*</span><span lang=EN-GB
  style='mso-ansi-language:EN-GB'><br>
  directory for portlet and utility classes. </span><span style='mso-ansi-language:
  DE'>The classes in this directory are used by the application class loader to
  load classes from</span><span lang=EN-GB style='font-size:9.5pt;mso-ansi-language:
  EN-GB'>.<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='font-size:9.0pt;font-family:
  Courier;mso-ansi-language:EN-GB'>/PORTLET-INF/lib/*.jar</span><span lang=EN-GB
  style='mso-ansi-language:EN-GB'><br>
  area for Java ARchive files which contain portlets, beans, and other utility
  classes useful to the portlet application. All such archive files are used by the
  portlet application class loader to load classes from.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The portlet
  application classloader loads classes first from the PORTLET-INF/classes
  directory and then from library JARs in the PORTLET-INF/lib directory. For the
  latter case, the classloader should attempt to load from library JARs in the
  same order that they appear as PAR archive entries.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Once the
  portlet application’s classes are exhausted the portlet application loader
  should attempt to load container-wide classes from directories or JARs.</span><span
  lang=EN-GB style='font-size:9.5pt;mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  
  <h3><span lang=EN-GB style='mso-ansi-language:EN-GB'>Sample Portlet Application
  Directory Structure<o:p></o:p></span></h3>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Illustrated
  here is a listing of all the files in a sample portlet application:<o:p></o:p></span></p>
  
  <p class=Code style='margin-left:0cm'><span lang=EN-GB style='font-size:12.0pt;
  font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  
  <p class=Code><span lang=EN-GB>/monthly.jsp</span></p>
  
  <p class=Code><span lang=EN-GB>/weekly.jsp</span></p>
  
  <p class=Code><span lang=EN-GB>/images/readNews.gif</span></p>
  
  <p class=Code><span lang=EN-GB>/images/newNews.gif</span></p>
  
  <p class=Code><span lang=EN-GB>/PORTLET-INF/portlet.xml</span></p>
  
  <p class=Code><span lang=EN-GB>/PORTLET-INF/lib/jspbean.jar</span></p>
  
  <p class=Code><span lang=EN-GB>/PORTLET-INF/classes/com/yourco/portlets/MailPortlet.class</span></p>
  
  <p class=Code><span lang=EN-GB>/PORTLET-INF/classes/com/yourco/portlets/CalendarPortlet.class</span></p>
  
  <p class=Code><span lang=EN-GB>/PORTLET-INF/classes/com/yourco/util/MyUtils.class</span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet Application
  Archive File<o:p></o:p></span></h2>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet applications can
  be packaged and signed, using the standard Java Archive tools, into a Portlet
  ARchive format (PAR) file. For example, an application of PIM portlets could be
  distributed in an archive with the filename </span><span lang=EN-GB
  style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>pim.par</span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'>. When packaged into such a form, a
  META-INF directory will be present which contains information useful to the
  Java Archive tools. If this directory is present, the portlet container must
  not allow it be served as content to a client’s request.<o:p></o:p></span></p>
  
  <h3><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet Application
  Classloader<o:p></o:p></span></h3>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  classloader that a container uses to load a portlet in a PAR must not allow the
  PAR to override JDK or PortletAPI classes, and is recommended not to allow
  portlets in the PAR visibility of the portlet containers implementation
  classes.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>If a
  portlet container has a mechanism for exposing container-wide library JARs to
  application classloaders, it is recommended that the application classloader be
  implemented in such a way that classes packaged within the PAR are able to
  override classes residing in container-wide library JARs.<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Replacing a Portlet
  Application<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Applications
  evolve and must occasionally be replaced. In a long running server it is ideal
  to be able to load a new portlet application and shut down the old one without
  restarting the container. When an application is replaced, a container should
  provide a robust approach to preserving session data within that application.<o:p></o:p></span></p>
  
  <h1><span lang=EN-GB style='mso-ansi-language:EN-GB'>Deployment Descriptor<o:p></o:p></span></h1>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  deployment descriptor conveys the elements and configuration information of a
  web application between Developers, Assemblers, and Deployers. This chapter
  defines and describes the deployment descriptor for this version.<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Deployment Descriptor
  Elements<o:p></o:p></span></h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  following types of configuration and deployment information exist in the
  portlet application deployment descriptor:<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>PortletContext
  Parameters<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet
  Parameters<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Supported
  Locales and Modes<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>See the DTD
  comments for further description of these elements.<o:p></o:p></span></p>
  
  <h3><span lang=EN-GB style='mso-ansi-language:EN-GB'>General Rules for
  Processing the Deployment </span>Descriptor<span lang=EN-GB style='font-size:
  16.0pt;mso-ansi-language:EN-GB'><o:p></o:p></span></h3>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>In this
  section is a listing of some general rules that web containers and developers
  must note concerning processing of the deployment descriptor for a web
  application<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet
  containers should ignore all leading whitespace characters before the first
  non-writespace character, and all trailing whitespace characters after the last
  non-whitespace character for PCDATA within text nodes of a deployment
  descriptor.<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet
  containers and tools that manipulate portlet applications have a wide range of
  options in checking the validity of a PAR. </span><span lang=FR>This includes
  checking the validity of the deployment descriptor document held within. </span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'>It is recommended, but not required,
  that portlet containers and tools validate deployment descriptors against the
  DTD document for structural correctness. </span><span lang=FR>Additionally it
  is recommended that they provide a level of semantic checking, for example, that
  a role referenced in a security constraint has the same name as one of the
  security roles defined in the deployment descriptor. </span><span lang=EN-GB
  style='mso-ansi-language:EN-GB'>In cases of non-conformant portlet
  applications, tools and containers should inform the developer with descriptive
  error messages. High end application server vendors are encouraged to supply
  this kind of validity checking in the form of a tool separate from the
  container.<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>URI
  paths specified in the deployment descriptor are assumed to be in URL-decoded
  form.<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>Containers
  must attempt to canonicalize paths in the deployment descriptor. For example,
  paths of the form ‘/a/..b’ must be interpreted as ‘/a’. Paths beginning or
  resolving to paths that begin with ‘..’ are not valid paths in the deployment
  descriptor.<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-size:
  9.5pt;font-family:Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>URI
  paths referring to a resource relative to the root of the PAR, or a path
  mapping relative to the root of the WAR, unless otherwise specified, should
  begin with a leading ‘/</span><span lang=EN-GB style='font-size:9.5pt;
  mso-ansi-language:EN-GB'>’.<o:p></o:p></span></p>
  
  <h3><span lang=EN-GB style='mso-ansi-language:EN-GB'>Dependencies on
  extensions: Container Library Files<o:p></o:p></span></h3>
  
  <p class=MsoNormal><i><span lang=EN-GB style='mso-ansi-language:EN-GB'>Do we
  need/want this at this stage?<o:p></o:p></span></i></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Groups of applications
  commonly make use of the code or resources contained in a library file or files
  installed container-wide in current implementations of portlet containers. The
  application developer needs to be able to know what extensions are installed on
  a portlet container for portability, and in creating a portlet application that
  may depend on such libraries, containers need to know what dependencies on such
  libraries Portlets in a PAR may have.<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet containers are
  recommended to have a mechanism by which they can expose to the application
  classloaders of every portlet application therein extra JAR files containing
  resources and code. It is recommended that they provide a user-friendly way of
  editing and configuring these library files or extensions, and that they expose
  information about what extensions are available to portlet applications
  deployed on the portlet container. Application developers that depend on the
  installation of library JARs installed on a portlet container should provide a
  META-INF/MANIFEST.MF entry in the PAR file listing the extensions that the PAR
  depends upon. The format of the manifest entry follows the standard JAR
  manifest format. In expressing dependencies on extensions installed on the
  portlet container, the manifest entry should follow the specification for
  standard extensions defined at </span><span lang=EN-GB style='font-size:9.0pt;
  font-family:Courier;mso-ansi-language:EN-GB'>http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'>.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet
  containers should be able to recognize such declared dependencies as expressed
  in the optional manifest entry in a PAR file, or in the manifest entry of any
  of the library JARs under the PORTLET-INF/lib entry in a PAR. If a portlet
  container is not able to satisfy the dependencies that a PAR has on a
  particular extension declared in this manner, it should reject the application
  with an informative error message.<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>Portlet Application
  Environment<o:p></o:p></span></h2>
  
  <p class=MsoNormal><i><span lang=EN-GB style='mso-ansi-language:EN-GB'>Do we
  want/need this at this stage?<o:p></o:p></span></i></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Java 2
  Platform Enterprise Edition defines a naming environment that allows
  applications to easily access resources and external information without the
  explicit knowledge of how the external information is named or organized.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>Provision
  has been made in the portlet application deployment descriptor for specifying
  information allowing a portlet to obtain references to resources and enterprise
  beans. The deployment elements that contain this information are:<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>env-entry<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>ejb-ref<o:p></o:p></span></p>
  
  <p class=MsoListBullet><![if !supportLists]><span lang=EN-GB style='font-family:
  Symbol;mso-ansi-language:EN-GB'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span></span><![endif]><span lang=EN-GB style='mso-ansi-language:EN-GB'>resource-ref<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The </span><span
  lang=EN-GB style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>env-entry
  </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>element contains
  information to set up basic environment entry names relative to the </span><span
  lang=EN-GB style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>java:comp/env
  </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>context, the expected
  Java type of the environment entry value (the type of object returned from the
  JNDI lookup method), and an optional environment entry value. The </span><span
  lang=EN-GB style='font-size:10.0pt;font-family:Courier;mso-ansi-language:EN-GB'>ejb-ref
  </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>element contains the
  information needed to allow a portlet to locate the home interfaces of a
  enterprise bean. The </span><span lang=EN-GB style='font-size:10.0pt;
  font-family:Courier;mso-ansi-language:EN-GB'>resource-ref </span><span
  lang=EN-GB style='mso-ansi-language:EN-GB'>element contains the information
  needed to set up a resource factory.<o:p></o:p></span></p>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  requirements of the J2EE environment with regards to setting up the environment
  are described in Chapter 5 of the Java 2 Platform Enterprise Edition v 1.3
  Specification</span><span lang=EN-GB style='font-size:7.5pt;mso-ansi-language:
  EN-GB'> </span><span lang=EN-GB style='mso-ansi-language:EN-GB'>. Portlet
  container implementations are encouraged, but not required, to implement the
  application environment functionality described in the J2EE specification. If
  they do not implement the facilities required to support this environment, upon
  deploying an application that relies on them, the container should provide a
  warning.<o:p></o:p></span></p>
  
  <h3><span lang=EN-GB style='mso-ansi-language:EN-GB'>Deployment Descriptor
  DOCTYPE<o:p></o:p></span></h3>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>All valid
  portlet application deployment descriptors must contain the following DOCTYPE
  declaration:<o:p></o:p></span></p>
  
  <p class=Code><span lang=EN-GB><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  
  <p class=Code><span lang=EN-GB>&lt;!DOCTYPE portlet-app PUBLIC
  &quot;-//Apache//DTD Portlet Application</span></p>
  
  <p class=Code><span lang=FR style='mso-ansi-language:FR'>x.x//EN&quot;
  &quot;http://&lt;whatever&gt;.dtd&quot;&gt;<o:p></o:p></span></p>
  
  <h2><span lang=EN-GB style='mso-ansi-language:EN-GB'>DTD<o:p></o:p></span></h2>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='mso-ansi-language:EN-GB'>The DTD that follows
  defines the XML grammar for a portlet application deployment descriptor.<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  
  <p class=MsoBodyText><span lang=EN-GB>DTD needs to go here. I figure that
  starting out with samples better conveys a possible structures of the
  deployment descriptor. The DTD has to be derided later.</span></p>
  
  <h2>Examples</h2>
  
  <p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The
  following examples illustrate the usage of the definitions listed above DTD.<o:p></o:p></span></p>
  
  <h3><span lang=EN-GB style='mso-ansi-language:EN-GB'>Basic Example<o:p></o:p></span></h3>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=FR style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  FR'>&lt;!DOCTYPE portlet-app PUBLIC &quot;-//Apache//DTD Portlet Application
  x.x//EN&quot;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=FR style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  FR'><span style="mso-spacerun: yes">                            
  </span>&quot;http://&lt;whatever&gt;.dtd&quot;&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'>&lt;portlet-app&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">   </span>&lt;portlet-app-name&gt;A PIM
  Application&lt;/portlet-app-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">   </span>&lt;context-param&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">     
  </span>&lt;param-name&gt;Webmaster&lt;/param-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">     
  </span>&lt;param-value&gt;webmaster@yourco.com&lt;/param-value&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">   </span>&lt;/context-param&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">   </span>&lt;portlet&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;portlet-name&gt;YourCo.
  Mail&lt;/portlet-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">     
  </span>&lt;portlet-class&gt;com.yourco.portlets.MailPortlet&lt;/portlet-class&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;allows&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;minimize/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;maximize/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;close/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;/allows&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=FR style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  FR'><span style="mso-spacerun: yes">      </span>&lt;supports&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;default
  document=’yes’/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;personalize
  fragment=’yes’/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=FR style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  FR'><span style="mso-spacerun: yes">      </span>&lt;/supports&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;config-param&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">        
  </span>&lt;param-name&gt;default_max_items&lt;/param-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">        
  </span>&lt;param-value&gt;5&lt;/param-value&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">        
  </span>&lt;param-name&gt;default_sort&lt;/param-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">         </span>&lt;param-value&gt;date,
  desc&lt;/param-value&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;/config-param&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">    </span>&lt;/portlet&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">   </span>&lt;portlet&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;portlet-name&gt;YourCo.
  Calendar&lt;/portlet-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">     
  </span>&lt;portlet-class&gt;com.yourco.portlets.CalendarPortlet&lt;/portlet-class&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;title&gt;Your Personal
  Calendar&lt;/title&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;title
  mime-type=’application/vnd.wap.wml’&gt;Calendar&lt;/title&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">     
  </span>&lt;keywords&gt;calendar,date,appointment&lt;/keywords&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span style='font-size:9.0pt;font-family:Courier'><span
  style="mso-spacerun: yes">      </span>&lt;language locale=’de’&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span style='font-size:9.0pt;font-family:Courier'><span
  style="mso-spacerun: yes">         </span>&lt;title&gt;Ihr Persönlicher
  Kalender&lt;/title&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">         </span>&lt;title
  mime-type=’application/vnd.wap.wml’&gt;Kalender&lt;/title&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">         </span></span><span
  style='font-size:9.0pt;font-family:Courier'>&lt;keywords&gt;Kalendar,Datum,Verabredung,Termin&lt;/keywords&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=FR style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  FR'><span style="mso-spacerun: yes">      </span>&lt;/language&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=FR style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  FR'><span style="mso-spacerun: yes">      </span>&lt;supports&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;default<span
  style="mso-spacerun: yes">     </span>fragment=’yes’/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;personalize
  fragment=’yes’ mime-type=’text/html’/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">          </span>&lt;help<span
  style="mso-spacerun: yes">        </span>fragment=’yes’/&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;/supports&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;config-param&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">         </span>&lt;param-name&gt;default_view&lt;/param-name&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">        
  </span>&lt;param-value&gt;month&lt;/param-value&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">      </span>&lt;/config-param&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">    </span>&lt;/portlet&gt;<o:p></o:p></span></p>
  
  <p class=MsoNormal style='margin-top:0cm;mso-layout-grid-align:none;text-autospace:
  none'><span lang=EN-GB style='font-size:9.0pt;font-family:Courier;mso-ansi-language:
  EN-GB'>&lt;/portlet-app&gt;</span><span lang=EN-GB style='mso-ansi-language:
  EN-GB'><o:p></o:p></span></p>
  
  <p class=Code style='margin-left:0cm'><span lang=EN-GB><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  
  </div>
  
  </body>
  
  </html>
  
  
  

Mime
View raw message