<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> test &amp; performance tools</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> 
        Expanded Broad-Based Eclipse Initiative Delivers <br>
        Open Test and Performance Tools Platform</b></span></b></h1>
      <ul>
        <li>Major Open-Source Collaboration in Testing, Tracing, Profiling and Monitoring</li>
        <li>Cross-Vendor, Cross-Platform, Cross-Lifecycle</li>
        <li>Open Platform and Extensible Exemplary Tooling</li>
        <li>Hyades Project Builds on and Extends the Existing </li>
      </ul>
      <P>SAN FRANCISCO-August 2, 2004-Today the Eclipse Foundation announced the 
        creation of a Test and Performance Tools Platform Top Level Project to 
        provide an open-development platform supplying frameworks and services 
        for test and performance tools that are used throughout the software lifecycle 
        (testing, tracing/profiling, tuning, logging, monitoring, analysis, autonomics, 
        administration, etc.). Also included in this platform are data collection 
        services and user interfaces for tracing, test case execution, logging 
        and statistical behavior in local or remote execution environments. In 
        committing to lead the project, Intel Corporation makes a major resource 
        contribution to the Eclipse Foundation and to the development of software 
        within the project.</p>
      <P> &quot;We are excited to contribute to the advancement that this Eclipse 
        open-source initiative brings to the industry in the area of test and 
        performance tooling,&quot; said Tyler Thessin, engineering manager for 
        Intel Software Development Products and lead of the Eclipse Test and Performance 
        Tools Project Management Committee. &quot;This infrastructure--and the 
        tools built upon it--provide significant capabilities and benefits to 
        the software industry and will contribute to the continued success of 
        Eclipse and the growth of the Eclipse ecosystem.&quot;</p>
      <P>This expanded initiative extends the Eclipse Hyades project which, over 
        the last year and a half, has developed extensive Eclipse-based infrastructure 
        and tooling for test and performance. &quot;Hyades is one of the great 
        achievements of the Eclipse Community,&quot; said Mike Milinkovich, recently 
        appointed executive director of the Eclipse Foundation. &quot;In my new 
        role, I will seek to ensure Hyades gets the level of exposure and adoption 
        that it deserves.&quot;<br>
      </p>
      <P>The core interoperability layer continues to be developed in a project 
        known as the Hyades Core Platform led by Intel. Three additional streams 
        of activity have also been identified as projects within the Test and 
        Performance Top Level Project: Hyades Testing, Hyades Tracing and Profiling, 
        and Hyades Monitoring. </p>
      <P>&quot;The involvement of Intel and other significant companies will ensure 
        wider adoption of the open Hyades Core Platform as consensus architecture 
        for innovative value-added products,&quot; said Dr Mike Norman, CEO of 
        Scapa Technologies, who led the original Hyades project and now leads 
        the Hyades Testing project. &quot;For example, Intel will drive the adoption 
        of the infrastructure to enable developers to harness the full power of 
        Intel processors for applications.&quot;</p>
	<p>	
        Serge Lucio, senior product manager at IBM Rational who currently leads 
        both the Hyades Monitoring and the Hyades Tracing and Profiling Projects 
        said, &quot;IBM is committed both to developing the Hyades Core Platform 
        and other elements of Eclipse Test and Performance software and to leveraging 
        them across a broad spectrum of its products.&quot;
		</p>
      
      <P>SAP, Compuware and FOKUS continue to actively contribute to the Test 
        and Performance project to provide a breadth of experience and a wide 
        perspective to the team.</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-source 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 <a href="http://www.eclipse.org" target="_top">www.eclipse.org</a>.</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">Media 
      contact</font></b></td>
		</TR>
		</table>
		
<table width="100%" border="0" cellspacing="5">
  <tr> 
    <td> 
      <p align="center">Janice Hughes<br>
        Patterson &amp; Associates<br>
        480-488-6909<br>
        <a href="mailto:Janice@patterson.com">Janice@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>
