<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="Author" content="Eclipse WTP PMC">
<title>Eclipse Web Tools Project Plan Plan</title>
<link rel="stylesheet" href="default_style.css" type="text/css">

</head>

<body>

<h1>Eclipse Web Tools
 Project Plan Summary</h1>
<p>Last revised February 16, 2005</p>
<h2>Executive Summary of Current Plan</h2>
<p>The Web Tools Platform top-level project is currently working on the 1.0 
release. The Web Tools Platform is currently in process of its first major 
release and thus is concentrating on completing, formalizing, and stabilizing 
the initial frameworks and APIs. The project is not planning major new 
functionality at this time. The framework and exemplary tools include server 
tools, web tools, XML tools, structure source editing, EJB tools, web service 
tools, data tools, and vendor neutral flexible project layouts.</p>
<p>The Web Tools Platform project is tracking the Eclipse Platform closely and 
is taking advantage of the latest Platform innovations to provide user interface 
consistency and seamless integration. The Web Tools milestone releases are 
hosted on the very latest Platform milestone release at all times. The R1.0 
final release is planned for late July 2005 on top of the Platform 3.1 final 
release.</p>
<p>Details on the current plan(s) can be found at:</p>
<ul>
  <li> WTP 1.0 release
  <a href="http://eclipse.org/webtools/development/planning/roadmap.html">
  roadmap</a>,
  <a href="http://www.eclipse.org/webtools/development/eclipse_WTP_project_plan_1_0.html">
  project plan</a>, general milestone
  <a href="http://www.eclipse.org/webtools/development/planning/milestone_plan_1_0.html">
  plan</a>, and
  <a href="http://www.eclipse.org/webtools/development/milestone_plans/reports/report-milestone-overview.html">
  detailed milestone plan</a></li>
</ul>
<h2>Forward Looking Statement</h2>
<p>The <a href="http://www.eclipse.org/org/councils/themes.html">Eclipse Themes 
and Priorities</a> are one of the guiding focus areas for the features and 
enhancements in Web Tools Platform Project. Overall, Web Tools is an 
initial-phase project and thus our focus is on a stable, robust, functional API 
that add-in providers can build upon, rather than on adding new features. 
Because of this focus, we are more driven by our Architecture Plan and less by 
the community feedback of new features (through Bugzilla).</p>
<ul>
  <li><b>Scaling Up</b> - During release 1.0, we are not planning any work on 
  handling very large websites. The project anticipates working on those issues 
  during release 2.0 while utilizing the features of the Platform releases 3.1 
  and 3.2.</li>
  <li><b>Enterprise Ready</b> - We do not have any plans for supporting specific 
  enterprise development features. The Web Tools Platform project already 
  supports a set of vendor neutral APIs for connecting to web servers and 
  databases to enable development across a wide variety of enterprise 
  configurations.</li>
  <li><b>Design for Extensibility: Be a Better Platform</b> - During release 
  1.0, we are not planning any work on being a platform for other projects. We 
  anticipate working with the Test &amp; Performance Tooling Platform as well as the 
  Business Intelligence and Reporting Project in the release 1.1 and release 2.0 
  time frame to support their requirements in our tools.</li>
  <li><b>Embedded Development </b>- We do not have any specific plans for 
  supporting embedded development.</li>
  <li><b>Rich Client Platform</b> - We do not have any specific plans for 
  supporting the Rich Client Platform.</li>
  <li><b>Simple to Use</b> - During release 1.0, the project is concentrating on 
  creating a very solid base of well designed and excellently implemented APIs. 
  Thus we are not allocating any release 1.0 effort to improving the user 
  interface. However, the project intends to allocate significant resources to 
  the user interface and user experience during releases 1.1 and 2.0. For 
  example, the project plans to provide Darwin Information Typing Architecture 
  based XML help.</li>
  <li><b>Enable Consistent Multi-language Support</b> - The WTP project will 
  support Java-JSP dual-language development, but we do not have plans to 
  support or enabling any other multi-language development.</li>
  <li><b>Appealing to Broader Community</b> - In the WTP 1.1 and 2.0 releases, 
  we will continue to track the appropriate Web and J2EE standards. These 
  standards are undergoing rapid evolution, especially in the area of XML and 
  Web services. Each release of WTP will both upgrade support for existing key 
  standards and introduce new support for industrially relevant emerging 
  standards.<ul>
    <li>The WTP project will exploit J2SE Java 5.</li>
    <li>The WTP project will support SOAP 1.2, WSDL 2.0, and their reference 
    implementations.</li>
    <li>The WTP project will support JSRs 175 and 181.</li>
    <li>The WTP project will support J2EE 1.5.</li>
    <li><i>What other standards?</i></li>
  </ul>
  </li>
</ul>
<p><i>Are there any known unresolved issues? Are we not testing on enough 
platforms? Under resourced in certain areas?</i></p>
<p><i>It would be good to have &quot;candidate work areas&quot; in each of these themes, 
or at least in the themes that are relevant to WTP.</i></p>
<p><i>This forward looking statement is somewhat minimal and it would be nice if 
someone could make some strengthening comments.</i></p>
</body>

</html>