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 & 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>