<html><head>
<link rel="stylesheet" href="../../default_style.css">
<title>Eclipse Foundation</title></head>
<body text="#000000" bgcolor="#ffffff" link="#0000ee" vlink="#551a8b" alink="#ff0000">
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=left width="72%"> <font class=indextop> eclipse 3.0</font><br>
      <font class=indexsub>&nbsp; </font></td>
    <td width="28%"><img src="../../images/Idea.jpg" height=86 width=120></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">Press release</font></b></td>
  </tr>
  <tr> 
    <td> <br>
      <h1 ALIGN="CENTER"><b><span style='font-size:16.0pt;font-family:Arial;"Times New Roman"'><b> 
        Eclipse 3.0 Delivers Universal Platform for <br>
        Application Construction </b></span></b></h1>
      <ul>
        <li>Expands Support for Award Winning Java Tools Integration</li>
        <li>New User Interface Integration Helps Tool Providers Migrate Swing-Based 
          Offerings to Eclipse</li>
        <li>CDT and Hyades Projects Enhance Capabilities </li>
      </ul>
      <P>OTTAWA, ONTARIO, CANADA - June 21, 2004 - Today the Eclipse Foundation 
        announced general availability of the royalty-free 3.0 release of the 
        Eclipse Platform, adding enhancements that improve flexibility, scalability, 
        interoperability and responsiveness. Eclipse is an award-winning universal 
        platform for tools integration, software modeling and testing that has 
        been broadly adopted by commercial vendors, academic institutions and 
        open technology developers. With release 3.0, Eclipse now extends its 
        sophisticated object-oriented development technologies to support a rich-client 
        platform (RCP) that enables construction of desktop applications.</p>
      <P>
        &quot;Eclipse has come a long way in its short history. It has done well 
        to attract a steady, but rapidly growing following from many organizations 
        who want a quality backed development platform that has broad and unifying 
        support within the software industry,&quot; said Bola Rotibi, senior analyst 
        of Software Development at Ovum. &quot;These timely new enhancements demonstrate 
        the commitment the organization has to providing an effective, scalable 
        and open-sourced development environment-not only for Java J2EE, but also 
        encompassing other language environments, notably C/C++. Clearly, any 
        enhancements to the power and flexibility of the environment will be a 
        bonus to those committed, to or looking to commit, to Eclipse.&quot; </p>
      <P>Eclipse 3.0 is the cumulative result of 15 months of project investment 
        by supporting members and the Eclipse community, continuing the commitment 
        to implement open technology built upon established industry standards. 
        Enhancements such as the following have been made to core facilities to 
        help make Eclipse use more convenient, consistent and responsive: <br>
      </p>
      <ul>
        <li>Enhanced the end user's 'out-of-the-box' experience </li>
        <li>Streamlined installation for functionally powerful features with reduced 
          complexity </li>
        <li>Improved customization of menus and toolbars </li>
        <li>Added new role and experience-based approaches for managing workbench 
          features and facilities </li>
        <li>Restructured the workbench to allow running underlying program facilities 
          in the background in a multi-threaded environment. </li>
      </ul>
      <P>"Eclipse 3.0 brings new features which will delight plug-in and application 
        developers that rely on this advanced platform," said Mike Milinkovich, 
        executive director of the Eclipse Foundation. "Thanks to community support 
        only possible in an open environment, Eclipse 3.0 quality benefits from 
        the skill and continuous evaluation of a large number of industry professionals 
        worldwide." <br>
      </p>
      <P>Concurrent with this new release, the C/C++ Development Tools (CDT) project 
        and the Hyades application verification and optimization project are shipping 
        new versions. <br>
      </p>
      <P>Eclipse was originally conceived as a universal platform for tools integration. 
        Experience and feedback from users made it clear that Eclipse was also 
        ideally suited for the construction of functionally-rich desktop applications. 
        Features and facets that have been used as the core of Eclipse's sophisticated 
        object-oriented development technologies have been restructured and repackaged 
        in 3.0, making Eclipse an open, extensible platform for application construction 
        and integration. This includes Eclipse's window-based workbench GUI, the 
        dynamic plug-in functional extension mechanism, help subsystem and update 
        manager. </p>
      <P>When Java applications are constructed with Eclipse's Standard Widget 
        Toolkit (SWT) and deployed to different operating platforms, they adopt 
        native window manager look and feel. On Linux Motif or the GTK, Microsoft 
        Windows, Mac OS X, Photon, AIX, HP/UX platforms, and other supported platforms, 
        Eclipse users can develop applications in Java with the true look-and-feel 
        of the platform. </p>
      <P>When used on the Linux and Windows platforms, Eclipse 3.0 adds the ability 
        to embed Swing widgets in SWT-based user interfaces. This allows integration 
        of Swing-based applications and tools within the Eclipse workbench and 
        other functionally-rich applications. New features allow Eclipse plug-in 
        providers to customize user interfaces and establish a branded appearance 
        for products and applications. </p>
      <P>The Java Development Tools (JDT) project has improved the user experiences 
        of reading, writing and navigating source code, adding improved refactoring, 
        code formatting and editor features such as code folding. JDT has been 
        generalized to enable tools that support Java-related languages like SQLj 
        and JSPs. This includes implementation of the Java Community Process JSR45 
        standard for debugging. JDT also now embraces non-language files like 
        manifests and J2EE deployment descriptors that reference Java language 
        elements. </p>
      <P>Eclipse was adapted to add support for the OSGi (<a href="http://www.osgi.org" target="_blank">www.osgi.org</a>) 
        framework specification when constructing functionally extensible applications. 
        This open standard for plug-in extensions supports installation and dynamic 
        activation under program control, permitting fine-grain conservation of 
        resources like memory in complex integrated tools and client environments. 
        In addition, the Eclipse Plug-in Development Environment now supports 
        component integration for platforms that incorporate very large numbers 
        of plug-ins. <br>
      </p>
      <p><b>CDT and Hyades Project Updates </b></p>
      <p>Other Eclipse-hosted open projects have coordinated their distributions 
        with the 3.0 launch. These include extensions to the C/C++ Development 
        Tools and the Hyades Project's implementation of the recently approved 
        OMG U2TP Test Profile standard. </p>
      <p>The C/C++ Development Tools (CDT) offer numerous enhancements to provide 
        a faster, more productive user experience. To simplify code editing and 
        navigation, the tools now include improved string searches, configurable 
        code completion, a C/C++ class browser and a refactoring facility for 
        automating code changes across an entire project. To speed application 
        debugging, the debugger now presents both source code and assembly in 
        the same view. To free developers from writing and maintaining makefiles, 
        the CDT environment now includes a "managed build" feature. </p>
      <p>In addition, the CDT leverages the new multi-threading support in Eclipse 
        3.0. As a result, operations such as indexing and building can now run 
        in the background, allowing the developer to continue working on other 
        tasks. </p>
      <p>Other new features include improved interfacing with modeling tools, 
        support for national languages through I18N-style internationalization 
        and new API documentation that makes it easier for tool providers to incorporate 
        CDT technology into their offerings. </p>
      <p>Hyades 3.0 provides an integration framework and extensible core tools 
        for application verification and optimization. Technology in the framework 
        includes testing, tracing, profiling, logging and monitoring application 
        systems. This project extends Eclipse to span the entire project lifecycle 
        from development and deployment through production and monitoring. Hyades 
        includes an Eclipse Modeling Framework (EMF)-based implementation of data 
        models for trace, log, statistical data, test execution history and tests 
        as well as sample test execution engines for JUnit, HTTP URL and manual 
        testing environments; statistical performance data collection agents for 
        Microsoft environments; Apache log collection agents; Java trace agents 
        and Java probe insertion kits. An integrated extensible framework of generic 
        interoperable data model editors and viewers is also provided.</p>
      <p> <b>Availability </b></p>
      <p>Distributions of Eclipse 3.0 will be available by June 30 for download 
        from <a href="http://www.eclipse.org" target="_blank">http://www.eclipse.org</a>. 
        <br>
      </p>
    </td>
  </tr>
  </table>
