<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License. 
-->
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" href="../style/bootstrap-1-3-0-min.css" type="text/css" />
  <link rel="stylesheet" href="../style/style.css" type="text/css" />
        <title>jUDDI
 - Apache Incubator</title>
  
 </head>
 <body>
 <div class="container">
  <div class="row">
<div class="span12">
  <a href="http://www.apache.org/"><img src="http://incubator.apache.org/images/asf_logo_wide_small.png" alt="The Apache Software Foundation" border="0" style="margin-top: 2px" width="62%"/></a>
</div>
<div class="span4">
<a href="http://incubator.apache.org/"><img src="../images/egg-logo2.png" alt="Apache Incubator" border="0"/></a>
</div>
</div>
  <div class="row"><div class="span16"><hr noshade="noshade" size="1"/></div></div>
  
  <div class="row">
   <div class="span4">
    <form action="http://www.google.com/search" method="get">
     <input value="incubator.apache.org" name="sitesearch" type="hidden"/>
     <input size="20" name="q" id="query" type="text" value="search..."
      onclick="if(this.value == 'search...') {this.value = ''}"/>
     <input name="Search" value="Go" type="submit"/>
    </form>
          <div class="menuheader">General</div>
    <menu compact="compact">
          <li><a href="../index.html">Welcome</a></li> 
          <li><a href="../incubation/Process_Description.html">Incubation Overview</a></li> 
          <li><a href="../incubation/Incubation_Policy.html">Incubation Policy</a></li> 
          <li><a href="../guides/index.html">Incubation Guides</a></li> 
          <li><a href="../incubation/Roles_and_Responsibilities.html">Roles and Responsibilities</a></li> 
          <li><a href="../faq.html">General FAQ</a></li> 
          <li><a href="http://wiki.apache.org/incubator">Incubator Wiki</a></li> 
          <li><a href="../whoweare.html">Who We Are</a></li> 
          <li><a href="../sitemap.html">Site Map</a></li> 
            </menu>
      <div class="menuheader">Status</div>
    <menu compact="compact">
          <li><a href="../projects/index.html">Project List</a></li> 
          <li><a href="../clutch.html">Clutch Report</a></li> 
          <li><a href="../ip-clearance/index.html">IP Clearance</a></li> 
          <li><a href="../history/index.html">Incubator History</a></li> 
            </menu>
      <div class="menuheader">Entry Guides</div>
    <menu compact="compact">
          <li><a href="../guides/proposal.html">Proposal Guide</a></li> 
            </menu>
      <div class="menuheader">Podling Guides</div>
    <menu compact="compact">
          <li><a href="../guides/committer.html">Podling Committers</a></li> 
          <li><a href="../guides/ppmc.html">Podling PMC (PPMC)</a></li> 
          <li><a href="../guides/mentor.html">Podling Mentor</a></li> 
          <li><a href="../guides/releasemanagement.html">Podling Releases</a></li> 
          <li><a href="../guides/branding.html">Podling Branding/Publicity</a></li> 
          <li><a href="../guides/sites.html">Podling Websites</a></li> 
          <li><a href="../guides/graduation.html">Graduation</a></li> 
          <li><a href="../guides/retirement.html">Retirement</a></li> 
            </menu>
      <div class="menuheader">Other Guides</div>
    <menu compact="compact">
          <li><a href="../guides/participation.html">Participation</a></li> 
          <li><a href="../faq.html">General FAQ</a></li> 
          <li><a href="../guides/pmc.html">Incubator PMC (IPMC)</a></li> 
          <li><a href="../guides/chair.html">IPMC Chair</a></li> 
          <li><a href="../guides/lists.html">Mailing Lists</a></li> 
          <li><a href="../guides/website.html">Incubator Website</a></li> 
            </menu>
      <div class="menuheader">ASF</div>
    <menu compact="compact">
          <li><a href="http://www.apache.org/foundation/how-it-works.html">How Apache Works</a></li> 
          <li><a href="http://www.apache.org/dev/">Developer Documentation</a></li> 
          <li><a href="http://www.apache.org/foundation/">Foundation</a></li> 
          <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a></li> 
          <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> 
            </menu>
    <!-- start Ads Server -->
    <iframe src="http://www.apache.org/ads/buttonbar.html"
     style="border-width:0; float: left" frameborder="0" scrolling="no"
     width="135" height="265"></iframe>
    <!-- end Ads Server -->
   </div>
   
   <div class="span12">
            <h2 id='jUDDI+Project+Incubation+Status'><img src="../images/redarrow.gif" />jUDDI Project Incubation Status
