[jboss-cvs] jboss-seam/examples/itext/view ...

Norman Richards norman.richards at jboss.com
Wed Feb 7 15:44:06 EST 2007


  User: nrichards
  Date: 07/02/07 15:44:06

  Added:       examples/itext/view                   anchor.xhtml
                        chapters.xhtml format.xhtml images.xhtml index.html
                        index.xhtml jboss.jpg lists.xhtml nested.xhtml
                        pageSize.xhtml pages.xhtml pdfMissing.xhtml
                        sections.xhtml signature.xhtml table.xhtml
                        whyseam.xhtml whyseam_html.xhtml whyseam_rtf.xhtml
  Log:
  itext example
  
  Revision  Changes    Path
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/anchor.xhtml
  
  Index: anchor.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:p="http://jboss.com/products/seam/pdf">
  
      <p:image alignment="right" resource="/jboss.jpg" />
  
      <p:font size="24"><p:paragraph>Ten Good Reasons To Use Seam</p:paragraph></p:font>
  
      <p:list>
          <p:listItem><p:anchor reference="#reason1">Reason 1</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason2">Reason 2</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason3">Reason 3</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason4">Reason 4</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason5">Reason 5</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason6">Reason 6</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason7">Reason 7</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason8">Reason 8</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason9">Reason 9</p:anchor></p:listItem>
          <p:listItem><p:anchor reference="#reason10">Reason 10</p:anchor></p:listItem>
      </p:list>
  
  
      
      <p:font size="18"><p:paragraph><p:anchor name="reason1">It's the quickest way to get "rich"</p:anchor></p:paragraph></p:font>
  
      <p:paragraph alignment="justify">AJAX fundamentally changes the interaction model of the web. The synchronous, coarse-grained requests used by traditional web clients let many server-side applications get away with minimal caching and no session-level concurrency. The "stateless" architecture is in many cases a viable solution. But not anymore! AJAX clients hit the server with many asynchronous, concurrent, fine-grained requests, which could easily bring your database to its knees. When state is held in memory between requests, it is highly vulnerable to concurrency-related bugs, since the Java EE platform provides no constructs for dealing with session-level concurrency.</p:paragraph>
  
      <p:paragraph alignment="justify">Seam's totally unique concurrency model and state-management model was conceived and designed with AJAX in mind. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam 1.1 integrates open source JSF-based AJAX solutions like ICEfaces and Ajax4JSF with Seam's state and concurrency management engine. You can add AJAX to your applications with ease, without the need to learn JavaScript, and you will be protected from potential bugs and performance problems associated with the switch to AJAX. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason2">It's the easiest way to get started with EJB 3.0</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">EJB 3.0 is a great component model for transactional business components, the highlight being the brand new Java Persistence API (JPA). But Java web and application frameworks designed before the release of EJB 3.0 lack support for the new component model, leaving you to write your own integration code, and in many cases forcing you into the use of a layered architecture that may not be right for your application. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam was designed for use with EJB 3.0 and lets you use the new component model everywhere. Since any class in a Seam application can be an EJB component, there is no need to introduce extra unwanted layers just to keep your frameworks happy. And, of course, there is no need to write code to integrate EJB 3.0 with your web framework, since Seam already has it. </p:paragraph>
  
      <p:paragraph alignment="justify">Note that you don't have to use EJB 3.0 to use Seam, and if you're developing in an environment that doesn't support EJB 3.0, Seam provides alternatives. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason3">It's the best way to leverage JSF</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">JSF has created a vibrant ecosystem of component libraries and other addons, that make this easily the most exciting web framework in Java. But plain JSF is heavy on XML, and misses out on a number of important features, especially for people building internet-facing applications. Seam replaces the tedious XML configuration with a handful of annotations, reducing code and making you more productive. Seam extends JSF with extra functionality for multi-window operation and workspace management, model-based validation, jBPM-based pageflow, internationalization, page fragment caching. Seam even adds facilities for handling bookmarkable (REST-style) web pages - the number one user complaint against JSF. </p:paragraph>
  
      <p:paragraph alignment="justify">Since JSF does not address the problem of access to transactional resources, Seam's integration of JTA, JPA and EJB 3.0 is a must-have for most JSF users. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason4">And the easiest way to do BPM</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">jBPM is an intuitive and powerful solution for enterprise applications with complex human collaboration, or web applications with complex user interactions. BPM technology not only makes it easier for developers and analysts to model, implement and optimize a business process, but also makes it possible for operations and management to analyse the efficiency of the business process, and be informed of problems. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam deeply integrates jBPM and makes it incredibly simple to use jBPM for task management or pageflow, and is a great way to get started with BPM technology. The combination of Seam and jBPM can shrink development time of some kinds of projects by literally months. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason5">But CRUD is easy too</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam takes on hard problems affecting complex enterprise applications. But that doesn't mean the easy stuff is any more difficult than it should be. Seam is every bit as productive as any of the current crop of CRUD frameworks when it comes to building simple data driven applications. Seam combines a simple data access framework (built around JPA and Hibernate) with a command line code generation and database reverse engineering tool to get you started in minutes. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason6">It makes persistence a breeze</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam grew out of the Hibernate community, and was designed and implemented by the people who created Hibernate, the same people who coined the term "persistence context". Seam's conversation model solves a raft of persistence-related programming problems caused by traditional stateless web application architectures. Whether you use Hibernate or JPA, Seam makes it easy and natural to use extended persistence contexts, and helps you avoid unnecessary state replication when you use an extended persistence context in a clustered environment. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason7">Annotations</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is the first programming model that lets you use Java 5 annotations end to end, from the persistence layer to the UI. You'll never find yourself wrestling with unnecessary, noisy XML. Which is not to say that Seam doesn't use XML when appropriate (Seam has a sophisticated XML-based component configuration facility), just that you won't get lost in reams of XML for common programming tasks. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason8">Get hip to automated integration testing</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">Automated unit tests certainly have their place in any project. But it's worse than dangerous to rely solely on unit testing. Most bugs concern the interaction between components, and the interaction between a component and the container environment. Unit tests are unable to properly capture container behavior, and usually don't capture complex inter-component interactions. Seam introduces an innovative approach to automated integration testing, where you can emulate the entire flow of a request or conversation, testing all layers of Java code in the application, from presentation to persistence. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason9">Marry open source with open standards</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is founded upon open source implementations of open standards like JSF and EJB 3.0, along with open source innovators like Hibernate, jBPM, Facelets, Drools, ICEfaces and Ajax4JSF. The creators of Seam are active in the EJB, JPA, Bean Validation and JSF expert groups and lead the Web Beans (JSR-299) expert group which aims to bring the ideas of Seam into the Java EE standard. The Seam project is totally committed to the idea of open source innovation driving new ideas and ehancements into the Java platform. </p:paragraph>
  
      <p:font size="18"><p:paragraph><p:anchor name="reason10">It just works</p:anchor></p:paragraph></p:font>
      <p:paragraph alignment="justify">You'll love it if you try it.</p:paragraph>
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/chapters.xhtml
  
  Index: chapters.xhtml
  ===================================================================
  <p:document xmlns:f="http://java.sun.com/jsf/core"
              xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:p="http://jboss.com/products/seam/pdf">
  
      <f:facet name="header">
          <p:font size="12">
              <p:footer borderWidthTop="1" borderColorTop="blue" borderWidthBottom="0" alignment="center">Why Seam? [<p:pageNumber />]</p:footer>
          </p:font>
      </f:facet>
  
      <p:paragraph spacingAfter="200" />
  
      <p:image alignment="center" resource="/jboss.jpg" />
  
      <p:font size="24"><p:paragraph spacingBefore="100" alignment="center">Ten Good Reasons To Use Seam</p:paragraph></p:font>
  
      <p:chapter number="1">
          <p:title>
              <p:font size="18"><p:paragraph>It's the quickest way to get "rich"</p:paragraph></p:font>
          </p:title>
  
          <p:paragraph alignment="justify" spacingBefore="5">AJAX fundamentally changes the interaction model of the web. The synchronous, coarse-grained requests used by traditional web clients let many server-side applications get away with minimal caching and no session-level concurrency. The "stateless" architecture is in many cases a viable solution. But not anymore! AJAX clients hit the server with many asynchronous, concurrent, fine-grained requests, which could easily bring your database to its knees. When state is held in memory between requests, it is highly vulnerable to concurrency-related bugs, since the Java EE platform provides no constructs for dealing with session-level concurrency.</p:paragraph>
  
          <p:paragraph alignment="justify" spacingBefore="5">Seam's totally unique concurrency model and state-management model was conceived and designed with AJAX in mind. </p:paragraph>
  
          <p:paragraph alignment="justify" spacingBefore="5">Seam 1.1 integrates open source JSF-based AJAX solutions like ICEfaces and Ajax4JSF with Seam's state and concurrency management engine. You can add AJAX to your applications with ease, without the need to learn JavaScript, and you will be protected from potential bugs and performance problems associated with the switch to AJAX. </p:paragraph>
      </p:chapter>
  
  
      <p:chapter number="2">
          <p:title>
              <p:font size="18"><p:paragraph>It's the easiest way to get started with EJB 3.0 </p:paragraph></p:font>
          </p:title>
  
          <p:paragraph alignment="justify" spacingBefore="5">EJB 3.0 is a great component model for transactional business components, the highlight being the brand new Java Persistence API (JPA). But Java web and application frameworks designed before the release of EJB 3.0 lack support for the new component model, leaving you to write your own integration code, and in many cases forcing you into the use of a layered architecture that may not be right for your application. </p:paragraph>
  
          <p:paragraph alignment="justify" spacingBefore="5">Seam was designed for use with EJB 3.0 and lets you use the new component model everywhere. Since any class in a Seam application can be an EJB component, there is no need to introduce extra unwanted layers just to keep your frameworks happy. And, of course, there is no need to write code to integrate EJB 3.0 with your web framework, since Seam already has it. </p:paragraph>
  
          <p:paragraph alignment="justify" spacingBefore="5">Note that you don't have to use EJB 3.0 to use Seam, and if you're developing in an environment that doesn't support EJB 3.0, Seam provides alternatives. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="3">
          <p:title>
              <p:font size="18"><p:paragraph>It's the best way to leverage JSF </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">JSF has created a vibrant ecosystem of component libraries and other addons, that make this easily the most exciting web framework in Java. But plain JSF is heavy on XML, and misses out on a number of important features, especially for people building internet-facing applications. Seam replaces the tedious XML configuration with a handful of annotations, reducing code and making you more productive. Seam extends JSF with extra functionality for multi-window operation and workspace management, model-based validation, jBPM-based pageflow, internationalization, page fragment caching. Seam even adds facilities for handling bookmarkable (REST-style) web pages - the number one user complaint against JSF. </p:paragraph>
  
          <p:paragraph alignment="justify" spacingBefore="5">Since JSF does not address the problem of access to transactional resources, Seam's integration of JTA, JPA and EJB 3.0 is a must-have for most JSF users. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="4">
          <p:title>
              <p:font size="18"><p:paragraph>And the easiest way to do BPM </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">jBPM is an intuitive and powerful solution for enterprise applications with complex human collaboration, or web applications with complex user interactions. BPM technology not only makes it easier for developers and analysts to model, implement and optimize a business process, but also makes it possible for operations and management to analyse the efficiency of the business process, and be informed of problems. </p:paragraph>
          
          <p:paragraph alignment="justify" spacingBefore="5">Seam deeply integrates jBPM and makes it incredibly simple to use jBPM for task management or pageflow, and is a great way to get started with BPM technology. The combination of Seam and jBPM can shrink development time of some kinds of projects by literally months. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="5">
          <p:title>
              <p:font size="18"><p:paragraph>But CRUD is easy too </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">Seam takes on hard problems affecting complex enterprise applications. But that doesn't mean the easy stuff is any more difficult than it should be. Seam is every bit as productive as any of the current crop of CRUD frameworks when it comes to building simple data driven applications. Seam combines a simple data access framework (built around JPA and Hibernate) with a command line code generation and database reverse engineering tool to get you started in minutes. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="6">
          <p:title>
              <p:font size="18"><p:paragraph>It makes persistence a breeze </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">Seam grew out of the Hibernate community, and was designed and implemented by the people who created Hibernate, the same people who coined the term "persistence context". Seam's conversation model solves a raft of persistence-related programming problems caused by traditional stateless web application architectures. Whether you use Hibernate or JPA, Seam makes it easy and natural to use extended persistence contexts, and helps you avoid unnecessary state replication when you use an extended persistence context in a clustered environment. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="7">
          <p:title>
              <p:font size="18"><p:paragraph>Annotations </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">Seam is the first programming model that lets you use Java 5 annotations end to end, from the persistence layer to the UI. You'll never find yourself wrestling with unnecessary, noisy XML. Which is not to say that Seam doesn't use XML when appropriate (Seam has a sophisticated XML-based component configuration facility), just that you won't get lost in reams of XML for common programming tasks. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="8">
          <p:title>
              <p:font size="18"><p:paragraph>Get hip to automated integration testing </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">Automated unit tests certainly have their place in any project. But it's worse than dangerous to rely solely on unit testing. Most bugs concern the interaction between components, and the interaction between a component and the container environment. Unit tests are unable to properly capture container behavior, and usually don't capture complex inter-component interactions. Seam introduces an innovative approach to automated integration testing, where you can emulate the entire flow of a request or conversation, testing all layers of Java code in the application, from presentation to persistence. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="9">
          <p:title>
              <p:font size="18"><p:paragraph>Marry open source with open standards </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">Seam is founded upon open source implementations of open standards like JSF and EJB 3.0, along with open source innovators like Hibernate, jBPM, Facelets, Drools, ICEfaces and Ajax4JSF. The creators of Seam are active in the EJB, JPA, Bean Validation and JSF expert groups and lead the Web Beans (JSR-299) expert group which aims to bring the ideas of Seam into the Java EE standard. The Seam project is totally committed to the idea of open source innovation driving new ideas and ehancements into the Java platform. </p:paragraph>
      </p:chapter>
  
      <p:chapter number="10">
          <p:title>
              <p:font size="18"><p:paragraph>It just works </p:paragraph></p:font>
          </p:title>
          <p:paragraph alignment="justify" spacingBefore="5">You'll love it if you try it.</p:paragraph>
      </p:chapter>
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/format.xhtml
  
  Index: format.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:p="http://jboss.com/products/seam/pdf"
              title="Why Seam"
              keywords="mykeyword"
              subject="seam"
              author="Seam Team"
              creator="Seam PDF example app">
  
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingBefore="16" spacingAfter="40">Order #{currentOrder.orderId} </p:paragraph></p:font>  
  
  
      <p:paragraph>Dear #{currentOrder.customerName},</p:paragraph>
  
      <p:paragraph>
  Your order on <p:text value=" " /><p:text value="#{currentOrder.orderDate}"><f:convertDateTime type="date" dateStyle="short" /></p:text> has been processed and will ship shortly.  Your order number is #{currentOrder.orderId}.  If you have any questions, please see our <p:anchor reference="http://www.jboss.org/index.html?module=bb&amp;op=viewforum&amp;f=231"> support forums</p:anchor>.
      </p:paragraph>
  
      <p:table columns="2" width="3 1" widthPercentage="35" horizontalAlignment="right" spacingBefore="40">
          <f:facet name="defaultCell">
              <p:cell borderWidth="0" horizontalAlignment="right"/>
          </f:facet>
              
          <p:cell colspan="2" borderWidth="0" horizontalAlignment="center">
              <p:font size="24"><p:paragraph>Order Summary</p:paragraph></p:font>
          </p:cell>
  
          <p:cell><p:paragraph>Order Amount:</p:paragraph></p:cell>
          <p:cell>
              <p:paragraph>
                  <p:text value="#{currentOrder.baseAmount}">
                      <f:convertNumber type="currency" currencySymbol="$"/>
                  </p:text>
              </p:paragraph>
          </p:cell>
          <p:cell><p:paragraph>Tax:</p:paragraph></p:cell>
          <p:cell>
              <p:paragraph>
                  <p:text value="#{currentOrder.tax}">
                      <f:convertNumber type="currency" currencySymbol="$"/>
                  </p:text>
              </p:paragraph>
          </p:cell>
          <p:cell><p:paragraph>Total Amount:</p:paragraph></p:cell>
          <p:cell>
              <p:paragraph>
                  <p:text value="#{currentOrder.totalAmount}">
                      <f:convertNumber type="currency" currencySymbol="$"/>
                  </p:text>
              </p:paragraph>
          </p:cell>
      </p:table>
  </p:document>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/images.xhtml
  
  Index: images.xhtml
  ===================================================================
  <p:document xmlns:p="http://jboss.com/products/seam/pdf">
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingAfter="50">Dynamic Image</p:paragraph></p:font>  
  
      <p:image alignment="center" imageData="#{images.chart}" />
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/index.html
  
  Index: index.html
  ===================================================================
  <html>
  <head>
    <meta http-equiv="Refresh" content="0; URL=index.seam" />
  </head>
  </html>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/index.xhtml
  
  Index: index.xhtml
  ===================================================================
  <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:s="http://jboss.com/products/seam/taglib"
        xmlns:f="http://java.sun.com/jsf/core">
  
  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <title>Seam PDF</title>
      <ui:remove><link href="screen.css" rel="stylesheet" type="text/css" /></ui:remove>
  </head>
  <body>      
      <h1>Sample Documents:</h1>
  
      <ul>
          <li>
              <s:link view="/whyseam.xhtml" value="Why Seam?" />  
              [<s:link view="/pageSize.xhtml" value="letter">
                  <f:param name="pageSize" value="LETTER" />
              </s:link>]
              [<s:link view="/pageSize.xhtml" value="A4">
                  <f:param name="pageSize" value="A4" />
              </s:link>]
              [<s:link view="/pageSize.xhtml" value="legal">
                  <f:param name="pageSize" value="LEGAL" />
              </s:link>]
  
          </li>
          <li><s:link view="/lists.xhtml"     value="PDF Lists" /></li>
          <li><s:link view="/pages.xhtml"     value="Multiple Pages" /></li>
          <li><s:link view="/chapters.xhtml"  value="Chapters" /></li>
          <li><s:link view="/sections.xhtml"  value="Sections" /></li>
          <li><s:link view="/table.xhtml"     value="Tables" /></li>
          <li><s:link view="/nested.xhtml"    value="Nested Tables" /></li>
          <li><s:link view="/images.xhtml"    value="Dynamic Images" /></li>
          <li><s:link view="/anchor.xhtml"    value="Anchors" /></li>
          <li><s:link view="/format.xhtml"    value="Text conversion and formatting" /></li>
          <li><s:link view="/signature.xhtml" value="Signed Document" /></li>
      </ul>
  </body>
  </html>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/jboss.jpg
  
  	<<Binary file>>
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/lists.xhtml
  
  Index: lists.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:s="http://jboss.com/products/seam/taglib"
              xmlns:p="http://jboss.com/products/seam/pdf">
  
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingAfter="50">List examples</p:paragraph></p:font>  
      
      <p:paragraph>Basic list:</p:paragraph>
      <p:list>
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>Numbered:</p:paragraph>
      <p:list style="numbered">
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>Lettered:</p:paragraph>
      <p:list style="lettered">
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>Roman:</p:paragraph>
      <p:list style="roman">
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>Greek:</p:paragraph>
      <p:list style="greek">
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>Dingbats:</p:paragraph>
      <p:list style="zapfdingbats" charNumber="51">
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>Dingbats numeric:</p:paragraph>
      <p:list style="zapfdingbats_number" numberType="0">
          <ui:repeat value="#{lists.numbers}" var="item">
              <p:listItem><p:font style="bold">#{item}</p:font>: This is some information...</p:listItem>
          </ui:repeat>
      </p:list>
  
      <p:paragraph>SubLists:</p:paragraph>
      <p:list>
          <ui:repeat value="#{lists.daysOfWeek}" var="day">
              <p:listItem>Things to do on #{day}
                  <p:list>
                      <ui:repeat value="#{lists.numbers}" var="number">
                          <p:listItem>Do thing #{number}</p:listItem>
                      </ui:repeat>
                  </p:list>
              </p:listItem>
          </ui:repeat>
      </p:list>
  </p:document>    
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/nested.xhtml
  
  Index: nested.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:p="http://jboss.com/products/seam/pdf">
  
  
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingAfter="50">Nested Tables</p:paragraph></p:font>  
  
      <p:table spacingBefore="25" columns="1">
          <f:facet name="defaultCell">
              <p:cell borderWidthTop="0" />
          </f:facet>
  
          <p:cell borderWidthTop=".5f" grayFill=".7">
              <p:paragraph alignment="center">Horizontal split using nested tables</p:paragraph>
          </p:cell>
  
          <p:cell>one</p:cell>
          <p:cell paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
              <p:table widthPercentage="100" columns="2">
                  <p:cell borderWidth="0">two</p:cell>
                  <p:cell borderWidth="0" borderWidthLeft=".5">three</p:cell>
              </p:table>
          </p:cell>
  
          <p:cell paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
              <p:table widthPercentage="100" columns="3">
                  <f:facet name="defaultCell">
                      <p:cell borderWidth="0" borderWidthLeft=".5" />
                  </f:facet>
                  <p:cell borderWidthLeft="0">four</p:cell>
                  <p:cell>five</p:cell>
                  <p:cell>six</p:cell>
              </p:table>
          </p:cell>
          <p:cell>seven</p:cell>
      </p:table>
  
      <p:table spacingBefore="25" columns="2" headerRows="1">
          <p:cell borderWidthTop=".5f" colspan="2" grayFill=".7">
              <p:paragraph alignment="center">Vertical split using nested tables</p:paragraph>
          </p:cell>
          
          <p:cell borderWidthTop="0">one</p:cell>
          <p:cell borderWidth="0" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
              <p:table widthPercentage="100" columns="1">
                  <p:cell borderWidthTop="0">A</p:cell>
                  <p:cell borderWidthTop="0">B</p:cell>
              </p:table>
          </p:cell>
  
          <p:cell borderWidthTop="0">two</p:cell>
          <p:cell borderWidth="0" paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
              <p:table widthPercentage="100" columns="1">
                  <p:cell borderWidthTop="0">C</p:cell>
                  <p:cell borderWidthTop="0">D</p:cell>
              </p:table>
          </p:cell>
      </p:table>
  </p:document>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/pageSize.xhtml
  
  Index: pageSize.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:p="http://jboss.com/products/seam/pdf" 
              pageSize="#{param.pageSize}">
  
      <f:facet name="header">
          <p:font size="12">
              <p:footer borderWidthTop="1" borderColorTop="blue" borderWidthBottom="0" alignment="center">Why Seam? [<p:pageNumber />]</p:footer>
          </p:font>
      </f:facet>
  
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingAfter="50">Ten Good Reasons To Use Seam</p:paragraph></p:font>  
  
      <p:font size="18"><p:paragraph>It's the quickest way to get "rich"</p:paragraph></p:font>
  
      <p:paragraph alignment="justify">AJAX fundamentally changes the interaction model of the web. The synchronous, coarse-grained requests used by traditional web clients let many server-side applications get away with minimal caching and no session-level concurrency. The "stateless" architecture is in many cases a viable solution. But not anymore! AJAX clients hit the server with many asynchronous, concurrent, fine-grained requests, which could easily bring your database to its knees. When state is held in memory between requests, it is highly vulnerable to concurrency-related bugs, since the Java EE platform provides no constructs for dealing with session-level concurrency.</p:paragraph>
  
      <p:paragraph alignment="justify">Seam's totally unique concurrency model and state-management model was conceived and designed with AJAX in mind. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam 1.1 integrates open source JSF-based AJAX solutions like ICEfaces and Ajax4JSF with Seam's state and concurrency management engine. You can add AJAX to your applications with ease, without the need to learn JavaScript, and you will be protected from potential bugs and performance problems associated with the switch to AJAX. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the easiest way to get started with EJB 3.0 </p:paragraph></p:font>
      <p:paragraph alignment="justify">EJB 3.0 is a great component model for transactional business components, the highlight being the brand new Java Persistence API (JPA). But Java web and application frameworks designed before the release of EJB 3.0 lack support for the new component model, leaving you to write your own integration code, and in many cases forcing you into the use of a layered architecture that may not be right for your application. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam was designed for use with EJB 3.0 and lets you use the new component model everywhere. Since any class in a Seam application can be an EJB component, there is no need to introduce extra unwanted layers just to keep your frameworks happy. And, of course, there is no need to write code to integrate EJB 3.0 with your web framework, since Seam already has it. </p:paragraph>
  
      <p:paragraph alignment="justify">Note that you don't have to use EJB 3.0 to use Seam, and if you're developing in an environment that doesn't support EJB 3.0, Seam provides alternatives. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the best way to leverage JSF </p:paragraph></p:font>
      <p:paragraph alignment="justify">JSF has created a vibrant ecosystem of component libraries and other addons, that make this easily the most exciting web framework in Java. But plain JSF is heavy on XML, and misses out on a number of important features, especially for people building internet-facing applications. Seam replaces the tedious XML configuration with a handful of annotations, reducing code and making you more productive. Seam extends JSF with extra functionality for multi-window operation and workspace management, model-based validation, jBPM-based pageflow, internationalization, page fragment caching. Seam even adds facilities for handling bookmarkable (REST-style) web pages - the number one user complaint against JSF. </p:paragraph>
  
      <p:paragraph alignment="justify">Since JSF does not address the problem of access to transactional resources, Seam's integration of JTA, JPA and EJB 3.0 is a must-have for most JSF users. </p:paragraph>
  
      <p:font size="18"><p:paragraph>And the easiest way to do BPM </p:paragraph></p:font>
      <p:paragraph alignment="justify">jBPM is an intuitive and powerful solution for enterprise applications with complex human collaboration, or web applications with complex user interactions. BPM technology not only makes it easier for developers and analysts to model, implement and optimize a business process, but also makes it possible for operations and management to analyse the efficiency of the business process, and be informed of problems. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam deeply integrates jBPM and makes it incredibly simple to use jBPM for task management or pageflow, and is a great way to get started with BPM technology. The combination of Seam and jBPM can shrink development time of some kinds of projects by literally months. </p:paragraph>
  
      <p:font size="18"><p:paragraph>But CRUD is easy too </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam takes on hard problems affecting complex enterprise applications. But that doesn't mean the easy stuff is any more difficult than it should be. Seam is every bit as productive as any of the current crop of CRUD frameworks when it comes to building simple data driven applications. Seam combines a simple data access framework (built around JPA and Hibernate) with a command line code generation and database reverse engineering tool to get you started in minutes. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It makes persistence a breeze </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam grew out of the Hibernate community, and was designed and implemented by the people who created Hibernate, the same people who coined the term "persistence context". Seam's conversation model solves a raft of persistence-related programming problems caused by traditional stateless web application architectures. Whether you use Hibernate or JPA, Seam makes it easy and natural to use extended persistence contexts, and helps you avoid unnecessary state replication when you use an extended persistence context in a clustered environment. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Annotations </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is the first programming model that lets you use Java 5 annotations end to end, from the persistence layer to the UI. You'll never find yourself wrestling with unnecessary, noisy XML. Which is not to say that Seam doesn't use XML when appropriate (Seam has a sophisticated XML-based component configuration facility), just that you won't get lost in reams of XML for common programming tasks. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Get hip to automated integration testing </p:paragraph></p:font>
      <p:paragraph alignment="justify">Automated unit tests certainly have their place in any project. But it's worse than dangerous to rely solely on unit testing. Most bugs concern the interaction between components, and the interaction between a component and the container environment. Unit tests are unable to properly capture container behavior, and usually don't capture complex inter-component interactions. Seam introduces an innovative approach to automated integration testing, where you can emulate the entire flow of a request or conversation, testing all layers of Java code in the application, from presentation to persistence. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Marry open source with open standards </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is founded upon open source implementations of open standards like JSF and EJB 3.0, along with open source innovators like Hibernate, jBPM, Facelets, Drools, ICEfaces and Ajax4JSF. The creators of Seam are active in the EJB, JPA, Bean Validation and JSF expert groups and lead the Web Beans (JSR-299) expert group which aims to bring the ideas of Seam into the Java EE standard. The Seam project is totally committed to the idea of open source innovation driving new ideas and ehancements into the Java platform. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It just works </p:paragraph></p:font>
      <p:paragraph alignment="justify">You'll love it if you try it.</p:paragraph>
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/pages.xhtml
  
  Index: pages.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:s="http://jboss.com/products/seam/taglib"
              xmlns:p="http://jboss.com/products/seam/pdf">
  
      <ui:repeat value="#{lists.numbers}" var="number">
          <p:newPage />
          <p:image alignment="right" resource="/jboss.jpg" />
          
          <p:font family="Helvetica" size="36">
              <p:paragraph alignment="center">Page #{number}</p:paragraph>
          </p:font>
  
          <p:font family="Helvetica">
              <p:paragraph alignment="justify">JBoss Seam is a powerful new application framework for building next generation Web 2.0 applications by unifying and integrating technologies such as Asynchronous JavaScript and XML (AJAX), Java Server Faces (JSF), Enterprise Java Beans (EJB3), Java Portlets and Business Process Management (BPM).</p:paragraph>
  
              <p:paragraph alignment="justify">Seam has been designed from the ground up to eliminate complexity at the architecture and the API level. It enables developers to assemble complex web applications with simple annotated Plain Old Java Objects (POJOs), componentized UI widgets and very little XML. The simplicity of Seam 1.0 will enable easy integration with the JBoss Enterprise Service Bus (ESB) and Java Business Integration (JBI) in the future.</p:paragraph>
          </p:font>
  
      </ui:repeat>
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/pdfMissing.xhtml
  
  Index: pdfMissing.xhtml
  ===================================================================
  <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:s="http://jboss.com/products/seam/taglib"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">
  
  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <title>Seam PDF</title>
      <ui:remove><link href="screen.css" rel="stylesheet" type="text/css" /></ui:remove>
  </head>
  <body>      
      The PDF you are trying to view is no longer available.  
  </body>
  </html>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/sections.xhtml
  
  Index: sections.xhtml
  ===================================================================
  <p:document xmlns:f="http://java.sun.com/jsf/core"
              xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:p="http://jboss.com/products/seam/pdf">
  
      <p:chapter number="1">
          <p:title>
              <p:font size="18"><p:paragraph>Getting Started</p:paragraph></p:font>
          </p:title>
  
          <p:section> 
              <p:paragraph alignment="justify" spacingBefore="5">Section .... </p:paragraph>
          </p:section>
  
          <p:section> 
              <p:paragraph alignment="justify" spacingBefore="5">Section .... </p:paragraph>
          </p:section>
  
          <p:section> 
              <p:paragraph alignment="justify" spacingBefore="5">Section .... </p:paragraph>
          </p:section>
  
      </p:chapter>
  
      <p:chapter number="2">
          <p:title>
              <p:font size="18"><p:paragraph>The Main Idea</p:paragraph></p:font>
          </p:title>
  
          <p:section> 
              <p:title>
                  <p:font size="18"><p:paragraph>First Idea</p:paragraph></p:font>
              </p:title>
              <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
              <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
          </p:section>
  
          <p:section>
              <p:title>
                  <p:font size="18"><p:paragraph>Second Idea</p:paragraph></p:font>
              </p:title>
              <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
  
              <p:section numberDepth="0">
                  <p:title>
                      <p:font size="18"><p:paragraph>!!!expanding on that ...</p:paragraph></p:font>
                  </p:title>
  
                  <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
                  <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
              </p:section>
  
              <p:section>
                  <p:title>
                      <p:font size="18"><p:paragraph>and pontificating ...</p:paragraph></p:font>
                  </p:title>
  
                  <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
                  <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
              </p:section>
          </p:section>
  
          <p:section> 
              <p:title>
                  <p:font size="18"><p:paragraph>Third Idea</p:paragraph></p:font>
              </p:title>
              <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
              <p:paragraph alignment="justify" spacingBefore="5">Blah .... </p:paragraph>
          </p:section>
      </p:chapter>
  
      <p:chapter number="3">
          <p:title>
              <p:font size="18"><p:paragraph>Conclusions</p:paragraph></p:font>
          </p:title>
  
          <p:section> 
              <p:paragraph alignment="justify" spacingBefore="5">Section .... </p:paragraph>
          </p:section>
  
          <p:section> 
              <p:paragraph alignment="justify" spacingBefore="5">Section .... </p:paragraph>
          </p:section>
  
          <p:section> 
              <p:paragraph alignment="justify" spacingBefore="5">Section .... </p:paragraph>
          </p:section>
  
      </p:chapter>
  
  
  
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/signature.xhtml
  
  Index: signature.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:p="http://jboss.com/products/seam/pdf"
              title="Why Seam"
              keywords="mykeyword"
              subject="seam"
              author="Seam Team"
              creator="Seam PDF example app">
  
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingBefore="16" spacingAfter="40">Order #{currentOrder.orderId} </p:paragraph></p:font>  
  
  
      <p:paragraph>Dear #{currentOrder.customerName},</p:paragraph>
  
      <p:paragraph>
  Your order on <p:text value=" #{currentOrder.orderDate}"><f:convertDateTime style="date" format="short" /></p:text> has been processed and will ship shortly.  Your order number is #{currentOrder.orderId}.  If you have any questions, please see our <p:anchor reference="http://www.jboss.org/index.html?module=bb&amp;op=viewforum&amp;f=231"> support forums</p:anchor>.
      </p:paragraph>
  
      <p:table columns="2" width="3 1" widthPercentage="35" horizontalAlignment="right" spacingBefore="40">
          <f:facet name="defaultCell">
              <p:cell borderWidth="0" horizontalAlignment="right"/>
          </f:facet>
              
          <p:cell colspan="2" borderWidth="0" horizontalAlignment="center">
              <p:font size="24"><p:paragraph>Order Summary</p:paragraph></p:font>
          </p:cell>
  
          <p:cell><p:paragraph>Order Amount:</p:paragraph></p:cell>
          <p:cell>
              <p:paragraph>
                  <p:text value="#{currentOrder.baseAmount}">
                      <f:convertNumber type="currency" currencySymbol="$"/>
                  </p:text>
              </p:paragraph>
          </p:cell>
          <p:cell><p:paragraph>Tax:</p:paragraph></p:cell>
          <p:cell>
              <p:paragraph>
                  <p:text value="#{currentOrder.tax}">
                      <f:convertNumber type="currency" currencySymbol="$"/>
                  </p:text>
              </p:paragraph>
          </p:cell>
          <p:cell><p:paragraph>Total Amount:</p:paragraph></p:cell>
          <p:cell>
              <p:paragraph>
                  <p:text value="#{currentOrder.totalAmount}">
                      <f:convertNumber type="currency" currencySymbol="$"/>
                  </p:text>
              </p:paragraph>
          </p:cell>
      </p:table>
  
      <p:signature field="My Signature" 
                   size="200 200 400 400"  />
  </p:document>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/table.xhtml
  
  Index: table.xhtml
  ===================================================================
  <document xmlns:ui="http://java.sun.com/jsf/facelets" 
            xmlns:f="http://java.sun.com/jsf/core"
            xmlns="http://jboss.com/products/seam/pdf">
  
      <image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <font size="24"><paragraph spacingAfter="50">Table Test</paragraph></font>  
  
      <table columns="4">
          <f:facet name="defaultCell">
              <cell horizontalAlignment="center" verticalAlignment="middle" />
          </f:facet>
          <cell backgroundColor="yellow" colspan="2"><paragraph>cell 1</paragraph></cell>
          <cell><paragraph>cell 2</paragraph></cell>
          <cell><paragraph>cell 3</paragraph></cell>
          <cell><paragraph>cell 4</paragraph></cell>
          <cell backgroundColor="red" colspan="2"><paragraph>cell 5</paragraph></cell>
          <cell><paragraph>cell 6</paragraph></cell>
          <cell><paragraph>cell 7</paragraph></cell>
          <cell><paragraph>cell 8</paragraph></cell>
          <cell backgroundColor="green" colspan="2"><paragraph>cell 9</paragraph></cell>
      </table>
  
      <paragraph spacingBefore="10" spacingAfter="10">This is another table.  It should be large enough to span multiple pages with the headers repeated on other page</paragraph>
  
  
      <table widths="1 4" columns="2" headerRows="1">
          <cell grayFill=".3" paddingBottom="10" horizontalAlignment="center" colspan="2">
              <font size="20"><paragraph alignment="center">This is a header</paragraph></font>
          </cell>
  
  
          <ui:repeat value="#{lists.numbers}" var="week">
              <cell rotation="90" horizontalAlignment="center" verticalAlignment="middle" grayFill=".7">
                  <font size="30"><paragraph>Week #{week}</paragraph></font>
              </cell>
              <cell paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0">
                  <table widths="1.25 4" columns="2" widthPercentage="100">
                      <ui:repeat value="#{lists.daysOfWeek}" var="day">
                          <cell paddingBottom="6">#{day}</cell>
                          <cell paddingBottom="6">Blah blah blah</cell>
                      </ui:repeat>
                  </table>
              </cell>
          </ui:repeat>
      </table>
  </document>
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/whyseam.xhtml
  
  Index: whyseam.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:p="http://jboss.com/products/seam/pdf"
              title="Why Seam"
              keywords="mykeyword"
              subject="seam"
              author="Seam Team"
              creator="Seam PDF example app">
  
      <f:facet name="header">
          <p:font size="12">
              <p:footer borderWidthTop="1" borderColorTop="blue" borderWidthBottom="0" alignment="center">Why Seam? [<p:pageNumber />]</p:footer>
          </p:font>
      </f:facet>
      
      <p:image alignment="right" wrap="true" resource="/jboss.jpg" /> 
      <p:font size="24"><p:paragraph spacingAfter="50">Ten Good Reasons To Use Seam</p:paragraph></p:font>  
  
      <p:font size="18"><p:paragraph>It's the quickest way to get "rich"</p:paragraph></p:font>
  
      <p:paragraph alignment="justify">AJAX fundamentally changes the interaction model of the web. The synchronous, coarse-grained requests used by traditional web clients let many server-side applications get away with minimal caching and no session-level concurrency. The "stateless" architecture is in many cases a viable solution. But not anymore! AJAX clients hit the server with many asynchronous, concurrent, fine-grained requests, which could easily bring your database to its knees. When state is held in memory between requests, it is highly vulnerable to concurrency-related bugs, since the Java EE platform provides no constructs for dealing with session-level concurrency.</p:paragraph>
  
      <p:paragraph alignment="justify">Seam's totally unique concurrency model and state-management model was conceived and designed with AJAX in mind. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam 1.1 integrates open source JSF-based AJAX solutions like ICEfaces and Ajax4JSF with Seam's state and concurrency management engine. You can add AJAX to your applications with ease, without the need to learn JavaScript, and you will be protected from potential bugs and performance problems associated with the switch to AJAX. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the easiest way to get started with EJB 3.0 </p:paragraph></p:font>
      <p:paragraph alignment="justify">EJB 3.0 is a great component model for transactional business components, the highlight being the brand new Java Persistence API (JPA). But Java web and application frameworks designed before the release of EJB 3.0 lack support for the new component model, leaving you to write your own integration code, and in many cases forcing you into the use of a layered architecture that may not be right for your application. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam was designed for use with EJB 3.0 and lets you use the new component model everywhere. Since any class in a Seam application can be an EJB component, there is no need to introduce extra unwanted layers just to keep your frameworks happy. And, of course, there is no need to write code to integrate EJB 3.0 with your web framework, since Seam already has it. </p:paragraph>
  
      <p:paragraph alignment="justify">Note that you don't have to use EJB 3.0 to use Seam, and if you're developing in an environment that doesn't support EJB 3.0, Seam provides alternatives. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the best way to leverage JSF </p:paragraph></p:font>
      <p:paragraph alignment="justify">JSF has created a vibrant ecosystem of component libraries and other addons, that make this easily the most exciting web framework in Java. But plain JSF is heavy on XML, and misses out on a number of important features, especially for people building internet-facing applications. Seam replaces the tedious XML configuration with a handful of annotations, reducing code and making you more productive. Seam extends JSF with extra functionality for multi-window operation and workspace management, model-based validation, jBPM-based pageflow, internationalization, page fragment caching. Seam even adds facilities for handling bookmarkable (REST-style) web pages - the number one user complaint against JSF. </p:paragraph>
  
      <p:paragraph alignment="justify">Since JSF does not address the problem of access to transactional resources, Seam's integration of JTA, JPA and EJB 3.0 is a must-have for most JSF users. </p:paragraph>
  
      <p:font size="18"><p:paragraph>And the easiest way to do BPM </p:paragraph></p:font>
      <p:paragraph alignment="justify">jBPM is an intuitive and powerful solution for enterprise applications with complex human collaboration, or web applications with complex user interactions. BPM technology not only makes it easier for developers and analysts to model, implement and optimize a business process, but also makes it possible for operations and management to analyse the efficiency of the business process, and be informed of problems. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam deeply integrates jBPM and makes it incredibly simple to use jBPM for task management or pageflow, and is a great way to get started with BPM technology. The combination of Seam and jBPM can shrink development time of some kinds of projects by literally months. </p:paragraph>
  
      <p:font size="18"><p:paragraph>But CRUD is easy too </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam takes on hard problems affecting complex enterprise applications. But that doesn't mean the easy stuff is any more difficult than it should be. Seam is every bit as productive as any of the current crop of CRUD frameworks when it comes to building simple data driven applications. Seam combines a simple data access framework (built around JPA and Hibernate) with a command line code generation and database reverse engineering tool to get you started in minutes. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It makes persistence a breeze </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam grew out of the Hibernate community, and was designed and implemented by the people who created Hibernate, the same people who coined the term "persistence context". Seam's conversation model solves a raft of persistence-related programming problems caused by traditional stateless web application architectures. Whether you use Hibernate or JPA, Seam makes it easy and natural to use extended persistence contexts, and helps you avoid unnecessary state replication when you use an extended persistence context in a clustered environment. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Annotations </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is the first programming model that lets you use Java 5 annotations end to end, from the persistence layer to the UI. You'll never find yourself wrestling with unnecessary, noisy XML. Which is not to say that Seam doesn't use XML when appropriate (Seam has a sophisticated XML-based component configuration facility), just that you won't get lost in reams of XML for common programming tasks. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Get hip to automated integration testing </p:paragraph></p:font>
      <p:paragraph alignment="justify">Automated unit tests certainly have their place in any project. But it's worse than dangerous to rely solely on unit testing. Most bugs concern the interaction between components, and the interaction between a component and the container environment. Unit tests are unable to properly capture container behavior, and usually don't capture complex inter-component interactions. Seam introduces an innovative approach to automated integration testing, where you can emulate the entire flow of a request or conversation, testing all layers of Java code in the application, from presentation to persistence. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Marry open source with open standards </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is founded upon open source implementations of open standards like JSF and EJB 3.0, along with open source innovators like Hibernate, jBPM, Facelets, Drools, ICEfaces and Ajax4JSF. The creators of Seam are active in the EJB, JPA, Bean Validation and JSF expert groups and lead the Web Beans (JSR-299) expert group which aims to bring the ideas of Seam into the Java EE standard. The Seam project is totally committed to the idea of open source innovation driving new ideas and ehancements into the Java platform. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It just works </p:paragraph></p:font>
      <p:paragraph alignment="justify">You'll love it if you try it.</p:paragraph>
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/whyseam_html.xhtml
  
  Index: whyseam_html.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:p="http://jboss.com/products/seam/pdf"
              type="html"
              title="Why Seam"
              keywords="mykeyword"
              subject="seam"
              author="Seam Team"
              creator="Seam PDF example app">
  
      <f:facet name="header">
      <p:font size="12">
          <p:footer borderWidthTop="1" borderColorTop="blue" borderWidthBottom="0" alignment="center">Why Seam? [<p:pageNumber />]</p:footer>
      </p:font>
      </f:facet>
  
  <ui:remove><p:image alignment="right" wrap="true" resource="/jboss.jpg" /> </ui:remove>
      <p:font size="24"><p:paragraph spacingAfter="50">Ten Good Reasons To Use Seam</p:paragraph></p:font>  
  
  
      <p:font size="18"><p:paragraph>It's the quickest way to get "rich"</p:paragraph></p:font>
  
      <p:paragraph alignment="justify">AJAX fundamentally changes the interaction model of the web. The synchronous, coarse-grained requests used by traditional web clients let many server-side applications get away with minimal caching and no session-level concurrency. The "stateless" architecture is in many cases a viable solution. But not anymore! AJAX clients hit the server with many asynchronous, concurrent, fine-grained requests, which could easily bring your database to its knees. When state is held in memory between requests, it is highly vulnerable to concurrency-related bugs, since the Java EE platform provides no constructs for dealing with session-level concurrency.</p:paragraph>
  
      <p:paragraph alignment="justify">Seam's totally unique concurrency model and state-management model was conceived and designed with AJAX in mind. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam 1.1 integrates open source JSF-based AJAX solutions like ICEfaces and Ajax4JSF with Seam's state and concurrency management engine. You can add AJAX to your applications with ease, without the need to learn JavaScript, and you will be protected from potential bugs and performance problems associated with the switch to AJAX. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the easiest way to get started with EJB 3.0 </p:paragraph></p:font>
      <p:paragraph alignment="justify">EJB 3.0 is a great component model for transactional business components, the highlight being the brand new Java Persistence API (JPA). But Java web and application frameworks designed before the release of EJB 3.0 lack support for the new component model, leaving you to write your own integration code, and in many cases forcing you into the use of a layered architecture that may not be right for your application. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam was designed for use with EJB 3.0 and lets you use the new component model everywhere. Since any class in a Seam application can be an EJB component, there is no need to introduce extra unwanted layers just to keep your frameworks happy. And, of course, there is no need to write code to integrate EJB 3.0 with your web framework, since Seam already has it. </p:paragraph>
  
      <p:paragraph alignment="justify">Note that you don't have to use EJB 3.0 to use Seam, and if you're developing in an environment that doesn't support EJB 3.0, Seam provides alternatives. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the best way to leverage JSF </p:paragraph></p:font>
      <p:paragraph alignment="justify">JSF has created a vibrant ecosystem of component libraries and other addons, that make this easily the most exciting web framework in Java. But plain JSF is heavy on XML, and misses out on a number of important features, especially for people building internet-facing applications. Seam replaces the tedious XML configuration with a handful of annotations, reducing code and making you more productive. Seam extends JSF with extra functionality for multi-window operation and workspace management, model-based validation, jBPM-based pageflow, internationalization, page fragment caching. Seam even adds facilities for handling bookmarkable (REST-style) web pages - the number one user complaint against JSF. </p:paragraph>
  
      <p:paragraph alignment="justify">Since JSF does not address the problem of access to transactional resources, Seam's integration of JTA, JPA and EJB 3.0 is a must-have for most JSF users. </p:paragraph>
  
      <p:font size="18"><p:paragraph>And the easiest way to do BPM </p:paragraph></p:font>
      <p:paragraph alignment="justify">jBPM is an intuitive and powerful solution for enterprise applications with complex human collaboration, or web applications with complex user interactions. BPM technology not only makes it easier for developers and analysts to model, implement and optimize a business process, but also makes it possible for operations and management to analyse the efficiency of the business process, and be informed of problems. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam deeply integrates jBPM and makes it incredibly simple to use jBPM for task management or pageflow, and is a great way to get started with BPM technology. The combination of Seam and jBPM can shrink development time of some kinds of projects by literally months. </p:paragraph>
  
      <p:font size="18"><p:paragraph>But CRUD is easy too </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam takes on hard problems affecting complex enterprise applications. But that doesn't mean the easy stuff is any more difficult than it should be. Seam is every bit as productive as any of the current crop of CRUD frameworks when it comes to building simple data driven applications. Seam combines a simple data access framework (built around JPA and Hibernate) with a command line code generation and database reverse engineering tool to get you started in minutes. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It makes persistence a breeze </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam grew out of the Hibernate community, and was designed and implemented by the people who created Hibernate, the same people who coined the term "persistence context". Seam's conversation model solves a raft of persistence-related programming problems caused by traditional stateless web application architectures. Whether you use Hibernate or JPA, Seam makes it easy and natural to use extended persistence contexts, and helps you avoid unnecessary state replication when you use an extended persistence context in a clustered environment. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Annotations </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is the first programming model that lets you use Java 5 annotations end to end, from the persistence layer to the UI. You'll never find yourself wrestling with unnecessary, noisy XML. Which is not to say that Seam doesn't use XML when appropriate (Seam has a sophisticated XML-based component configuration facility), just that you won't get lost in reams of XML for common programming tasks. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Get hip to automated integration testing </p:paragraph></p:font>
      <p:paragraph alignment="justify">Automated unit tests certainly have their place in any project. But it's worse than dangerous to rely solely on unit testing. Most bugs concern the interaction between components, and the interaction between a component and the container environment. Unit tests are unable to properly capture container behavior, and usually don't capture complex inter-component interactions. Seam introduces an innovative approach to automated integration testing, where you can emulate the entire flow of a request or conversation, testing all layers of Java code in the application, from presentation to persistence. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Marry open source with open standards </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is founded upon open source implementations of open standards like JSF and EJB 3.0, along with open source innovators like Hibernate, jBPM, Facelets, Drools, ICEfaces and Ajax4JSF. The creators of Seam are active in the EJB, JPA, Bean Validation and JSF expert groups and lead the Web Beans (JSR-299) expert group which aims to bring the ideas of Seam into the Java EE standard. The Seam project is totally committed to the idea of open source innovation driving new ideas and ehancements into the Java platform. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It just works </p:paragraph></p:font>
      <p:paragraph alignment="justify">You'll love it if you try it.</p:paragraph>
  </p:document>
  
  
  
  
  1.1      date: 2007/02/07 20:44:06;  author: nrichards;  state: Exp;jboss-seam/examples/itext/view/whyseam_rtf.xhtml
  
  Index: whyseam_rtf.xhtml
  ===================================================================
  <p:document xmlns:ui="http://java.sun.com/jsf/facelets"
              xmlns:p="http://jboss.com/products/seam/pdf"
              type="rtf"
              title="Why Seam"
              keywords="mykeyword"
              subject="seam"
              author="Seam Team"
              creator="Seam PDF example app">
  
      <f:facet name="header">
      <p:font size="12">
          <p:footer borderWidthTop="1" borderColorTop="blue" borderWidthBottom="0" alignment="center">Why Seam? [<p:pageNumber />]</p:footer>
      </p:font>
      </f:facet>
  
      <ui:remove><p:image alignment="right" wrap="true" resource="/jboss.jpg" /> </ui:remove>
      <p:font size="24"><p:paragraph spacingAfter="50">Ten Good Reasons To Use Seam</p:paragraph></p:font>  
  
  
      <p:font size="18"><p:paragraph>It's the quickest way to get "rich"</p:paragraph></p:font>
  
      <p:paragraph alignment="justify">AJAX fundamentally changes the interaction model of the web. The synchronous, coarse-grained requests used by traditional web clients let many server-side applications get away with minimal caching and no session-level concurrency. The "stateless" architecture is in many cases a viable solution. But not anymore! AJAX clients hit the server with many asynchronous, concurrent, fine-grained requests, which could easily bring your database to its knees. When state is held in memory between requests, it is highly vulnerable to concurrency-related bugs, since the Java EE platform provides no constructs for dealing with session-level concurrency.</p:paragraph>
  
      <p:paragraph alignment="justify">Seam's totally unique concurrency model and state-management model was conceived and designed with AJAX in mind. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam 1.1 integrates open source JSF-based AJAX solutions like ICEfaces and Ajax4JSF with Seam's state and concurrency management engine. You can add AJAX to your applications with ease, without the need to learn JavaScript, and you will be protected from potential bugs and performance problems associated with the switch to AJAX. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the easiest way to get started with EJB 3.0 </p:paragraph></p:font>
      <p:paragraph alignment="justify">EJB 3.0 is a great component model for transactional business components, the highlight being the brand new Java Persistence API (JPA). But Java web and application frameworks designed before the release of EJB 3.0 lack support for the new component model, leaving you to write your own integration code, and in many cases forcing you into the use of a layered architecture that may not be right for your application. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam was designed for use with EJB 3.0 and lets you use the new component model everywhere. Since any class in a Seam application can be an EJB component, there is no need to introduce extra unwanted layers just to keep your frameworks happy. And, of course, there is no need to write code to integrate EJB 3.0 with your web framework, since Seam already has it. </p:paragraph>
  
      <p:paragraph alignment="justify">Note that you don't have to use EJB 3.0 to use Seam, and if you're developing in an environment that doesn't support EJB 3.0, Seam provides alternatives. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It's the best way to leverage JSF </p:paragraph></p:font>
      <p:paragraph alignment="justify">JSF has created a vibrant ecosystem of component libraries and other addons, that make this easily the most exciting web framework in Java. But plain JSF is heavy on XML, and misses out on a number of important features, especially for people building internet-facing applications. Seam replaces the tedious XML configuration with a handful of annotations, reducing code and making you more productive. Seam extends JSF with extra functionality for multi-window operation and workspace management, model-based validation, jBPM-based pageflow, internationalization, page fragment caching. Seam even adds facilities for handling bookmarkable (REST-style) web pages - the number one user complaint against JSF. </p:paragraph>
  
      <p:paragraph alignment="justify">Since JSF does not address the problem of access to transactional resources, Seam's integration of JTA, JPA and EJB 3.0 is a must-have for most JSF users. </p:paragraph>
  
      <p:font size="18"><p:paragraph>And the easiest way to do BPM </p:paragraph></p:font>
      <p:paragraph alignment="justify">jBPM is an intuitive and powerful solution for enterprise applications with complex human collaboration, or web applications with complex user interactions. BPM technology not only makes it easier for developers and analysts to model, implement and optimize a business process, but also makes it possible for operations and management to analyse the efficiency of the business process, and be informed of problems. </p:paragraph>
  
      <p:paragraph alignment="justify">Seam deeply integrates jBPM and makes it incredibly simple to use jBPM for task management or pageflow, and is a great way to get started with BPM technology. The combination of Seam and jBPM can shrink development time of some kinds of projects by literally months. </p:paragraph>
  
      <p:font size="18"><p:paragraph>But CRUD is easy too </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam takes on hard problems affecting complex enterprise applications. But that doesn't mean the easy stuff is any more difficult than it should be. Seam is every bit as productive as any of the current crop of CRUD frameworks when it comes to building simple data driven applications. Seam combines a simple data access framework (built around JPA and Hibernate) with a command line code generation and database reverse engineering tool to get you started in minutes. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It makes persistence a breeze </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam grew out of the Hibernate community, and was designed and implemented by the people who created Hibernate, the same people who coined the term "persistence context". Seam's conversation model solves a raft of persistence-related programming problems caused by traditional stateless web application architectures. Whether you use Hibernate or JPA, Seam makes it easy and natural to use extended persistence contexts, and helps you avoid unnecessary state replication when you use an extended persistence context in a clustered environment. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Annotations </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is the first programming model that lets you use Java 5 annotations end to end, from the persistence layer to the UI. You'll never find yourself wrestling with unnecessary, noisy XML. Which is not to say that Seam doesn't use XML when appropriate (Seam has a sophisticated XML-based component configuration facility), just that you won't get lost in reams of XML for common programming tasks. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Get hip to automated integration testing </p:paragraph></p:font>
      <p:paragraph alignment="justify">Automated unit tests certainly have their place in any project. But it's worse than dangerous to rely solely on unit testing. Most bugs concern the interaction between components, and the interaction between a component and the container environment. Unit tests are unable to properly capture container behavior, and usually don't capture complex inter-component interactions. Seam introduces an innovative approach to automated integration testing, where you can emulate the entire flow of a request or conversation, testing all layers of Java code in the application, from presentation to persistence. </p:paragraph>
  
      <p:font size="18"><p:paragraph>Marry open source with open standards </p:paragraph></p:font>
      <p:paragraph alignment="justify">Seam is founded upon open source implementations of open standards like JSF and EJB 3.0, along with open source innovators like Hibernate, jBPM, Facelets, Drools, ICEfaces and Ajax4JSF. The creators of Seam are active in the EJB, JPA, Bean Validation and JSF expert groups and lead the Web Beans (JSR-299) expert group which aims to bring the ideas of Seam into the Java EE standard. The Seam project is totally committed to the idea of open source innovation driving new ideas and ehancements into the Java platform. </p:paragraph>
  
      <p:font size="18"><p:paragraph>It just works </p:paragraph></p:font>
      <p:paragraph alignment="justify">You'll love it if you try it.</p:paragraph>
  </p:document>
  
  
  
  



More information about the jboss-cvs-commits mailing list