<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
	<TITLE>Eclipse Project DRAFT 3.0 Plan</TITLE>
	<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.2  (Win32)">
	<META NAME="AUTHOR" CONTENT="Eclipse Project PMC">
	<META NAME="CREATED" CONTENT="20040906;11223146">
	<META NAME="CHANGEDBY" CONTENT="D D">
	<META NAME="CHANGED" CONTENT="20040917;13293107">
	
	<!-- saved from url=(0072)http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_0.html -->
	<STYLE>
	<!--
		TD P { margin-left: 0.3cm; font-family: "arial", "helvetica", "geneva"; font-size: 10pt }
		H1 { margin-left: 0.3cm; font-family: "arial", "helvetica", "geneva"; font-size: 21pt }
		P { margin-left: 0.3cm; font-family: "arial", "helvetica", "geneva"; font-size: 10pt }
		H2 { margin-left: 0.3cm; font-family: "arial", "helvetica", "geneva"; line-height: 0.37cm }
		H4 { margin-left: 0.3cm }
		TH P { margin-left: 0.3cm; font-family: "arial", "helvetica", "geneva"; font-size: 10pt }
	-->
	</STYLE>
</HEAD>
<BODY LANG="fr-FR" DIR="LTR">
<H1>Eclipse WTP Project 1.0 Plan (Draft)</H1>
<P>Last revised Monday, September 17, 2004.<BR><BR>&nbsp;&nbsp;&nbsp;
<I>Please send comments about this draft plan to the
</I><A HREF="mailto:wtp-dev@eclipse.org">wtp-dev@eclipse.org</A> <I>developer
mailing list.</I></P>
<P>This document lays out the feature and API set for the next
feature release of Eclipse WTP 1.0.  
</P>
<UL>
	<LI><P STYLE="margin-bottom: 0cm"><A HREF="#Deliverables">Release
	deliverables</A> 
	</P>
	<LI><P STYLE="margin-bottom: 0cm"><A HREF="#Milestones">Release
	milestones</A> 
	</P>
	<LI><P STYLE="margin-bottom: 0cm"><A HREF="#TargetOperatingEnvironments">Target
	operating environments</A> 
	</P>
	<LI><P STYLE="margin-bottom: 0cm"><A HREF="#Compatibility">Compatibility
	with previous releases</A> 
	</P>
	<LI><P STYLE="margin-bottom: 0cm"><A HREF="#Themes">Themes</A> 
	</P>
</UL>
<P><BR><BR>
</P>
<P>Plans do not materialize out of nowhere, nor are they entirely
static. To ensure the planning process is transparent and open to the
entire Eclipse community, we (the Eclipse WTP PMC) post plans in an
embryonic form and revise them throughout the release cycle. 
</P>
<P>The first part of the plan deals with the important matters of
release deliverables, release milestones, target operating
environments, and release-to-release compatibility. These are all
things that need to be clear for any release, even if no features
were to change.&nbsp; 
</P>
<P>The remainder of the plan consists of themes underlying the
development of the various Eclipse WTP subprojects. 
</P>
<P>The current plan does not contain plan items for the various
Eclipse WTP subprojects. The plan items are given into the detailed
<A HREF="./milestone_plans/reports/report-milestone-overview.html">Eclipse
			WTP 1.0 Milestone Plan</A>
</P>
<H2><A NAME="Deliverables"></A>Release deliverables</H2>
<P>The release deliverables have the same form as previous releases,
namely: 
</P>
<UL>
	<LI><P STYLE="margin-bottom: 0cm">Source code release for Eclipse
	WTP Project, available as versions tagged &quot;R1_0&quot; in the
	Eclipse WTP Project <A HREF="http://dev.eclipse.org/viewcvs/index.cgi/?cvsroot=WebTools_Project">CVS
	repository</A>. 
	</P>
	<LI><P STYLE="margin-bottom: 0cm">Eclipse WTP Web Standard Tools
	runtime binary and SDK distribution (downloadable). 
	</P>
	<LI><P STYLE="margin-bottom: 0cm">Eclipse WTP Web+J2EE Standard
	Tools runtime binary and SDK distribution (downloadable). 
	</P>
</UL>
<H2><A NAME="Milestones"></A>Release milestones</H2>
<P>Release milestones occurring at roughly 8 week intervals exist to
facilitate coarse-grained planning and staging.</P>

<P>
See the 
<A HREF="./milestone_plans/reports/report-milestone-overview.html">Eclipse
			WTP 1.0 Milestone Plan</A> for details.
