<html><head>
<link rel="stylesheet" href="../../default_style.css">
<title>Eclipse 3.1 Releases</title>
</head>
<meta name="keywords" content="eclipse 3.1 release">
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=left colspan="5"> <font class=indextop>Eclipse 3.1 Inside! </font><br>
      <font class=indexsub> </font></td>
    <td width="16%" td align=right rowspan="2">&nbsp;</td>
  </tr>
  <tr> 
      
    <td align=left width="30%">&nbsp;</td>
    <td align=left width="30%">&nbsp;</td>
    <td align=left width="30%">&nbsp;</td>
	  
  </tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Eclipse 
      3.1 Ready! </font></b></td>
  </tr>
  <tr> 
    <td> 
      <p><br>
        Eclipse 3.1 is available for <a href="http://download.eclipse.org/downloads/drops/R-3.1-200506271435/index.php" target="_top">download 
        now</a>! This is the latest full release version of the Eclipse Platform, 
        Eclipse RCP and the Java Development Tools (JDT). At the same time and 
        until early August, a number of Eclipse projects are planning releases 
        based on 3.1. You'll be able to take advantage of the features of both 
        Eclipse 3.1 and the latest features developed by these projects. Watch 
        this page for the release news! <br>
      </p>
    </td>
  </tr>
</table>

<table width="100%" border="0" cellpadding="1" cellspacing=2>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Eclipse 3.1</h3>
      <i><a href="http://download.eclipse.org/downloads/drops/R-3.1-200506271435/index.php" target="_top"><br>
      </a></i><a href="http://download.eclipse.org/downloads/drops/R-3.1-200506271435/index.php" target="_top"><b>Download 
      Eclipse 3.1</b></a><i><br>
      <br>
      </i><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/eclipse-news.html" target="_top">New 
      and Noteworthy</a><br>
      <br>
      <a href="http://www.eclipse.org/eclipse/" target="_top"> Platform Home</a> 
      <br>
      <br>
    </td>
    <td colspan="2"> 
      <p>The Eclipse Project is an open source software development project dedicated 
        to providing a robust, full-featured, commercial-quality, industry platform 
        for the development of highly integrated tools. It includes the Eclipse 
        Platform, Eclipse Rich Client Platform (RCP) and the Java Development 
        Tools (JDT). 
    </td>