<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
		
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">About 
      Eclipse</font></b></td>
		</TR>
		<TR>
		<td align=left>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		  <td> 
            <P> The Eclipse Foundation is a not-for-profit member-supported corporation 
              that hosts community based open projects. Eclipse creates royalty-free 
              technology and a universal platform for development tools integration, 
              modeling, testing and functionally-rich application construction. 
              Eclipse based offerings give developers freedom of choice in a multi-language, 
              multi-platform, multi-vendor supported environment. Eclipse delivers 
              a dynamic plug-in based framework that makes it easier to create 
              and integrate technology, saving time and money. By collaborating 
              and sharing core integration technology, technology providers can 
              concentrate and focus on areas of expertise and differentiation. 
              The Eclipse Platform is written in the Java language and comes with 
              extensive plug-in construction toolkits and examples. It has already 
              been deployed on a range of development workstations including Linux, 
              QNX, Mac OS X and Windows-based systems. Full details of the Eclipse 
              Foundation and white papers documenting the design of the Eclipse 
              Platform are available at www.eclipse.org.<a href="http://www.eclipse.org" target="_blank">http://www.eclipse.org</a>.<br>
            </p>
            </td>
		</tr>
        </table></table>&nbsp;
	<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">From 
      the eclipse community</font></b></td>
		</TR>
		</table>
		