</h2>
<div class="section-content">
<p>jUDDI graduated from the Apache Incubator in March, 2004 and is now a top level project (TLP) at Apache.  For the latest information about jUDDI project please visit <a href="http://juddi.apache.org/">http://juddi.apache.org/</a>
</p>
<p><strong>THIS WEBSITE IS NO LONGER MAINTAINED! 
</strong>  
</p>
<p><span class="graduated">The jUDDI project graduated in 2004-03</span></p>
</div>
        <h2 id='Project+Website'><img src="../images/redarrow.gif" />Project Website
</h2>
<div class="section-content">
<p>The website for jUDDI is at

        <a href="http://juddi.apache.org/">http://juddi.apache.org/
</a>
      </p>
</div>
        <h2 id='Identify+the+project+to+be+incubated'><img src="../images/redarrow.gif" />Identify the project to be incubated
</h2>
<div class="section-content">
<p>Make sure that the requested project name does not already exist and
check www.nameprotect.com to be sure that the name is not already
trademarked for an existing software product.
</p>
<p>On 22-Dec-2003 we used the free online search form available at
www.nameprotect.com. No trademark conflicts were found for the name
"jUDDI' in the US or Canada. The domain name 'juddi.org' is currently
owned by a jUDDI committer (Steve Viens).
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>If request from an existing Apache project to adopt an external
package, then ask the Apache project for the cvs module and mail
address names.
</p>
<p>An Apache cvs (now svn) module is in place and the jUDDI source has been
imported. Source can be viewed via ViewCVS at the following URL:
</p>
<p>
        <a href="http://svn.apache.org/viewcvs.cgi/juddi/">http://svn.apache.org/viewcvs.cgi/juddi/
</a>
      </p>
<p>
        <strong>DONE
</strong>
      </p>
<p>The mailing lists dev@juddi.apache.org and
user@juddi.apache.org have been created and are being archived at 
Apache. All history for these lists from when they were
hosted on SourceForge.net have been imported into the archives at
both Apache.
</p>
<table class="colortable" width="100%">
        <tr>
          <th>List
</th>
          <th>Archive
</th>
          <th>URL
</th>
        </tr>
        <tr>
          <td>juddi-dev
</td>
          <td>Apache
</td>
          <td>
            <a href="http://mail-archives.apache.org/mod_mbox/juddi-dev/">http://mail-archives.apache.org/mod_mbox/juddi-dev/
</a>
          </td>
        </tr>
        <tr>
          <td>juddi-user
</td>
          <td>Apache
</td>
          <td>
            <a href="http://mail-archives.apache.org/mod_mbox/juddi-user/">http://mail-archives.apache.org/mod_mbox/juddi-user/
</a>
          </td>
        </tr>
      </table>
<p>
        <strong>DONE
</strong>
      </p>
<p>If request from outside Apache to enter an existing Apache project,
then post a message to that project for them to decide on acceptance.
</p>
<p>
        <strong>DONE
</strong>
      </p>
</div>
        <h2 id='Interim+responsibility'><img src="../images/redarrow.gif" />Interim responsibility
</h2>
<div class="section-content">
<p>Who has been identified as the shepherd for the incubation?
</p>
<p>Davanum Srinivas, dims@yahoo.com
</p>
<p>Are they tracking progress?
</p>
<p>Yes. Progress is tracked here: incubator/site/projects/juddi.cwiki
</p>
</div>
        <h2 id='Copyright'><img src="../images/redarrow.gif" />Copyright
</h2>
<div class="section-content">
<p>Have the papers that transfer rights to the ASF been received? It is
only necessary to transfer rights for the package, the core code, and
any new code produced by the project.
</p>
<p>Have the files been updated to reflect the new ASF copyright?
</p>
<p>All Java source files include the ASF v2.0 copyright notice.
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Verify distribution rights
</p>
<p>For all code included with the distribution that is not under the
Apache license, do we have the right to combine with Apache-licensed
code and redistribute?
</p>
<p>Yes. See the following thread for more info:
</p>
<p>
        <a href="http://marc.theaimsgroup.com/?l=juddi-dev&amp;m=107945391731425&amp;w=2">http://marc.theaimsgroup.com/?l=juddi-dev&amp;m=107945391731425&amp;w=2
