<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 foundation <br>
      executive director</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> 
        Mike Milinkovich Named Eclipse's Executive Director</b></span></b></h1>
      <P>OTTAWA, CANADA - June 1, 2004 - The Eclipse Board of Directors today 
        named Mike Milinkovich executive director of the Eclipse Foundation, effective 
        June 1. Milinkovich's broad experience in business development, hands-on 
        knowledge of object-oriented technology and responsiveness to the needs 
        of the developer community led to his selection. Milinkovich previously 
        served as vice president of OracleAS Technical Services at Oracle Corporation. 
        During his more than 20 years of experience in the technology industry, 
        he demonstrated solid executive leadership, fulfilling both technical 
        and business roles.<br>
      </p>
      <P>&quot;I see my role as broadening the Eclipse open-source project and 
        continuing the rapid growth of the Eclipse ecosystem,&quot; said Mike 
        Milinkovich, executive director of Eclipse. &quot;It is my goal that Eclipse 
        continues to be a focal point for open-source innovation in the software 
        industry.&quot;<br>
      </p>
      <P>Announcing this appointment, board member Jonathan Khazam, general manager 
        of Intel Corporation's Software Products Division, said, &quot;Mike's 
        experience and leadership skills will help assure continued growth for 
        Eclipse, providing a solid basis for tools innovation within this budding 
        ecosystem. The Eclipse Board is confident Mike will do an outstanding 
        job building on the success Eclipse has seen to date.&quot;<br>
      </p>
      <P>Milinkovich's initial priorities will include the following tasks:<br>
        * Building the membership of the Eclipse Foundation and expanding the 
        ecosystem of users and contributors.<br>
        * Ensuring a successful launch of the Eclipse 3.0 release in early summer 
        2004. <br>
        * Establishing a solid foundation for the new open WebTools project, which 
        extends Eclipse to server-side Java.<br>
        * Forming the Eclipse Management Organization and supervising the requirements, 
        planning and architecture councils.</p>
      <P>His leadership will be critical to establishing, extending and implementing 
        the Eclipse roadmap and engaging with open-source projects, commercial 
        development organizations, consumers, academic and research communities, 
        standard bodies and individuals to grow the Eclipse ecosystem.<br>
      </p>
      <P>Milinkovich has held key management positions at Oracle, WebGain, The 
        Object People and Object Technology International Inc. (which subsequently 
        became a wholly-owned subsidiary of IBM), assuming responsibility for 
        development, product management, marketing, strategic planning, finance 
        and business development.<br>
      </p>
      <P>Milinkovich earned his Master of Science degree in Information and Systems 
        Sciences and a Bachelor of Commerce degree from Carleton University in 
        Ottawa, Canada.<br>
      </p>
      <P>"With constitution of our founding Board of Directors, Eclipse is now
traveling on the industry-neutral path that is critical for integration
technology," said Skip McGaughey, spokesperson for Eclipse. "This launches
the most significant step forward in the evolution of Eclipse as an
organization. For the Open Source development community we're establishing a
support base that will strengthen the projects and expand a powerful
reusable architecture. For commercial and academic users of Eclipse
technology, this means a more open management process and improved choices
in a stable and reliable environment."</p>
      <P>&nbsp; </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> Originally a consortium that formed when IBM released the Eclipse 
              platform into open source, Eclipse is now incorporated as an independent, 
              not-for-profit organization in Delaware. A vibrant open eco-system 
              has formed around royalty-free Eclipse technology, a universal development 
              platform. Eclipse technology gives developers freedom of choice 
              in a multi-language, multi-platform, multi-vendor environment. Eclipse 
              provides an award winning plug-in based framework that makes it 
              easier to create, integrate and utilize software tools, saving time 
              and money. By collaborating and exploiting core integration technology, 
              tool producers can leverage platform reuse and concentrate on core 
              competencies to create new development technology. Release distribution 
              downloads, a full description of the Eclipse community and white 
              papers documenting the design and use of the Eclipse platform, are 
              available at <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">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>
