<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> Scapa Technologies</font><br>
      <font class=indexsub>&nbsp; </font></td>
    <td width="28%"><img src="../org-images/scapatechlogo.gif" width="91" height="141"></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> Scapa Technologies Becomes an Eclipse Strategic Developer and Joins Board of Directors</b></span></b></h1>
        <p><strong>EDINBURGH, UK&mdash;February 7, 2005</strong> &ndash; The Eclipse Foundation, a community committed to the implementation of a universal platform for tools integration, and Scapa Technologies Limited, an independent vendor of application performance testing, diagnosis and monitoring software, today announced that Scapa Technologies has become a Strategic Developer with the Eclipse Foundation. In addition, Dr. Michael Norman, Scapa Technologies&rsquo; CEO joins representatives from existing Strategic Developers, IBM Corporation, Intel, QNX Software Systems Limited and Actuate, as an Eclipse Foundation Board Member.</p>
        <p>Scapa Technologies joined the original Eclipse consortium in June 2002 and was represented by Dr. Michael Norman on the original Eclipse Board of Stewards. Dr. Norman was instrumental in forming an innovative Eclipse Tools Project focused on testing and performance. From its launch in December 2002, Dr. Norman led the new Eclipse Hyades Tools Project until it was restructured as the Eclipse Test and Performance Tools Platform (TPTP) Project in August 2004. Dr. Norman now leads the Testing Tools Project within TPTP.</p>
        <p>&ldquo;We are delighted to welcome Scapa Technologies as an Eclipse Strategic Developer &ldquo;, said Mike Milinkovich, executive director of the Eclipse Foundation Inc. &ldquo;Scapa Technologies has been a committed member of the Eclipse community for some years. Their contribution and leadership to starting the Eclipse Hyades Tools Project was the springboard to the continued growth and success of the Eclipse TPTP Project.&quot;<br>
        </p>
        <p>Released in December 2004, Scapa Test and Performance Platform 3.1, Scapa Technologies&rsquo; application performance testing, diagnosis and monitoring software is based on the Eclipse Test and Performance Tools Platform. &ldquo;The entire team at Scapa Technologies is enthusiastic about our contribution to the Eclipse ecosystem,&rdquo; commented Dr. Michael Norman. &ldquo;Developing on Eclipse means that we can focus on providing really innovative software that benefits not only our customers, but the IT industry as a whole.&rdquo; </p>
        <p align="center">###<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 the Eclipse Foundation</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, 
              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, HP-UX, AIX, Solaris, 
              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">About Scapa Technologies</font></b></td>
		</TR>
		<TR>
		<td align=left>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		  <td> 
            <P> Founded in 1998, Scapa Technologies is a privately held, venture-backed, independent software vendor based in Edinburgh, UK. Scapa Technologies develops application performance testing, diagnosis and monitoring technology applicable across a wide range of commercial software technologies at multiple points in the software lifecycle. Working with its distribution and reseller partners worldwide across industry vertical sectors, Scapa Technologies helps organisations remain productive and competitive by ensuring the performance of their IT systems. Scapa Test and Performance Platform 3.1 is based on the Eclipse Test and Performance Platform (www.eclipse.org/test-and-performance/) to which Scapa Technologies has made significant contributions. For more information, visit the company website at <a href="http://www.scapatech.com" target="_blank">www.scapatech.com</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 > 
      <div align="center">
        <p>Media Contact:<br>
          Melanie Woods<br>
          Scapa Technologies<br>
          +44 131 652 3939<br>
        melanie.woods@scapatech.com</p>
        <p>For Eclipse Foundation<br>
		Chantal Yang<br>
          Schwartz Communications<br>
          +1 781-684-0770<br>
          eclipse@schwartz-pr.com</p>
      </div>
    </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>