</a>
      </p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Is all source code distributed by the project covered by one or more
of the following approved licenses: Apache, BSD, Artistic, MIT/X,
MIT/W3C, MPL 1.1, or something with essentially the same terms?
</p>
<p>Yes. All source code distributed with jUDDI is covered under the
Apache license.
</p>
<p>
        <strong>DONE
</strong>
      </p>
</div>
        <h2 id='Establish+a+list+of+active+committers'><img src="../images/redarrow.gif" />Establish a list of active committers
</h2>
<div class="section-content">
<p>Are all active committers in the STATUS file?
</p>
<p>Yes.
</p>
<p>Active committers at the time of incubation are:
</p>
<table class="colortable" width="100%">
        <tr>
          <th>Committer
</th>
          <th>Email Address
</th>
        </tr>
        <tr>
          <td>Steve Viens
</td>
          <td>sviens@apache.org
</td>
        </tr>
        <tr>
          <td>Anou Manavalan
</td>
          <td>anou_mana@apache.org
</td>
        </tr>
        <tr>
          <td>Andy Cutright
</td>
          <td>acutright@apache.org
</td>
        </tr>
        <tr>
          <td>Anil Saldhana
</td>
          <td>anilsaldhana@yahoo.com
</td>
        </tr>
      </table>
<p>Do they have accounts on cvs.apache.org?
</p>
<p>Yes.
</p>
<p>Have they submitted a contributors agreement?
</p>
<p>Yes.
</p>
<p>
        <strong>DONE
</strong>
      </p>
</div>
        <h2 id='Infrastructure'><img src="../images/redarrow.gif" />Infrastructure
</h2>
<div class="section-content">
<p>CVS modules created and committers added to avail file?
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Mailing lists set up and archived?
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Problem tracking system (Jira)?
</p>
<p>Issue tracking has been set up under Jira.
</p>
<p>
        <a href="https://issues.apache.org/jira/browse/JUDDI">https://issues.apache.org/jira/browse/JUDDI
</a>
      </p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Has the project migrated to our infrastructure?
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Have all of the active long-term volunteers been identified and
acknowledged as committers on the project?
</p>
<p>There are four jUDDI committers:
</p>
<table class="colortable" width="100%">
        <tr>
          <th>Committer
</th>
          <th>Email Address
</th>
        </tr>
        <tr>
          <td>Steve Viens
</td>
          <td>sviens@apache.org
</td>
        </tr>
        <tr>
          <td>Anou Manavalan
</td>
          <td>anou_mana@apache.org
</td>
        </tr>
        <tr>
          <td>Andy Cutright
</td>
          <td>acutright@apache.org
</td>
        </tr>
        <tr>
          <td>Anil Saldhana
</td>
          <td>anilsaldhana@yahoo.com
</td>
        </tr>
      </table>
<p>All four individuals are acknowledged jUDDI committers.
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Are there three or more independent committers?
</p>
<p>Yes. All four initial jUDDI committers are independent committers.
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Are project decisions being made in public by the committers?
</p>
<p>Yes
</p>
<p>
        <strong>DONE
</strong>
      </p>
<p>Are the decision-making guidelines published and agreed to by all of
the committers?
</p>
<p>No special guidelines have been published. The Apache style of
development is known to us all and silently accepted.
</p>
<p>
        <strong>DONE
</strong>
      </p>
</div>
        <h2 id='Incubation+Status+Reports'><img src="../images/redarrow.gif" />Incubation Status Reports
