You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by js...@apache.org on 2002/03/04 04:32:25 UTC

cvs commit: jakarta-commons-sandbox/jelly OVERVIEW.html PROPOSAL.html

jstrachan    02/03/03 19:32:25

  Modified:    jelly    PROPOSAL.html
  Added:       jelly    OVERVIEW.html
  Log:
  Added overview of Jelly and updated the proposal
  
  Revision  Changes    Path
  1.3       +8 -4      jakarta-commons-sandbox/jelly/PROPOSAL.html
  
  Index: PROPOSAL.html
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jelly/PROPOSAL.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PROPOSAL.html	11 Feb 2002 18:14:17 -0000	1.2
  +++ PROPOSAL.html	4 Mar 2002 03:32:25 -0000	1.3
  @@ -11,11 +11,15 @@
   <h3>(0) Rationale</h3>
   
   <p>The <em>Jelly</em> package implements a simple XML tag based scripting 
  -engine. It borrows many ideas from both JSP custom tags, Velocity and the 
  +engine. Jelly borrows many ideas from both JSP custom tags, Velocity and the 
   scripting engine inside XDoclet. Jelly can be used from the command line, inside 
  -Ant or inside a Servlet. It allows the engine to be extended using custom tags 
  -in a similar way to JSP. Though Jelly is really simple and has no dependencies 
  -on JSP.</p>
  +Ant or inside a Servlet. 
  +</p>
  +
  +<p>
  +Jelly is completely extendable via custom tags in a similar way to JSP. 
  +Though Jelly is really simple and has no dependencies either Servlets or JSP.
  +</p>
   
   <p>As an experiment some of the JSTL tags are implemented.</p>
   
  
  
  
  1.1                  jakarta-commons-sandbox/jelly/OVERVIEW.html
  
  Index: OVERVIEW.html
  ===================================================================
  <html>
  
  <head>
  <meta http-equiv="Content-Language" content="en-gb">
  <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
  <meta name="ProgId" content="FrontPage.Editor.Document">
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  <title>Jakarta Commons Betwixt User Guide</title>
  </head>
  
  <body>
  
  <h1>Jakarta Commons <i>Jelly</i> Overview</h1>
  
  <p>Jelly is a simple yet powerful scripting engine. Jelly is totally extendable 
  via custom tags (like JSP) as well as cleanly integrating with other scripting 
  languages via BSF (Bean Scripting Framework).</p>
  
  <h2>Comparisons</h2>
  
  <p>To try give you a better feel for what Jelly is, we'll compare and contrast 
  Jelly with other scripting engines and templating technologies.</p>
  
  <h3>Jelly versus JSP</h3>
  
  <p>Similarities</p>
  <ul>
    <li>Jelly uses the concept of custom tag libraries from JSP and follows many 
    of the lessons learnt from the JSTL (JSP Standard Tag Library). Indeed JSTL 
    could be implemented in Jelly.</li>
  </ul>
  
  <p>Differences</p>
  <ul>
    <li>Jelly has no dependency on Servlets or JSP so Jelly can be run from the 
    command line, inside Ant, inside an applet or anywhere that Java code can be 
    ran.</li>
    <li>Jelly tags are much simpler to write and use than JSP tags. Because JSP 
    must support scriptlets due to backwards compatibility issues, they are 
    implemented 'inside out' with 3 different interfaces (Tag, BodyTag, 
    IterationTag) to implement based on the kind of tag you are writing, together 
    with a fairly complex set of event-based methods that are called by the page 
    container. Jelly tags are very easy - just derive from TagSupport and 
    implement the run() method. Really simple!</li>
    <li>Jelly tags can parse and compile their bodies for more optimal performance 
    and easier validation. So a tag can ignore whitespace, iterate over its body, 
    transform its body etc. So a Jelly tag can be a simple macro, preprocessing 
    its body at compile time, such as to build smart HTML forms or to make SOAP 
    macros etc.</li>
  </ul>
  
  <h3>Jelly versus Velocity</h3>
  
  <p>Similarities</p>
  <ul>
    <li>Jelly allows Java objects to be manipulated in a Java-like manner just 
    like Velocity.</li>
    <li>Jelly could have a <i>surface syntax</i> that looks similar to Velocity. 
    i.e. someone could make a parser of Jelly that had a look-and-feel of Velocity 
    for common directives and expressions.</li>
  </ul>
  
  <p>Differences</p>
  <ul>
    <li>Jelly provides an extensible tag mechanism to provide more poweful 
    scripting such as by supporting JSTL, XML, XPath, XSLT, SQL or SOAP service 
    scripting.</li>
    <li>Jelly has integrated support for other scripting languages such as 
    JavaScript, NetRexx, Jython etc.</li>
  </ul>
  
  <h2>Possible uses for Jelly</h2>
  
  <p>Jelly has various possible uses. Here's a few to think about</p>
  <ul>
    <li>Alternative to Velocity &amp; JSP</li>
    <li>Page templating system</li>
    <li>Code generation system</li>
    <li>SOAP, HTTP and/or JMS based scripting framework</li>
    <li>Ant scripting</li>
    <li>Alternative implementation of JSTL</li>
    <li>Enhanced scripting engine for XDoclet</li>
  </ul>
  
  </body>
  
  </html>
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>