<!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" />
  <script src="https://www.apachecon.com/event-images/snippet.js"></script>
        <title>Intellectual Property (IP) Clearance Template
 - Apache Incubator</title>
  
 </head>
 <body>
 <div class="container">
  <div class="row"><div class="span6"><a href="https://www.apache.org/"><img src="http://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" border="0" style="margin-top: 2px" height="88"/></a></div>
<div class="span7"><a href="/"><img src="https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png" alt="The Apache Software Foundation Incubator" border="0" style="margin-top: 2px" height="88"/></a></div>
<div class="span2"><a href="https://www.apache.org/foundation/contributing.html"><img src="https://www.apache.org/images/SupportApache-small.png" height="100" width="100"/></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="../cookbook/">Incubator Cookbook</a></li> 
          <li><a href="../policy/incubation.html">Incubation Policy</a></li> 
          <li><a href="../guides/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> 
            </menu>
      <div class="menuheader">Status</div>
    <menu compact="compact">
          <li><a href="../projects">Project List</a></li> 
          <li><a href="../clutch">Clutch Report</a></li> 
          <li><a href="../ip-clearance">IP Clearance</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/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>
    <div id="menuheader">
      <a class="acevent" data-format="square" data-width="135" data-mode="light" data-event="random"></a>
    </div>
   </div>
   
   <div class="span12">
            <h2 id='Harmony+Codebase+IP+Clearance+Status'><img src="../images/redarrow.gif" />Harmony Codebase IP Clearance Status
</h2>
<div class="section-content">
</div>
        <h2 id='Description'><img src="../images/redarrow.gif" />Description
</h2>
<div class="section-content">
<p>Proof-of-concept component model in C using function pointers

        <br />
      </p>
<p>
        <a href="http://issues.apache.org/jira/browse/HARMONY-3">http://issues.apache.org/jira/browse/HARMONY-3

          <br />
        </a>
      </p>
</div>
        <h2 id='Project+info'><img src="../images/redarrow.gif" />Project info
</h2>
<div class="section-content">
<ul>
        <li>Which PMC will be responsible for the code  : Apache Harmony /
Incubator

          <br />
        </li>
      </ul>
<ul>
        <li>Into which existing project/module : regular Harmony SVN
</li>
        <li>
          <br />
        </li>
      </ul>
<p>
        <em>Completed tasks are shown by the completion date (YYYY-MM-dd).
</em>
      </p>
<h3 id='Identify+the+codebase'>Identify the codebase
</h3>
<div class="section-content">
<table class="colortable" width="100%">
          <tr>
            <th>date
</th>
            <th>item
</th>
          </tr>
          <tr>
            <td>2005-10-04

              <br />
            </td>
            <td>If applicable, make sure that any associated 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. 

              <em>Codebase will be renamed from JCVM
</em>
              <br />
            </td>
          </tr>
        </table>
<h4 id='Copyright'>Copyright
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date
</th>
              <th>item
</th>
            </tr>
            <tr>
              <td>2005-10-04
</td>
              <td>Check and make sure that 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.
</td>
            </tr>
            <tr>
              <td>2005-10-04
</td>
              <td>Check and make sure that the files that have been donated have been
updated to reflect the new ASF copyright.
</td>
            </tr>
          </table>
</div>
<h4 id='Verify+distribution+rights'>Verify distribution rights
</h4>
<div class="section-content">
<table class="colortable" width="100%">
            <tr>
              <th>date
</th>
              <th>item
</th>
            </tr>
            <tr>
              <td>2005-10-04
</td>
              <td>Check that all active committers have a signed CLA on record.
</td>
            </tr>
            <tr>
              <td>2005-10-04
</td>
              <td>Remind active committers that they are responsible for ensuring that
a Corporate CLA is recorded if such is is required to authorize their
contributions under their individual CLA.
</td>
            </tr>
            <tr>
              <td>2005-10-04
</td>
              <td>Check and make sure that for all items included with the distribution
that is not under the Apache license, we have the right to combine
with Apache-licensed code and redistribute.
</td>
            </tr>
            <tr>
              <td>2005-10-04
</td>
              <td>Check and make sure that all items depended upon by the project is
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.
</td>
            </tr>
          </table>
<p>Generally, the result of checking off these items will be a Software
Grant, CLA, and Corporate CLA for ASF licensed code, which must have
no dependencies upon items whose licenses that are incompatible with
the Apache License.
</p>
</div>
</div>
<h3 id='Organizational+acceptance+of+responsibility+for+the+project'>Organizational acceptance of responsibility for the project
</h3>
<div class="section-content">
<ul>
          <li>Has the receiving PMC voted to accept it?  Yes
</li>
        </ul>
<a href="http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200509.mbox/%3c41287D45-DD82-4276-A0DF-F7263EB5BD8B@apache.org%3e">
          <u>http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200509.
box/%3c41287D45-DD82-4276-A0DF-F7263EB5BD8B@apache.org%3e
</u>
        </a>
<br />
<br />
</div>
</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-2024 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>