<table width="100%" border="0" cellspacing="5">
  <tr> 
    <td> 
      <p>IBM - Lee Nackman, vice president, Desktop Development Tools and CTO 
        Rational Software, IBM Software Group <br>
        "We are very excited about the many benefits that Eclipse 3.0 will bring 
        to our customers and are proud of the leading role IBM developers have 
        had in bringing it to the industry. IBM is now working towards a release 
        of Eclipse 3.0-based products of our market-leading Rational tools and 
        Lotus collaboration solutions." </p>
      <p>Intel - Jonathan Khazam, General Manager of Intel Software Development 
        Products <br>
        "Eclipse 3.0 brings significant new features and functionality to the 
        Eclipse ecosystem. Intel is actively developing versions of Intel Compilers 
        and VTune Performance Analyzers with Eclipse integration for Linux. Intel 
        is also taking an active role in Eclipse projects such as Hyades and looks 
        forward to continued involvement with the Eclipse community." </p>
      <p>Exadel - Fima Katz, president and CEO <br>
        "Exadel is excited about the new 3.0 Eclipse Platform for delivering its 
        own Professional Tools for Open Source. The improved built-in Java IDE 
        and user interface deliver enhanced value to our customers while the greatly 
        improved Eclipse plug-in development environment makes it much easier 
        for us to serve our customers better by expediting the process of improving 
        our existing tools and creating new ones." </p>
      <p>Genuitec - Maher Masri, president <br>
        "Eclipse provides a phenomenal platform for building world-class development 
        tools and lowers the barriers for companies and individuals to enter new 
        markets and offer competitive products. Eclipse 3.0 extends the platform 
        for developing rich-client applications and reclaims Java as an effective 
        solution for the desktop." </p>
      <p>Instantiations Inc. - Michael Taylor, CEO <br>
        "The new Eclipse 3.0 release is a major step forward for the industry. 
        As an enterprise software tools provider and Eclipse foundation member, 
        Instantiations is fully supporting Eclipse 3.0. Our strategic products, 
        CodePro Studio and WindowBuilder Pro, are ready to run on Eclipse 3.0 
        today. Our customers will be assured that they will have the most robust 
        and productive tool-sets to use in creating enterprise-scale Java applications 
        and rich-client user interfaces." </p>
      <p>INNOOPRACT - Jochen Krause, president <br>
        "Eclipse 3.0 has been eagerly awaited by INNOOPRACT and our customers. 
        The additional improvements such as the new welcome, the help system, 
        the refactoring API as well as dozens more improvements serve to cement 
        Eclipse as the leading development platform. Our W4T Eclipse plug-in will 
        leverage these benefits to enhance the web development capabilities for 
        Eclipse users." </p>
      <p>Kinzan - Garland Wong, president <br>
        "We believe that this new release further solidifies Eclipse's reputation 
        as the most powerful and extensible IDE for Java development and we will 
        be updating Kinzan Studio, our plug-in for rapidly assembling flexible 
        web applications, to take full advantage of its new capabilities." </p>
      <p>Novell - Chris Cooper, Director of Developer Services <br>
        "Eclipse is central to Novell's Developer Tools strategy. With version 
        3.0 developers enjoy the same robust features for native C/C++ on Linux 
        that they've enjoyed for Java development. Novell will ship Eclipse 3.0 
        with SUSE LINUX server and desktop offerings. Eclipse continues to be 
        a key component to Novell's strategy to grow the Linux developer community 
        and bring mainstream developers to the platform. Novell is also leveraging 
        the Eclipse Platform to deliver next-generation developer tools for our 
        identity management, portal and web application development offerings." 
      </p>
      <p>Scapa Technologies - Michael Norman, CEO <br>
        "Scapa Technologies has made a substantial contribution to the Eclipse 
        3.0 code base, in particular in the test, performance analysis and monitoring 
        tools area, through its development of the Hyades StatCon (statistical 
        console) module and Perfmon agent. We see these as major features in Eclipse 
        3.0 and also as integration points that we will leverage to add significant 
        value to future releases of our performance analysis solutions."</p>
      <p> Serena Software - Boris Kapitanski, Vice President of Strategic Technology 
        <br>
        &quot;As a founding member of Eclipse, Serena Software is enthusiastic 
        about the latest release of Eclipse 3.0. With Serena's integrated Enterprise 
        Change Management suite and the flexibility, scalability and responsiveness 
        improvements in Eclipse 3.0, we will be able to offer a solution to manage 
        and control application development that is more reliable and efficient 
        in delivering quality applications.&quot; </p>
      <p>SlickEdit - Bob Bradley, vice president of Sales and Business Development 
        <br>
        "SlickEdit remains dedicated to supporting Eclipse and is very excited 
        about the advancements Eclipse 3.0 will provide to the developer community. 
        The Visual SlickEdit plug-in for Eclipse 3.0 will be generally available 
        for sale in late July and will continue to be a best-in-class editor plug-in 
        by incorporating many new advanced editing features, enabling Eclipse 
        developers to write more code faster and more accurately." </p>
      <p>Tensilica - Chris Songer, director of platform engineering<br>
        "CDT quality and features have been on a tremendous growth curve. The 
        3.0 release is going to be outstanding and we are already committed to 
        basing a future version of Xtensa Xplorer on it." <br>
      </p>
    </td>
  </tr>
</table>
	<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Media 
      contact</font></b></td>
		</TR>
		</table>
		
<table width="100%" border="0" cellspacing="5">
  <tr> 
    <td> 
      <p align="center">Barbara Stewart<br>
        Patterson &amp; Associates<br>
        480-488-6909<br>
        <a href="mailto:barbara@patterson.com">barbara@patterson.com</a></p>
    </td>
  </tr>
</table>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		  <td> 
            <hr width="85%">
      <P>Brand or product names are registered trademarks or trademarks of their 
        respective holders. Java and all Java-based trademarks are trademarks 
        or registered trademarks of Sun Microsystems, Inc. in the United States 
        and other countries.<br>
      </P>
<hr width="85%">
    </td>
		</tr>
        </table>&nbsp;        
&nbsp;
</body></html>