</h2>
<div class="section-content">
<h3 id='2004-03-06+jUDDI+Status'>2004-03-06 jUDDI Status
</h3>
<div class="section-content">
<div class="source"><code>2004-03-06 jUDDI Status * Is the STATUS file up to date? (also post
link) Yes. http://incubator.apache.org/projects/juddi.html * Any
legal, cross-project or personal issues that still need to be
addressed? No outstanding issues. * What has been done for incubation
since the last report? All project committers have received
confirmation that CLA's have been recieved and accepted. The jUDDI
Web Site has continued to be updated and built out.
http://ws.apache.org/juddi/ All source files have been modified to
include the ASF v2.0 copyright notice. The mailing lists
juddi-user@ws.apache.org and juddi-dev@ws.apache.org are now being
archived at both Apache and MARC. Past list traffic has been imported
into the Apache archives. License files have been added for most
non-Apache libraries that are distributed with jUDDI. * What are the
project's plans and expectations for the next period? Complete review
of non-Apache libraries bundled with jUDDI removing any that should
not be included and adding LICENSE files for any that requires one.
Assemble a to-do list (roadmap) for future development and publish to
the jUDDI web site. Upgrade to Axis 1.2beta (Axis 1.1 is currently
bundled with jUDDI). Refactor CVS to create a areas for the jUDDI
java source directory, the jUDDI website and locations for addons,
contributions or prototypes that do not fit well in the jUDDI source
tree. Right now everything is in the jUDDI source tree. Exit the
Apache Incubator (hey, it was fun). Produce an 0.8.x or 0.9
release.of jUDDI. * Any recommendations for how incubation could run
more smoothly for you? The current process has worked well for us.
</code>
</div>
</div>
<h3 id='2003-10-19+jUDDI+Status'>2003-10-19 jUDDI Status
</h3>
<div class="section-content">
<div class="source"><code>2003-10-19 jUDDI Status * Is the STATUS file up to date? (also post
link) Yes. http://incubator.apache.org/projects/juddi.html * Any
legal, cross-project or personal issues that still need to be
addressed? No outstanding issues. * What has been done for incubation
since the last report? All four project committers have submitted
CLA's. We're still waiting on confirmation for one of these A jUDDI
Web Site has been created at Apache and the original jUDDI web site
redirects visitors to the new web site. http://ws.apache.org/juddi/
An cvs module is in place and the jUDDI source has been imported.
Java packages have been renamed from &quot;org.juddi&quot; to
&quot;org.apache.juddi&quot; and all source files have been modified to include
the ASF copyright notice. The mailing lists juddi-user@ws.apache.org
and juddi-dev@ws.apache.org have been created and are being archived.
Issue tracking has been setup under Jira. Gump is successfully
building jUDDI. http://lsd.student.utwente.nl/gump/ws-juddi/ * Plans
and expectations for the next period? Still need to acquire and check
in license files for dependent non-Apache libraries that are
distributed with jUDDI. Waiting to be notified that the fourth
committer's CLA has been received and his account created and granted
the appropriate privs. Assemble a to-do list (roadmap) for future
development and plan the next jUDDI release. We'd like to wrap up the
few issues that are outstanding and exit incubation before the next
period comes to a close. * Any recommendations for how incubation
could run more smoothly for you? I've heard reference to a STATUS
file as well as the jUDDI cwiki that I've been updating. While I've
assumed they are one-in-the-same I'm not certain of that (perhaps you
can enlighten me). If they are not they same thing then I'm confused
about the need to keep status in two different places. Even this
status report is more or less a reformatted version the cwiki
document.
</code>
</div>
</div>
</div>
        <h2 id='Organizational+acceptance+of+responsibility+for+the+project'><img src="../images/redarrow.gif" />Organizational acceptance of responsibility for the project
</h2>
<div class="section-content">
<p>If graduating to an existing PMC, has the PMC voted to accept it?
</p>
<p>The Web Services PMC has voted to Incubate jUDDI.
</p>
<p>
        <strong>DONE
</strong>
      </p>
</div>
        <h2 id='Incubator+sign-off'><img src="../images/redarrow.gif" />Incubator sign-off
</h2>
<div class="section-content">
<p>Has the Incubator decided that the project has accomplished all of
the above tasks?
</p>
<p>Yes. The Incubator PMC has voted to graduate jUDDI
</p>
<p>
        <strong>DONE
</strong>
      </p>
</div>
       </div>
   </div>
  
   <div class="row"><div class="span16"><hr noshade="noshade" size="1"/></div></div>
  <div class="row">
   <div class="span16 footer">
     Copyright &#169; 2009-2016 The Apache Software Foundation<br />
     Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
     Apache Incubator, Apache, the Apache feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation.
     
     
    </div>
  </div>
 </div> 
 </body>
</html>