</tr>
  <tr> 
    <td width="29%"> <strong>Watch the Screencasts</strong><br>
      <a href="screencasts/1-preferences/preferences.html">New Preferences Dialog 
      </a> [5:05] &nbsp;&nbsp; <a href="screencasts/2-ant/ant.html"><br>
      Improve ANT support</a> [5:55] <br>
      <a href="screencasts/3-userAssistance/userAssistance.html">User Assistance 
      </a>[4:08] </td>
    <td width="25%"> <a href="screencasts/4-generics/generics.html">J2SE5 Support</a> 
      [7:26] <br>
      <a href="screencasts/9-rcpWizards/rcpWizards.html"> Building an RCP Application</a>	
      [3:29]</td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Test and Performance Tools <br>
        Platform 4.0 </h3><br>
      <a href="http://www.eclipse.org/tptp/home/downloads/downloads.html"><b>Download 
      TPTP 4.0</b></a> <br>
        <br>
      <a href="http://www.eclipse.org/tptp/home/downloads/whatsnew/v400/new_and_noteworthy.html" target="_top">What's 
      New in 4.0</a><br>
        <br>
      <a href="http://www.eclipse.org/tptp/" target="_top">TPTP Home </a><br>
      <br>
      <br>
    </td>
    <td colspan="2"> 
      <p>The Eclipse Test and Performance Tools Platform (TPTP) Project provides 
        an open platform supplying powerful frameworks and services that allow 
        software developers to build unique test and performance tools&mdash;both 
        open source and commercial&mdash;that can be easily integrated with the 
        platform and with other tools. The TPTP Platform addresses the entire 
        test and performance lifecycle, from early testing to production application 
        monitoring, including test editing and execution, monitoring, tracing 
        and profiling, and log analysis capabilities. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <strong>Watch the Screencasts</strong><br>
      <a href="screencasts/whatsnew4.0_audio/Filters/Filters_viewlet_swf.html">Filters 
      </a> (2:11)<br>
      <a href="screencasts/whatsnew4.0_audio/LargeLogSupport/LargeLogSupport_viewlet_swf.html">Large 
      Log File Support</a> (2:12)<br>
      <a href="screencasts/whatsnew4.0_audio/MethodInvocationDetails/MethodInvocationDetails_viewlet_swf.html">Method 
      Invocation Details</a> (1:18)<br>
      <a href="screencasts/whatsnew4.0_audio/ProbekitEditor/ProbekitEditor_viewlet_swf.html">Probe 
      Kit Editor</a> (2:51)<br>
    </td>
    <td width="25%"><a href="screencasts/10-tptpInstallation/tptpInstallation.html">Installation 
      of TPTP</a> [3:58]&nbsp;&nbsp; <a href="screencasts/12-tptpJunit/tptpJunit.html"><br>
      JUnit Integration </a> [5:09]<br>
      <a href="screencasts/11-tptpProfile/tptpProfile.html">Profiler</a> [5:23] 
    </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Web Tools Platform 0.7</h3><br>
      <b><a href="http://download.eclipse.org/webtools/downloads/drops/R-0.7-200507290654/">Download 
      WTP 0.7</a></b><br>
      <br>
      <a href="http://www.eclipse.org/webtools/releases/0.7/whatsnew.html">What's 
      New in 0.7</a><br>
      <br>
      <a href="http://www.eclipse.org/webtools/" target="_top">WTP Home</a> 
    </td>
    <td colspan="2"> 
      <p>The Eclipse Web Tools Platform (WTP) project extends the Eclipse platform 
        with tools for developing J2EE Web applications. The WTP project includes 
        the following tools: source editors for HTML, Javascript, CSS, JSP, SQL, 
        XML, DTD, XSD, and WSDL; graphical editors for XSD and WSDL; J2EE project 
        natures, builders, and models and a J2EE navigator; a Web service wizard 
        and explorer, and WS-I Test Tools; and database access and query tools 
        and models. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <strong>Watch the Screencasts</strong> <br>
      (Release 0.7 Milestone 4 )<br>
      <a href="screencasts/5-webToolsInstallation/webToolsInstallation.html">Installation 
      and Prereq</a> [6:25]<br>
      <a href="screencasts/6-webtoolsBuildingWebApp/webtoolsBuildingWebApp.html">Building 
      a Web App</a> [8:43] <br>
    </td>
    <td width="25%"> <a href="screencasts/7-webtoolsXml/webtoolsxml.html">XML 
      Tools</a> [5:28] <a href="screencasts/8-webToolJavaBeanService/-webToolJavaBeanService.html"><br>
      JavaBean Web Service</a> [3:28] </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Business Intelligence and Reporting Tools 1.0.1</h3><br>
      <b><a href="http://download.eclipse.org/birt/downloads/build.php?build=R-R1-1_0_1-200508091640">Download 
      BIRT 1.0.1</a></b> <br>
      <br>
      <a href="http://www.eclipse.org/birt/index.php?page=project/project_plan_R1_0_1.html" target="_top">What's 
      New in 1.0.1</a><br>
      <br>
      <a href="http://www.eclipse.org/birt/" target="_top">BIRT Home</a> </td>
    <td colspan="2"> 
      <p>The Eclipse Business Intelligence and Reporting Tools Project (BIRT) 
        is an Eclipse-based open source reporting system for web applications, 
        especially those based on Java and J2EE. BIRT has two main components: 
        a report designer based on Eclipse, and a runtime component that you can 
        add to your app server. BIRT also offers a charting engine that lets you 
        add charts to your own application. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <b>Watch the flash demo</b> <br>
      <a href="http://download.eclipse.org/birt/downloads/demos/MyFirstReport.html" target="_blank">My 
      First Report</a><br>
    </td>
    <td width="25%">&nbsp; </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Visual Editor Project 1.1</h3><br>
      <a href="http://download.eclipse.org/tools/ve/downloads/drops/R-1.1-200507221721/index.html"><b>Download 
      VE 1.1</b></a> <br>
      <a href="http://www.eclipse.org/vep/WebContent/docs/newAndNoteworthy/1.1-final/vep-news-final.html"><b><br>
      New and Noteworthy</b></a> <br>
      <br>
      <a href="http://www.eclipse.org/vep/" target="_top">VE Home</a> </td>
    <td colspan="2"> 
      <p>The Eclipse Visual Editor project is a framework for creating GUI builders 
        for Eclipse. It will include reference implementations of Swing/JFC and 
        SWT GUI builders, but intends to be useful for creating GUI builders for 
        other languages such as C/C++ and alternate widget sets, including those 
        that are not supported under Java. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <strong>Watch the Screencasts</strong><br>
      <a href="http://www.eclipse.org/vep/WebContent/docs/v1.1/VE11grid.html">VE 
      1.1 / Eclipse 3.1, Grid Support</a>[5:56] <br>
      <a href="http://www.eclipse.org/vep/WebContent/docs/v1.1/VE11M2.html">Visual 
      Editor Creating an RCP GUI</a> [7:00] <br>
    </td>
    <td width="25%">&nbsp;</td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Eclipse Modeling Framework 2.1</h3><br>
      <a href="http://download.eclipse.org/tools/emf/scripts/downloads.php" target="_top">Download 
      EMF 2.1</a> <br>
      <br>
      <a href="http://eclipse.org/emf/docs.php?doc=docs/whatsnew/emf2.1.html" target="_top">What's 
      New</a><br>
      <br>
      <a href="http://www.eclipse.org/emf/" target="_top">EMF Home</a></td>
    <td colspan="2"> 
      <p>EMF is a modeling framework and code generation facility for building 
        tools and other applications based on a structured data model. From a 
        model specification described in XMI, EMF provides tools and runtime support 
        to produce a set of Java classes for the model, a set of adapter classes 
        that enable viewing and command-based editing of the model, and a basic 
        editor. <br>
        <br>
        EMF includes the XML Schema Infoset Model (XSD) project and an EMF-based 
        implementation of Service Data Objects (SDO). <br>
        <br>
        XSD is a library that provides an API for manipulating the components 
        of an XML Schema, as well as an API for manipulating the DOM-accessible 
        representation of XML Schema as a series of XML documents, and for keeping 
        these representations in agreement as schemas are modified. <br>
        <br>
        Service Data Objects (SDO) is a framework that simplifies and unifies 
        data application development in a service oriented architecture (SOA). 
        It supports and integrates XML and incorporates J2EE patterns and best 
        practices. 
    </td>