</P>

<H2><A NAME="TargetOperatingEnvironments"></A>Target Operating
Environments</H2>
<P>Eclipse WTP is built above Eclipse itself. 
</P>
<P>Most of the Eclipse WTP is &quot;pure&quot; Java&trade; code and
has no direct dependence on the underlying operating system. The
chief dependence is therefore on Eclipse. The 1.0 release of the
Eclipse WTP Project is written and compiled against version 1.4 of
the Java 2 Platform APIs, and targeted to run on version 1.4 of the
Java 2 Runtime Environment, Standard Edition.</P>
<P>Eclipse WTP is tested and validated on the following reference
platforms (this list is updated over the course of the release
cycle):</P>
<TABLE WIDTH=821 BORDER=1 CELLPADDING=2 CELLSPACING=3>
	<COL WIDTH=204>
	<COL WIDTH=75>
	<COL WIDTH=58>
	<COL WIDTH=451>
	<TR BGCOLOR="#cccccc">
		<TH COLSPAN=4 WIDTH=809>
			<P ALIGN=CENTER><FONT SIZE=4>Eclipse WTP Reference Platforms</FONT>
						</P>
		</TH>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P><B>Operating system</B></P>
		</TD>
		<TD WIDTH=75>
			<P><B>Processor architecture</B></P>
		</TD>
		<TD WIDTH=58>
			<P><B>Window system</B></P>
		</TD>
		<TD WIDTH=451>
			<P><B>Java 2 Platform</B></P>
		</TD>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P>Microsoft Windows XP</P>
		</TD>
		<TD WIDTH=75>
			<P>Intel x86</P>
		</TD>
		<TD WIDTH=58>
			<P>Win32</P>
		</TD>
		<TD WIDTH=451>
			<P>Sun Java 2 SDK, Standard Edition, version 1.4.2_05 for
			Microsoft Windows</P>
		</TD>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P>Microsoft Windows XP</P>
		</TD>
		<TD WIDTH=75>
			<P>Intel x86</P>
		</TD>
		<TD WIDTH=58>
			<P>Win32</P>
		</TD>
		<TD WIDTH=451>
			<P>IBM 32-bit SDK for Windows, Java 2 Technology Edition, Version
			1.4.1</P>
		</TD>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P>Red Hat Enterprise Linux WS 3</P>
		</TD>
		<TD WIDTH=75>
			<P>Intel x86</P>
		</TD>
		<TD WIDTH=58>
			<P>GTK</P>
		</TD>
		<TD WIDTH=451>
			<P>Sun Java 2 SDK, Standard Edition, 1.4.2_05 for Linux x86</P>
		</TD>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P>Red Hat Enterprise Linux WS 3</P>
		</TD>
		<TD WIDTH=75>
			<P>Intel x86</P>
		</TD>
		<TD WIDTH=58>
			<P>GTK</P>
		</TD>
		<TD WIDTH=451>
			<P>IBM 32-bit SDK for Linux on Intel architecture, Java 2
			Technology Edition, Version 1.4.1</P>
		</TD>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P>SuSE Linux 8.2</P>
		</TD>
		<TD WIDTH=75>
			<P>Intel x86</P>
		</TD>
		<TD WIDTH=58>
			<P>GTK</P>
		</TD>
		<TD WIDTH=451>
			<P>Sun Java 2 SDK, Standard Edition, 1.4.2_05 for Linux x86</P>
		</TD>
	</TR>
	<TR>
		<TD WIDTH=204>
			<P>SuSE Linux 8.2</P>
		</TD>
		<TD WIDTH=75>
			<P>Intel x86</P>
		</TD>
		<TD WIDTH=58>
			<P>GTK</P>
		</TD>
		<TD WIDTH=451>
			<P>IBM 32-bit SDK for Linux on Intel architecture, Java 2
			Technology Edition, Version 1.4.1</P>
		</TD>
	</TR>
