blob: 508cc6435b450ea2052e4d392087fff0b481c3a0 [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="" lang="en-us" xml:lang="en-us">
<title>TLD tools Proposal</title>
content="text/html; charset=ISO-8859-1" />
<h2>TLD Tools Proposal</h2>
<i>1st Draft</i>
<br />
<i>14 Dec 2007</i>
<p>TLD Tools is a proposed open source component under the Eclipse WTP Source Editing subproject.</p>
<p>This component proposal is similar to a Project Proposal (as defined in the Eclipse Development Process document)
and is written to declare its intent and scope. This proposal is written to solicit additional participation and input
from the Eclipse community.</p>
<p>Comments can be made in bug <a href="">196418</a>.</p>
<p>Eclipse is continuously improving its tools support for developing Web/Java EE application. The Web Tools Platform allows the user to easily develop, validate, deploy and test their applications.
One of the main area in the Java EE development are JSPs.</p>
<p>In order to enhance the user experience while developing JSPs the current proposal is focused on custom tag libraries.</p>
<p>JavaServer Pages (JSP) tag libraries define declarative, modular functionality that can be reused by any JSP page. Tag libraries reduce the necessity to embed large amounts of Java code in JSP pages by moving the functionality of the tags into tag implementation classes. Tag extension mechanism is a technology, described in JavaServer Pages specification. In accordance with this technology, in a JSP page could be introduced new actions.
Actions are elements that can create and access programming language objects and affect the output stream. The JSP specification defines standard actions that must be provided by any compliant JSP implementation.
In addition to the standard actions, JSP technology supports the development of reusable modules called custom actions. A custom action is invoked by using a custom tag in a JSP page. A tag library is a collection of custom tags.</p>
<p>The support of tag extension mechanism in WTP shall include support for creation of custom tag libraries.</p>
<p>For minimal support of tag libraries would be enough the following:</p>
<h5>Creation of TLD file.</h5>
<li>Wizard for creation of TLD file. It could be created underneath \WEB-INF\ folder of a Dynamic Web Project. This wizard should be invoked from a specific action, available on the node of the Web Project. In additions the schemas for the different versions of TLDs (ver1.1 and ver2.0) should be supported as well.</li>
<li>Create of tag elements in TLD file - listeners, validators, description, tag info classes etc.</li>
<li>Implementation in Outline view of the features, described above.</li>
<h5>Creation of Tag Handlers and Tag Files (for TLD 2.0).</h5>
<li>Creation of tag handlers. Java based, as well as tag files. They could be created with wizards, placed on the node of TLD descriptor file.</li>
<h5>Import/Export and packaging.</h5>
<li>Export action for tag library JAR. In this case TLD should be placed into \META-INF\ folder of the JAR </li>
<li>Import of tag library JAR. In this case the user should have a choice: to import JAR with tag library in its wholeness underneath \WEB-INF\lib or to unpack JAR -> TLD underneath \WEB-INF\, java tag handlers underneath \WEB-INF\classes, tag files -> underneath \WEB-INF\tags. </li>
<h5>JSP features</h5>
<li>Code completion in JSP editor. In <taglib> directive in JSP (which is possible as code completion action) URI shall be filled after searching of available TLD files in classpath, as well as TAGDIR (which substitutes URI) shall be filled with tag files, founded underneath the folder \WEB-INF\tags\. </li>
<p>Initial contributions will be made from the attachment in bug <a href="">196418</a></p>
<p>Contributions to the TLD Tools component will be made under the "still not know" namespace.</p>
<h4>Tentative Plan</h4>
<p>Initial presence in Jan 2008</p>
<li>set up incubator at WTP Incubator</li>
<li>CVS repository, seeded with source code from current contributions</li>
<li>Bugzilla repository</li>
<h4>Initial committers</h4>
<p>The initial committers will focus on converting and integrating the provided bug attachment in WTP.</p>
<h5>Component Lead/Committer</h5>
<ul style="list-style-type: square">
<li><a href="">Kiril Mitov</a> - <a href="">SAP</a><br />
<i> Kiril Mitov is a software developer at SAP Labs Bulgaria. His first experience with Eclipse was with Eclipse 2.1 and since then
he has gained great experience with developing Eclipse applications.</i></li>
<h4>User community</h4>
<p>The user community includes many current Eclipse WTP users, but may also attract new Java EE developers who will
start using WTP for its enhanced JSP and Custom TLD support.</p>
<h4>Related Bugs</h4>
<a href="">196418</a>