<?xml version='1.0' encoding='iso-8859-1'?>
<project>
  <!--
     - This example is annotated to be instructive. 
     - Check http://www.eclipse.org/projects/dev_process/project-status-infrastructure-page2.php
     - for more information.
     
    -->
  <!--
     - Unless otherwise specified, all URLs are to be specified using rooted relative
     - paths. In other words:
     -    CORRECT: "/webtools/foo/bar.php"
     -    INCORRECT: "foo/bar.php"
     -    INCORRECT: "http://www.eclipse.org/webtools/foo/bar.php"
    -->
  
   <name>BPEL Designer Project</name>
  
  <!--
     - Each Eclipse project as an official name, e.g., 
     - "AJDT - AspectJ Development Tools Project" and a foundation database 
     - key, e.g., "technology.ajdt". These are stored in an Eclipse Foundation
     - database; to change them, contact emo@eclipse.org.  Each project can
     - also have a short name to be used in HTML lists and other horizontally
     - challenged places.
     -
     - Set it to your short name.
    -->
  <short-name>BPEL</short-name>
  
  <!--
     - Each Eclipse project has one or more Bugzilla products and components.
     - Some projects also have a separate web page describing how to submit
     - a bug, how bugs are prioritized, and other useful information.
     - The <bugzilla> collects this information.
     - 
     - <bugzilla url="..."> <product name="..."/> ... </bugzilla>
     - The url is optional; if absent, the url will default to the Bugzilla
     - page of the first product. Multiple <product>s are allowed.
     -
     -
     - Please add all your Bugzilla Products
    -->
    
   
  <bugzilla>
      <product name="BPEL"/>
  </bugzilla>

  <!--
     - Committers and non-committer Contributors are the raison d'etre of 
     - an Eclipse project, thus each project should list and acknowledge these
     - developers. Some of the Committers are 'special' in the sense that
     - they are the project leaders.  The <team> element contains the 
     - URL of the project's pages listing these important people.
     -
     - Please add the relative URL 
    -->
  <team url="/bpel/team.php"/>
  
  <!--
     - The source code of each Eclipse project is stored in CVS. Eclipse maintains
     - a number of CVS repositories, thus the <cvs> element specifies which
     - CVS repository and (if applicable) which root path stores this project's
     - source code.
     -
     - A top-level project typically specifies only the repository:
     -     <cvs repository="/cvsroot/tptp"/>
     - A sub-project includes the root path as well:
     -     <cvs repository="/cvsroot/technology/">
     -       <module path="org.eclipse.higgins" />
     -     </cvs>
	 -
     - Please add the relative URL to your repository, and all your CVS modules 
	 -     
    -->
  <cvs repository="/gitroot/bpel">
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.common.model"/>
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.common.ui"/>
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.model"/>
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.ui"/>
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.validator"/>
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.wsil"/>
     <module path="org.eclipse.bpel/plugins/org.eclipse.bpel.runtimes"/>
     <module path="org.eclipse.bpel/features/org.eclipse.bpel.site"/>
     <module path="org.eclipse.bpel/features/org.eclipse.bpel.releng"/>
  </cvs>

  <!--
     - The description of an Eclipse project shows up in many places: the
     - project's home page, perhaps the /projects/ page listing all the
     - top-level projects, in the Roadmap, and so on. Some of the descriptions
     - are separate HTML files (such as those described in 
     - http://phoenix.eclipse.org/projects/dev_process/project-status-infrastructure.php).
     - It would be nice 
     - This <description> element contains two additional descriptions.
     -    1. The optional <description url="..."> points to a web page with a larger
     -       description of the entire project. 
     -    2. The required <description paragraph-url="..."> points to a file
     -       containing a couple of simple HTML paragraphs describing the project. 
     -       This file is often stored in the /project-info/ directory, thus the
     -       url would be something like "/tptp/project-info/description.html".
     -
     - Please provide the URL of the project description paragraph in paragraph-url, optionally provide the URL
     - page with a larger description. Remember, use relative paths
    -->
  <description url="/bpel/index.php"
     paragraph-url="/bpel/project-info/project-page-paragraph.html"/>
  
  <!--
     - In addition to the description, each Eclipse project is also required to
     - provide an up-to-date status summary. "Up to date" means revised at least
     - quarterly. 
     - The required <summary paragraph-url="..."> points to a file
     - containing a number of simple HTML paragraphs with an executive summary
     - of the project status.
     - This file is often stored in the /project-info/ directory, thus the
     - url would be something like "/technology/project-info/executive-summary.html".
     -
     -
     - Please provide the URL of the project summary paragraph
    -->
  <summary paragraph-url="/bpel/project-info/executive-summary.html"/>

  <!--
     - It is important to help new users get started with an Eclipse project
     - because most Eclipse projects are solving some difficult technical
     - problem and thus are somewhat complex. The <getting-started> element
     - points to a web page on the project's site that describes how to
     - get started using and extending the project's tools and frameworks.
     -
     -
     - Please provide the URL of the project getting started guide     
    -->
  <getting-started url="/bpel/users.php"/>
  
  <!--
     - It is also important to help new contributors get started with an Eclipse project.
     - Most Eclipse projects have interesting/complex development environment
     - setups or to-do lists. The <contributing> element
     - points to a web page on the project's site that describes how to
     - get started developing on, and contributing to, the project.
     -
     - Please provide the URL of the project getting started guide     
    -->
  <contributing url="/bpel/developers.php"/>
  
  <!--
     - Each Eclipse project is required to maintain a current Project IP Log.
     - See http://www.eclipse.org/projects/dev_process/project-log.php
     - The <ip-log> contains the URL of that log.  If the project has
     - other legal information as well, it can use the <legal> element
     - instead and then include the IP Log information on the Legal web page.
    -->
  <ip-log url="/bpel/ip-log.php"/> 
  <legal url=""/> 

  <!--
     - Each Eclipse project has one or more mailing lists.
     - Some projects also have a separate web page describing these lists
     - while others rely on the main Eclipse mailing lists page.
     - 
     - <mailing-lists url="..."> <list name="..."/> ... </mailing-lists>
     - The url is optional; if absent, the url will default to the Eclipse
     - mailing lists page. Multiple <lists>s are allowed.
     -
     - Note that currently mailing lists must be redundantly listed in
     - the separate project-info/maillist file as well.
     -
    -->
  <mailing-lists>
   <list name="bpel-dev">General discussion of project-wide architectural issues.</list>
  </mailing-lists>
  
  <!--
     - Each Eclipse project has one or more newsgroups.
     - Some projects also have a separate web page describing these lists
     - while others rely on the main Eclipse newsgroups page.
     - 
     - <newsgroups url="..."> <newsgroup name="..."/> ... </newsgroups>
     - The url is optional; if absent, the url will default to the Eclipse
     - newsgroups page. Multiple <newsgroups>s are allowed.
    -->
  <newsgroups>
    <newsgroup name="eclipse.doa.bpel-designer">General discussions on BPEL designer project.</newsgroup>  
  </newsgroups>
  
  <!--
     - The dashboard attempts to measure the liveness of a project in many
     - ways including the traffic on the mailing lists and newsgroups. There
     - are other places where significant project-related traffic can occur
     - including blogs and articles. When listed here, the dashboard incorporates
     - them into the liveness measure (or rather, "will incorporate").
    -->
  <articles/>
  
  <blogs/>
  
  <!--
     - Each Eclipse project needs to have a plan both for its internal purposes
     - (to guide development and resource allocation) and for the larger Eclipse
     - community and ecosystem to understand what will be delivered and when
     - it will be delivered.
    -->
  <project-plan url=""/>

  <!--
     - Each Eclipse project creates (optional) nightly builds and milestone builds,
     - but the important builds of a project are the releases. This section of the
     - status file records the completed (past) and scheduled (future) releases of
     - the project. 
     - The status, name, and date are required attributes. The download is optional
     - and only valid for completed releases; the plan is optional and valid for
     - all releases.  The three valid types of releases are, in order of ascending 
     - uncertainity: "completed", "scheduled", and "tentative".  Dates can be
     - specified as particular day DD/MM/YYYY (e.g., 22/03/2005) or a particular
     - month MM/YYYY (e.g., 10/2005), or a quarter NQYYYY (e.g., 3Q2005). Obviously
     - completed releases should include the exact day the release was completed.
     -
     - In the following example, we have three completed, two scheduled, and one 
     - tentative release.
    -->
  <releases>
     <release 
       status="completed"
       name="0.0.1"
       date="05/2005"
       download="/bpel/downloads.php"
       plan="/bpel/users/m1.php" />       
     <release 
       status="completed"
       name="0.2.0"
       date="21/12/2006"
       download="/bpel/downloads.php"
       plan="/bpel/users/m2.php"
      />  
      <release 
       status="completed"
       name="0.3.0"
       date="8/24/2007"
       download="/bpel/downloads.php"
       plan="/bpel/users/m3.php"
      /> 
    <release 
       status="scheduled"
       name="0.4.0"
       date="10/2007" />         
  </releases>
  
   <source>
   </source>
</project>
			