<html>
<head>
<meta name=Title content="Day Spec License">
<meta http-equiv="Content-Type" content="text/html">
<title>Day Spec License</title>
</head>
<body bgcolor="white">
	<ol>
	<li>
		<a href="#day-spec-license">Day Specification License</a>
	</li>
	<li>
		<a href="#day-jcr-license">Day JCR License</a>
	</li>
	</ol>

<a name="day-spec-license"></a>
<hr>
<h3>Day Specification License</h3>
<p>Day Management AG (&quot;Licensor&quot;) is willing to license
this specification to you ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE
TERMS CONTAINED IN THIS LICENSE AGREEMENT (&quot;Agreement&quot;). Please
read the terms and conditions of this Agreement carefully. </p>

<p><b>Content Repository for Java<small><sup>TM</sup></small>

      Technology API Specification (&quot;Specification&quot;) <br />
Version: 1.0 <br />
Status: FCS <br>
Release: 11 May 2005 </b></p>

<p>Copyright 2005 Day Management AG<br />
Barf&#252;sserplatz 6, 4001 Basel, Switzerland.<br />

All rights reserved. </p>

<p><b>NOTICE; LIMITED LICENSE GRANTS</b></p>

<p><b>1. License for Purposes of Evaluation and Developing Applications</b>.

Licensor hereby grants you a fully-paid, non-exclusive, non-transferable,
worldwide, limited license (without the right to sublicense), under Licensor's
applicable intellectual property rights to view, download, use and reproduce
the Specification only for the purpose of internal evaluation. This includes
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.</p>

<p><b>2. License for the Distribution of Compliant Implementations</b>.
Licensor 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 (&quot;Compliant Implementation&quot;). 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).</p>

<p><b>3. Pass-through Conditions</b>.
You need not include limitations (a)-(c) from the previous paragraph or any
other particular &quot;pass through&quot; 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 Licensor's applicable intellectual property
rights; nor (b) authorize your licensees to make any claims concerning their
implementation's compliance with the Specification.</p>

<p><b>4. Reciprocity Concerning Patent Licenses</b>.
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 that are or would be infringed by all technically
feasible implementations of the Specification to develop, distribute and use a
Compliant Implementation.</p>

<p><b>5. Definitions</b>.
For the purposes of this Agreement: &quot;Independent Implementation&quot;
shall mean an implementation of the Specification that neither derives from
any of Licensor's source code or binary code materials nor, except with an
appropriate and separate license from Licensor, includes any of Licensor's
source code or binary code materials; &quot;Licensor Name Space&quot; shall
mean the public class or interface declarations whose names begin with
&quot;java&quot;, &quot;javax&quot;, &quot;javax.jcr&quot; or their
equivalents in any subsequent naming convention adopted by Licensor through the
Java Community Process, or any recognized successors or replacements thereof;
and &quot;Technology Compatibility Kit&quot; or &quot;TCK&quot; shall mean the
test suite and accompanying TCK User's Guide provided by Licensor which
corresponds to the particular version of the Specification being tested.</p>

<p><b>6. Termination</b>. This Agreement will terminate immediately without
notice from Licensor if you fail to comply with any material provision of or
act outside the scope of the licenses granted above.</p>

<p><b>7. Trademarks</b>. No right, title, or interest in or to any trademarks,
service marks, or trade names of Licensor is granted hereunder.
Java is a registered trademark of Sun Microsystems, Inc. in the
United States and other countries.</p>

<p><b>8. Disclaimer of Warranties</b>.
The Specification is provided &quot;AS IS&quot;.
LICENSOR 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.</p>

<p>The Specification could include technical inaccuracies or typographical
errors. Changes are periodically added to the information therein; these
changes will be incorporated into new versions of the Specification, if any.
Licensor may make improvements and/or changes to the product(s) and/or the
program(s) described in the Specification at any time. Any use of such changes
in the Specification will be governed by the then-current license for the
applicable version of the Specification.</p>

<p><b>9. Limitation of Liability</b>. TO THE EXTENT NOT PROHIBITED BY LAW, IN
NO EVENT WILL LICENSOR 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 TO ANY FURNISHING, PRACTICING, MODIFYING
OR ANY USE OF THE SPECIFICATION, EVEN IF LICENSOR HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.</p>

<p><b>10. Report</b>. If you provide Licensor with any comments or suggestions
in connection with your use of the Specification (&quot;Feedback&quot;), you
hereby: (i) agree that such Feedback is provided on a non-proprietary and
non-confidential basis, and (ii) grant Licensor 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 related to the Specification
and future versions, implementations, and test suites thereof.</p>


<a name="day-jcr-license"></a>
<hr>
<h3>Day JCR License</h3>
<xmp>
	In addition to the permissions granted under the Specification
	License, Day Management AG hereby grants to You a perpetual,
	worldwide, non-exclusive, no-charge, royalty-free, irrevocable
	license to reproduce, publicly display, publicly perform,
	sublicense, and distribute unmodified copies of the Content
	Repository for Java Technology API (JCR 2.0) Java Archive (JAR)
	file ("jcr-2.0.jar") and to make, have made, use, offer to sell,
	sell, import, and otherwise transfer said file on its own or
	as part of a larger work that makes use of the JCR API.

	With respect to any patent claims covered by this license
	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
	that are or would be infringed by all technically feasible
	implementations of the Specification to develop, distribute
	and use a Compliant Implementation.
</xmp>
</body>
</html>