</tr>
  <tr> 
    <td width="29%"> </td>
    <td width="25%"></td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Graphical Editing Framework 3.1</h3><br>
      <a href="http://download.eclipse.org/tools/gef/downloads/drops/R-3.1-200507071758/index.php" target="_top">Download 
      GEF 3.1</a> <br>
      <br>
      <a href="http://www.eclipse.org/gef/" target="_top">GEF Home</a> </td>
    <td colspan="2"> 
      <p>The Graphical Editor Framework (GEF) allows developers to take an existing 
        application model and easily create a rich graphical editor.&nbsp;The 
        graphical environment is the SWT-based drawing plugin "draw2d" (which 
        is part of the overall "GEF" component). GEF is suitable for creating 
        a wide variety of applications, including: flow builders, GUI builders, 
        UML diagram editors (such as work-flow and class modeling diagrams), and 
        even WYSIWYG text editors like HTML. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <br>
    </td>
    <td width="25%">&nbsp; </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>UML2 1.1 </h3><br>
      <a href="http://download.eclipse.org/tools/uml2/scripts/downloads.php" target="_top">Download 
      UML2 1.1</a> <br>
      <br>
      <a href="http://download.eclipse.org/tools/uml2/scripts/news-release-notes.php?ver=1.1.0" target="_top">Release 
      Notes</a><br>
      <br>
      <a href="http://www.eclipse.org/uml2/" target="_top">UML2 Home</a> </td>
    <td colspan="2"> 
      <p>The UML2 project is an EMF-based implementation of the UML 2.0 metamodel 
        for the Eclipse platform designed to support the development of modeling 
        tools. Further objectives of the UML2 project are to provide a common 
        XMI schema to facilitate interchange of semantic models, test cases as 
        a means of validating the specification, and validation rules as a means 
        of defining and enforcing levels of compliance. For more details see <a href="http://dev.eclipse.org/viewcvs/indextools.cgi/%7Echeckout%7E/uml2-home/docs/articles/Getting_Started_with_UML2/article.html" target="_top">Getting 
        Started with UML2</a>.
    </td>
</tr>
  <tr> 
    <td width="29%"> <br>
    </td>
    <td width="25%">&nbsp; </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>AspectJ 5.0 </h3><br>
      <i>Download available soon!</i><br>
      <br>
      <a href="http://www.eclipse.org/aspectj/" target="_top">AspectJ Home</a> 
    </td>
    <td colspan="2"> 
      <p>AspectJ is a seamless aspect-oriented language extension to Java. It 
        can be used to cleanly modularize the crosscutting structure of concerns 
        such as exception handling, multi-object protocols, synchronization, performance 
        optimizations, and resource sharing. When implemented in a non-aspect-oriented 
        fashion, the code for these concerns typically becomes spread out across 
        entire programs. AspectJ controls such code-tangling and makes the underlying 
        concerns more apparent, making programs easier to develop and maintain. 
        The project goal is to support the AspectJ compiler and core tools. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <br>
    </td>
    <td width="25%">&nbsp; </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
<tr>
    <td width="46%" rowspan="2"> 
      <h3>Eclipse Communication <br>
        Framework 0.3.3</h3>
      <br>
      <a href="http://www.eclipse.org/ecf/downloads.html" target="_top">Download 
      ECF 0.3.3!</a> <br>
      <br>
      <a href="http://www.eclipse.org/ecf/" target="_top">ECF Home</a> 
    </td>
    <td colspan="2"> 
      <p>The Eclipse Communication Framework (ECF) is a project to enable the 
        creation of communications applications on the Eclipse Platform. The framework 
        provides APIs for secure asynchronous and synchronous messaging to deliver 
        human-to-human, human-to-plugin, and plugin-to-plugin communications and 
        collaboration. 
    </td>
</tr>
  <tr> 
    <td width="29%"> <br>
    </td>
    <td width="25%">&nbsp; </td>
  </tr>
<tr><td colspan="3"><hr></td>
</tr>
</table>


<p>&nbsp;</p>	
<p>&nbsp;</p> 
For problems with the eclipse.org site, please contact the <a href="mailto:webmaster@eclipse.org">webmaster</a> 
or read the <a href="/webmaster/index.html">webmaster FAQ</a> for answers to common 
questions!
<p>&nbsp;</p>
</body></html>
