<html>
<head>
<title>Specification License</title>
</head>
<body>
Specification: JSR-925 JavaBeans Activation Framework ("Specification")
<br/>
Version: 1.2
<br/>
Status: Maintenance Release
<br/>
Specification Lead: Oracle America, Inc. ("Specification Lead")
<br/>
Release: July 2017
<br/>

<br/>
Copyright &#169; 2017 Oracle America, Inc.  All rights reserved.
<br/>
<p>
LIMITED LICENSE GRANTS
<br/>
1. License for Evaluation Purposes. Specification Lead hereby grants
you a fully-paid, non-exclusive, non-transferable, worldwide, limited
license (without the right to sublicense), under Specification Lead's
applicable intellectual property rights to view, download, use and
reproduce the Specification only for the purpose of internal
evaluation.  This includes (i) developing applications intended to run
on an implementation of the Specification, provided that such
applications do not themselves implement any portion(s) of the
Specification, and (ii) discussing the Specification with any third
party; and (iii) excerpting brief portions of the Specification in oral
or written communications which discuss the Specification provided that
such excerpts do not in the aggregate constitute a significant portion
of the Specification.
</p>
<p>
2. License for the Distribution of Compliant Implementations.
Specification Lead  also grants you a perpetual, non-exclusive,
non-transferable, worldwide, fully paid-up, royalty free, limited
license (without the right to sublicense) under any applicable
copyrights or, subject to the provisions of subsection 4 below, patent
rights it may have covering the Specification to create and/or
distribute an Independent Implementation of the Specification that: (a)
fully implements the Specification including all its required
interfaces and functionality; (b) does not modify, subset, superset or
otherwise extend the Licensor Name Space, or include any public or
protected packages, classes, Java interfaces, fields or methods within
the Licensor Name Space other than those required/authorized by the
Specification or Specifications being implemented; and (c) passes the
Technology Compatibility Kit (including satisfying the requirements of
the applicable TCK Users Guide) for such Specification ("Compliant
Implementation").  In addition, the foregoing license is expressly
conditioned on your not acting outside its scope.  No license is
granted hereunder for any other purpose (including, for example,
modifying the Specification, other than to the extent of your fair use
rights, or distributing the Specification to third parties).  Also, no
right, title, or interest in or to any trademarks, service marks, or
trade names of Specification Lead or Specification Lead's licensors is
granted hereunder.  Java, and Java-related logos, marks and names are
trademarks or registered trademarks of Oracle America, Inc. in the U.S.
and other countries.
</p>
<p>
3. Pass-through Conditions. You need not include limitations (a)-(c)
from the previous paragraph or any other particular "pass through"
requirements in any license You grant concerning the use of your
Independent Implementation or products derived from it.  However,
except with respect to Independent Implementations (and products
derived from them) that satisfy limitations (a)-(c) from the previous
paragraph, You may neither:  (a) grant or otherwise pass through to
your licensees any licenses under Specification Lead's  applicable
intellectual property rights; nor (b) authorize your licensees to make
any claims concerning their implementation's compliance with the
Specification in question.
</p>
<p>
4. Reciprocity Concerning Patent Licenses.  
<br/>
a.  With respect to any patent claims covered by the license granted
under subparagraph 2 above that would be infringed by all technically
feasible implementations of the Specification, such license is
conditioned upon your offering on fair, reasonable and
non-discriminatory terms, to any party seeking it from You, a
perpetual, non-exclusive, non-transferable, worldwide license under
Your patent rights which are or would be infringed by all technically
feasible implementations of the Specification to develop, distribute
and use a Compliant Implementation.
<br/>
b.  With respect to any patent claims owned by Specification Lead and
covered by the license granted under subparagraph 2, whether or not
their infringement can be avoided in a technically feasible manner when
implementing the Specification, such license shall terminate with
respect to such claims if You initiate a claim against Specification
Lead that it has, in the course of performing its responsibilities as
the Specification Lead, induced any other entity to infringe Your
patent rights.
<br/>
c.  Also with respect to any patent claims owned by Specification Lead
and covered by the license granted under subparagraph 2 above, where
the infringement of such claims can be avoided in a technically
feasible manner when implementing the Specification such license, with
respect to such claims, shall terminate if You initiate a claim against
Specification Lead  that its making, having made, using, offering to
sell, selling or importing a Compliant Implementation infringes Your
patent rights.
</p>
<p>
5. Definitions. For the purposes of this Agreement:  "Independent
Implementation" shall mean an implementation of the Specification that
neither derives from any of Specification Lead's  source code or binary
code materials nor, except with an appropriate and separate license
from Specification Lead, includes any of Specification Lead's  source
code or binary code materials; "Licensor Name Space" shall mean the
public class or interface declarations whose names begin with "java",
"javax", "com.oracle", "com.sun" or their equivalents in any subsequent
naming convention adopted by Oracle America, Inc. through the Java
Community Process, or any recognized successors or replacements
thereof; and "Technology Compatibility Kit" or "TCK" shall mean the
test suite and accompanying TCK User's Guide provided by Specification
Lead  which corresponds to the Specification and that was available
either (i) from Specification Lead 120 days before the first release of
Your Independent Implementation that allows its use for commercial
purposes, or (ii) more recently than 120 days from such release but
against which You elect to test Your implementation of the
Specification.
</p>
<p>
This Agreement will terminate immediately without notice from
Specification Lead if you breach the Agreement or act outside the scope
of the licenses granted above.
</p>
<p>
DISCLAIMER OF WARRANTIES 
<br/>
THE SPECIFICATION IS PROVIDED "AS IS". SPECIFICATION LEAD MAKES NO
REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT (INCLUDING AS A CONSEQUENCE OF ANY PRACTICE
OR IMPLEMENTATION OF THE SPECIFICATION), OR THAT THE CONTENTS OF THE
SPECIFICATION ARE SUITABLE FOR ANY PURPOSE.  This document does not
represent any commitment to release or implement any portion of the
Specification in any product. In addition, the Specification could
include technical inaccuracies or typographical errors.
</p>
<p>
LIMITATION OF LIABILITY
<br/>
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SPECIFICATION
LEAD OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT
LIMITATION, LOST REVENUE, PROFITS OR DATA, OR FOR SPECIAL, INDIRECT,
CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED IN ANY
WAY TO YOUR HAVING, IMPLEMENTING OR OTHERWISE USING THE SPECIFICATION,
EVEN IF SPECIFICATION LEAD AND/OR ITS LICENSORS HAVE BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.  You will indemnify, hold harmless,
and defend Specification Lead and its licensors from any claims arising
or resulting from: (i) your use of the Specification; (ii) the use or
distribution of your Java application, applet and/or implementation;
and/or (iii) any claims that later versions or releases of any
Specification furnished to you are incompatible with the Specification
provided to you under this license.
</p>
<p>
RESTRICTED RIGHTS LEGEND 
<br/>
U.S. Government: If this Specification is being acquired by or on
behalf of the U.S. Government or by a U.S. Government prime contractor
or subcontractor (at any tier), then the Government's rights in the
Software and accompanying documentation shall be only as set forth in
this license; this is in accordance with 48 C.F.R. 227.7201 through
227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48
C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
</p>
<p>
REPORT
<br/>
If you provide Specification Lead with any comments or suggestions
concerning the Specification ("Feedback"), you hereby: (i) agree that
such Feedback is provided on a non-proprietary and non-confidential
basis, and (ii) grant Specification Lead a perpetual, non-exclusive,
worldwide, fully paid-up, irrevocable license, with the right to
sublicense through multiple levels of sublicensees, to incorporate,
disclose, and use without limitation the Feedback for any purpose.
</p>
<p>
GENERAL TERMS
<br/>
Any action related to this Agreement will be governed by California law
and controlling U.S. federal law. The U.N. Convention for the
International Sale of Goods and the choice of law rules of any
jurisdiction will not apply.
</p>
<p>
The Specification is subject to U.S. export control laws and may be
subject to export or import regulations in other countries. Licensee
agrees to comply strictly with all such laws and regulations and
acknowledges that it has the responsibility to obtain such licenses to
export, re-export or import as may be required after delivery to
Licensee.
</p>
<p>
This Agreement is the parties' entire agreement relating to its subject
matter. It supersedes all prior or contemporaneous oral or written
communications, proposals, conditions, representations and warranties
and prevails over any conflicting or additional terms of any quote,
order,  acknowledgment, or other communication between the parties
relating to its subject matter during the term of this Agreement. No
modification to this Agreement will be binding, unless in writing and
signed by an authorized representative of each party.
</p>
</body>
</html>