</TABLE>
<P>Although untested, Eclipse WTP should work fine on other OSes that
support the same window system. See also <A HREF="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_1.html#TargetOperatingEnvironments">Eclipse
Target Operating Environments</A>. 
</P>
<P>Eclipse WTP is planned to support models for projects, editors,
web and J2EE artifacts, servers. Whereas Eclipse WTP would not add OS
dependencies to support the first three, projects, editors and
artifacts, integrating servers to Eclipse WTP would imply some OS
dependencies. Eclipse WTP is targeted to be OS independent through a
modular conception. So, components for servers integration will be
availabe out of Eclipse WTP Web, or J2EE, Standard Tools runtime
binary distributions.</P>
<P>Servers integrated into Eclipse WTP deliverables will be tested
and validated on the same platforms listed above. Tests for other
platforms will be relying on the community support.</P>
<H4>Internationalization</H4>
<P>The Eclipse WTP is designed as the basis for internationalized
products. The user interface elements provided by the Eclipse SDK
components, including dialogs and error messages, are externalized.
The English strings are provided as the default resource bundles.
Other language support, if any, will rely on the community support.</P>
<H2><A NAME="Compatibility"></A>Compatibility with Other Eclipse
Releases</H2>
<P>There is no previous Eclipse WTP release. So, there is no
compatibility issue for Eclipse WTP.</P>
<P>Eclipse WTP deliverables will be compatible with Eclipse 3.1. No
special attention will give for being compatible with previous
Eclipse versions.</P>
<H2><A NAME="Themes"></A>Themes</H2>
<P>The Eclipse WTP Project consists of 2 subprojects. These themes
are common to both subprojects.</P>
<UL>
	<LI><P STYLE="margin-bottom: 0cm"><B>Built to last </B>- Eclipse has
	always been a platform for delivering integrated software tools.
	With a large and growing base of both free and commercial offerings
	based on Eclipse, it's critical for continued success to ensure that
	the platform scales well. This theme includes work to measure and
	improve the performance of key operations under various loads
	(number of installed plug-ins, number of resources in the workspace,
	etc.). This theme also includes support for user settings in order
	to let users choosing their own compromise between features and
	performance. 
	</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>Simple to use</B> - Eclipse WTP
	needs to not only provide the features that advanced users demand,
	but also be something that most users find simple to use. This theme
	includes ease-of-use reviews of existing features, and work that
	helps make Eclipse-based products simple to use for users with
	widely-varying backgrounds and skill sets. 
	</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>Large-scale development </B>-
	Large software projects are long-term collaborations involving large
	teams of developers playing a variety of roles. In order to be
	effective for large projects, software tools and processes must fit
	well into this reality. This theme includes laying the groundwork in
	the Eclipse WTP that will enable large teams to make effective use
	of Eclipse-based products. This theme will rely on components
	integration and flexible layout projects.</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>User experience </B>- Improving
	Eclipse from the point of view of the end user. This includes
	improving both the &quot;out of the box&quot; experience so that new
	users are productive faster, and finding better ways to scale up to
	large numbers of plug-ins without overwhelming the user. This theme
	deals with reading, writing, and navigating in code, integrating
	information from different sources and providing guidance to users
	and making as explicit as possible how Eclipse works in order to
	improve Eclipse interaction.</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>Responsive UI </B>- Making it
	easier to write Eclipse plug-ins that keep the UI responsive. Areas
	for improvement run the gamut from the UI becoming sluggish (or
	temporarily freezing) when blocking operations are done in the UI
	thread, to long-running operations like builds and searches which
	could be performed in the background while the user continues to
	work.</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>Seamless edition of resources </B>-
	Generalize support to handle more members of the Java family than
	just Java source files. This includes widening to handle Java-like
	languages (such as JSP and SQLj), and embracing non-Java files (such
	as PHP, XSLT stylesheets, plug-in manifest files and J2EE deployment
	descriptors). Web and J2EE resources such as JSPs, XML, CSS, HTML,
	and deployment descriptors should be editable with the all the full
	features other well behaved Eclipse editors have, as applied to
	their specific needs, such as quick fix could &quot;fix&quot;
	xml/html syntax, rename/move should refactor links as well as java
	code, etc.</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>Flexible project layout &ndash;</B>
	Users will have the ability to layout their projects in many ways,
	and still be able to deploy them in the standard J2EE ways. Ideally,
	they would still retain the ability to &quot;run/debug in place&quot;
	without doing the actual deployment, for performance reasons.</P>
	<LI><P STYLE="margin-bottom: 0cm"><B>Vendor ecosystem support &ndash;</B>
	Eclipse WTP is targeted to integrate with servers or external
	runtimes. Eclipse WTP respects vendor neutrality. This theme will
	rely on componentization and extensibility, to strengthen the
	long-term product value propositions of the widest possible range of
	application development implementations.</P>
</UL>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
<P STYLE="margin-bottom: 0cm"><BR>
</P>
</BODY>
</HTML>
