From: <js...@us...> - 2006-11-21 17:35:47
|
Revision: 5 http://svn.sourceforge.net/jcontracts/?rev=5&view=rev Author: jstuyts Date: 2006-11-21 09:21:29 -0800 (Tue, 21 Nov 2006) Log Message: ----------- Started with the site. Added Paths: ----------- trunk/site/resources/ trunk/site/resources/images/ trunk/site/resources/images/sflogo.png trunk/site/resources/stylesheets/ trunk/site/resources/stylesheets/jcontracts.css Added: trunk/site/resources/images/sflogo.png =================================================================== (Binary files differ) Property changes on: trunk/site/resources/images/sflogo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/site/resources/stylesheets/jcontracts.css =================================================================== --- trunk/site/resources/stylesheets/jcontracts.css (rev 0) +++ trunk/site/resources/stylesheets/jcontracts.css 2006-11-21 17:21:29 UTC (rev 5) @@ -0,0 +1,200 @@ +html +{ + margin: 0; + padding: 0; +} + +body +{ + margin: 0; + padding: 0.5em; + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; + background-color: #FFFFFF; + color: #000000; +} + +h1 +{ + font-weight: bold; + font-size: 200%; +} + +h2 +{ + font-weight: bold; + font-size: 160%; +} + +h3 +{ + font-weight: bold; + font-size: 120%; +} + +p +{ + width: 30em; +} + +ul +{ + width: 30em; +} + +li > p:first-child +{ + margin-top: 0; +} + +dl +{ + width: 30em; +} + +pre +{ + border-style: solid; + border-width: 0.05em; + border-color: #555555; + padding-left: 1em; + padding-right: 1em; + padding-top: 0.5em; + padding-bottom: 0.5em; + background-color: #FFFFFF; + color: #000000; +} + +table +{ + border-style: none; + border-width: 0; +} + +th +{ + padding: 0.2em; +} + +td, th +{ + border-style: solid; + border-top-width: 0; + border-left-width: 0; + border-right-width: 0.05em; + border-bottom-width: 0.05em; + border-color: #000000; + padding: 0.2em; +} + +td:first-child, th:first-child +{ + border-style: solid; + border-top-width: 0; + border-left-width: 0.05em; + border-right-width: 0.05em; + border-bottom-width: 0.05em; + border-color: #000000; +} + +tr:first-child > td, tr:first-child > th +{ + border-style: solid; + border-top-width: 0.05em; + border-left-width: 0; + border-right-width: 0.05em; + border-bottom-width: 0.05em; + border-color: #000000; +} + +tr:first-child > td:first-child, tr:first-child > th:first-child +{ + border-style: solid; + border-top-width: 0.05em; + border-left-width: 0.05em; + border-right-width: 0.05em; + border-bottom-width: 0.05em; + border-color: #000000; +} + +div.sourceforge-logo +{ + float: right; +} + +a:link +{ + color: #0000DD; +} + +a:visited +{ + color: #880088; +} + +img +{ + border-style: none; + border-width: 0; + vertical-align: middle; +} + +/* Javadoc */ +.TableHeadingColor +{ + background-color: #7FB8D8; +} +.TableSubHeadingColor +{ + background-color: #BFDBEB; +} +.TableRowColor +{ + background-color: #FFFFFF; +} + +.FrameTitleFont +{ + font-size: 100%; + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; +} +.FrameHeadingFont +{ + font-size: 90%; + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; +} +.FrameItemFont +{ + font-size: 90%; + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; +} + +.NavBarCell1 +{ + background-color: #BFDBEB; +} +.NavBarCell1Rev +{ + background-color: #0072B2; +} +.NavBarFont1 +{ + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; + color: #000000; +} +.NavBarFont1Rev +{ + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; +} + +.NavBarCell2 +{ + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; + background-color: #FFFFFF; +} +.NavBarCell3 +{ + font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; + background-color: #FFFFFF; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2006-11-21 17:44:26
|
Revision: 4 http://svn.sourceforge.net/jcontracts/?rev=4&view=rev Author: jstuyts Date: 2006-11-21 09:18:10 -0800 (Tue, 21 Nov 2006) Log Message: ----------- Started with the site. Added Paths: ----------- trunk/site/favicon.ico trunk/site/index.html Added: trunk/site/favicon.ico =================================================================== (Binary files differ) Property changes on: trunk/site/favicon.ico ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/site/index.html =================================================================== --- trunk/site/index.html (rev 0) +++ trunk/site/index.html 2006-11-21 17:18:10 UTC (rev 4) @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Welcome to JcontractS</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <h1>Introduction</h1> + + <p>JcontractS (Java contract suite) is a resurrection of the iContract tool originally developed by Reto Kramer of + Reliable Systems. John Swapceinski started the resurrection by decompiling the original JAR files, and making the + sources compile with JDK 1.4 and higher. The result of his work can be found on <a + href="http://www.icontract2.org/">www.icontract2.org</a>.</p> + + <p>Johan Stuyts started the SourceForge.net project so proper further development of the project can take + place.</p> + + <p>The project is being setup at the moment. More information will appear soon.</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2006-11-23 08:07:09
|
Revision: 8 http://svn.sourceforge.net/jcontracts/?rev=8&view=rev Author: jstuyts Date: 2006-11-23 00:07:07 -0800 (Thu, 23 Nov 2006) Log Message: ----------- Added some documentation and the downloads of the originals and iContract2. Modified Paths: -------------- trunk/site/index.html trunk/site/resources/stylesheets/jcontracts.css Added Paths: ----------- trunk/site/documentation.html trunk/site/download.html trunk/site/license.html trunk/site/resources/downloads/ trunk/site/resources/downloads/icontract-jdk1_1_7.orig.jar trunk/site/resources/downloads/icontract-jdk1_2.orig.jar trunk/site/resources/downloads/icontract2-src.zip trunk/site/resources/downloads/icontract2.jar trunk/site/roadmap.html Added: trunk/site/documentation.html =================================================================== --- trunk/site/documentation.html (rev 0) +++ trunk/site/documentation.html 2006-11-23 08:07:07 UTC (rev 8) @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Documentation - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu">Documentation</li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Documentation</h1> + + <p>The documentation for the command-line tool and the reference of the contract syntax will appear here soon.</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file Added: trunk/site/download.html =================================================================== --- trunk/site/download.html (rev 0) +++ trunk/site/download.html 2006-11-23 08:07:07 UTC (rev 8) @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Download - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu">Download</li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Download</h1> + + <p>There are no releases yet. A release of the current code is expected around the end of November.</p> + + <p>You can download the original JAR files, the source code of the original JAR for JDK 1.2 which has been + modified so it builds using a modern version of Java, and the JAR built from the source code here:</p> + + <ul> + <li><a href="resources/downloads/icontract-jdk1_1_7.orig.jar">original JAR for JDK 1.1.7</a></li> + + <li><a href="resources/downloads/icontract-jdk1_2.orig.jar">original JAR for JDK 1.2</a></li> + + <li><a href="resources/downloads/icontract2-src.zip">source code</a></li> + + <li><a href="resources/downloads/icontract2.jar">JAR built from source code</a></li> + </ul> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file Modified: trunk/site/index.html =================================================================== --- trunk/site/index.html 2006-11-21 17:35:40 UTC (rev 7) +++ trunk/site/index.html 2006-11-23 08:07:07 UTC (rev 8) @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> - <title>Welcome to JcontractS</title> + <title>Welcome to Java Contract Suite</title> <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> @@ -11,9 +11,21 @@ </head> <body> + <ul class="menu"> + <li class="menu">Home</li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + <h1>Introduction</h1> - <p>JcontractS (Java contract suite) is a resurrection of the iContract tool originally developed by Reto Kramer of + <p>Java Contract Suite (JcontractS) is a resurrection of the iContract tool originally developed by Reto Kramer of Reliable Systems. John Swapceinski started the resurrection by decompiling the original JAR files, and making the sources compile with JDK 1.4 and higher. The result of his work can be found on <a href="http://www.icontract2.org/">www.icontract2.org</a>.</p> @@ -25,6 +37,38 @@ the source from the Subversion repository. Follow the instructions on the <a href="https://sourceforge.net/svn/?group_id=175492">Subversion page of the project</a>.</p> + <h1>Goals</h1> + + <p>Java Contract Suite aims to be Design by Contract implementation for Java 1.4 source code. Support for source + code of higher Java versions will be added in the future.</p> + + <p>Even though there have been a number of Design by Contract implementations in the past, the adoption of Design + by Contract has been minimal. To accelerate adoption the project is available under the liberal Apache License + Version 2.0, and will try to provide tasks/extensions/plugins for as many development tools as possible.</p> + + <h1>Why iContract?</h1> + + <p>There were other, more active Design by Contract implementations than iContract when it was resurrected. Below + are the reasons for choosing iContract instead of another implementation.</p> + + <p>With iContract the code and the contracts are kept in the same location. The invariants, preconditions and + postconditions are added to the Javadoc of the classes and methods. You don't have to switch between two files + constantly during development.</p> + + <p>The syntax used by iContract is clean and terse. It is easy to read and understand for people who have never + used iContract before.</p> + + <p>iContract supports Java 1.4. Some other implementations make use of annotations, which require Java 5 or + higher.</p> + + <p>There is no need for JVM parameters, JVM agents, specific class loaders and/or specific frameworks. The classes + built with iContract can be used as is in any deployment environment.</p> + + <h1>Other implementations</h1> + + <p>See the <a href="http://en.wikipedia.org/wiki/Design_by_contract">Design by Contract page at Wikipedia</a> for + a list of Design by Contract implementations for Java (and other languages).</p> + <hr /> <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" Added: trunk/site/license.html =================================================================== --- trunk/site/license.html (rev 0) +++ trunk/site/license.html 2006-11-23 08:07:07 UTC (rev 8) @@ -0,0 +1,165 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>License - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu">License</li> + </ul> + + <h1>License</h1> + + <p class="licensetitle">Apache License<br />Version 2.0, January 2004<br />http://www.apache.org/licenses/</p> + + <p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p> + + <ol> + <li><p>Definitions.</p><p>"License" shall mean the terms and conditions for use, reproduction, and distribution + as defined by Sections 1 through 9 of this document.</p><p>"Licensor" shall mean the copyright owner or entity + authorized by the copyright owner that is granting the License.</p><p>"Legal Entity" shall mean the union of the + acting entity and all other entities that control, are controlled by, or are under common control with that + entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent + (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p><p>"You" (or "Your") + shall mean an individual or Legal Entity exercising permissions granted by this License.</p><p>"Source" form + shall mean the preferred form for making modifications, including but not limited to software source code, + documentation source, and configuration files.</p><p>"Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but not limited to compiled object code, generated + documentation, and conversions to other media types.</p><p>"Work" shall mean the work of authorship, whether in + Source or Object form, made available under the License, as indicated by a copyright notice that is included in + or attached to the work (an example is provided in the Appendix below).</p><p>"Derivative Works" shall mean any + work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial + revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of + authorship. For the purposes of this License, Derivative Works shall not include works that remain separable + from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works + thereof.</p><p>"Contribution" shall mean any work of authorship, including the original version of the Work and + any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to + Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to + submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of + electronic, verbal, or written communication sent to the Licensor or its representatives, including but not + limited to communication on electronic mailing lists, source code control systems, and issue tracking systems + that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner + as "Not a Contribution."</p><p>"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of + whom a Contribution has been received by Licensor and subsequently incorporated within the Work.</p></li> + + <li><p>Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to + reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work + and such Derivative Works in Source or Object form.</p></li> + + <li><p>Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in + this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the + Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily + infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such + Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or + counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes + direct or contributory patent infringement, then any patent licenses granted to You under this License for that + Work shall terminate as of the date such litigation is filed.</p></li> + + <li><p>Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any + medium, with or without modifications, and in Source or Object form, provided that You meet the following + conditions:</p><ol style="list-style-type: lower-latin;"> + <li><p>You must give any other recipients of the Work or Derivative Works a copy of this License; + and</p></li> + + <li><p>You must cause any modified files to carry prominent notices stating that You changed the files; + and</p></li> + + <li><p>You must retain, in the Source form of any Derivative Works that You distribute, all copyright, + patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do + not pertain to any part of the Derivative Works; and</p></li> + + <li><p>If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that + You distribute must include a readable copy of the attribution notices contained within such NOTICE file, + excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the + following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source + form or documentation, if provided along with the Derivative Works; or, within a display generated by the + Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file + are for informational purposes only and do not modify the License. You may add Your own attribution notices + within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, + provided that such additional attribution notices cannot be construed as modifying the License.</p></li> + </ol><p>You may add Your own copyright statement to Your modifications and may provide additional or different + license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such + Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies + with the conditions stated in this License.</p></li> + + <li><p>Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally + submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this + License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede + or modify the terms of any separate license agreement you may have executed with Licensor regarding such + Contributions.</p></li> + + <li><p>Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or + product names of the Licensor, except as required for reasonable and customary use in describing the origin of + the Work and reproducing the content of the NOTICE file.</p></li> + + <li><p>Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the + Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, + NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for + determining the appropriateness of using or redistributing the Work and assume any risks associated with Your + exercise of permissions under this License.</p></li> + + <li><p>Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), + contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or + agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, + special, incidental, or consequential damages of any character arising as a result of this License or out of the + use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, + computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages.</p></li> + + <li><p>Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, + You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability + obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You + agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted + against, such Contributor by reason of your accepting any such warranty or additional liability.</p></li> + </ol> + + <p>END OF TERMS AND CONDITIONS</p> + + <p>APPENDIX: How to apply the Apache License to your work.</p> + + <p style="margin-left: 2em;">To apply the Apache License to your work, attach the following boilerplate notice, + with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the + brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend + that a file or class name and description of purpose be included on the same "printed page" as the copyright + notice for easier identification within third-party archives.</p> + + <p>Copyright [yyyy] [name of copyright owner]</p> + + <p>Licensed 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</p> + + <p style="margin-left: 2em;">http://www.apache.org/licenses/LICENSE-2.0</p> + + <p>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.</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file Added: trunk/site/resources/downloads/icontract-jdk1_1_7.orig.jar =================================================================== (Binary files differ) Property changes on: trunk/site/resources/downloads/icontract-jdk1_1_7.orig.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/site/resources/downloads/icontract-jdk1_2.orig.jar =================================================================== (Binary files differ) Property changes on: trunk/site/resources/downloads/icontract-jdk1_2.orig.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/site/resources/downloads/icontract2-src.zip =================================================================== (Binary files differ) Property changes on: trunk/site/resources/downloads/icontract2-src.zip ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/site/resources/downloads/icontract2.jar =================================================================== (Binary files differ) Property changes on: trunk/site/resources/downloads/icontract2.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/site/resources/stylesheets/jcontracts.css =================================================================== --- trunk/site/resources/stylesheets/jcontracts.css 2006-11-21 17:35:40 UTC (rev 7) +++ trunk/site/resources/stylesheets/jcontracts.css 2006-11-23 08:07:07 UTC (rev 8) @@ -36,6 +36,11 @@ width: 30em; } +p.licensetitle +{ + text-align: center; +} + ul { width: 30em; @@ -46,6 +51,24 @@ margin-top: 0; } +ul.menu +{ + display: inline; + border-top-width: 1px; + border-top-style: solid; + border-top-color: #00000; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #00000; +} + +li.menu +{ + padding-left: 1em; + padding-right: 1em; + display: inline; +} + dl { width: 30em; Added: trunk/site/roadmap.html =================================================================== --- trunk/site/roadmap.html (rev 0) +++ trunk/site/roadmap.html 2006-11-23 08:07:07 UTC (rev 8) @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Roadmap - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu">Roadmap</li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Roadmap</h1> + + <p>The first thing that has to be done is to clean up the current code. This includes but is not limited to + formatting the source consistently, ensuring copyright statements, authors, product names, URLs, etc. are correct, + adding a license header to each source file, and changing literals to constants.</p> + + <p>After cleaning up the code it would seem logical to start implementing new features but there are two major + issues with the current code. The first issue is that the grammar for the parser has been lost. This means that + fixing bugs in the parser is a lot more difficult if not impossible. The other issue is that the syntax of Java 5 + (e.g. generics, annotations) is not supported. Because of these issues no new features will be added to the + current code. Bug fixes, performance improvements, etc. will be applied.</p> + + <p>Once the current code has been cleaned up the development of a new implementation will be started. This + implementation will fully support Java versions 1.4 and higher. Although backwards compatibility with the current + version is desirable, it could be decided that it is better to do things differently based on user input.</p> + + <p>Don't expect this new version in the near future though. It will require the implementation of a complex + compiler which takes a lot of time.</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2006-11-23 12:37:49
|
Revision: 13 http://svn.sourceforge.net/jcontracts/?rev=13&view=rev Author: jstuyts Date: 2006-11-23 04:37:47 -0800 (Thu, 23 Nov 2006) Log Message: ----------- Added participation page to the site. Modified Paths: -------------- trunk/site/documentation.html trunk/site/download.html trunk/site/index.html trunk/site/license.html trunk/site/roadmap.html Added Paths: ----------- trunk/site/participate.html Modified: trunk/site/documentation.html =================================================================== --- trunk/site/documentation.html 2006-11-23 10:39:31 UTC (rev 12) +++ trunk/site/documentation.html 2006-11-23 12:37:47 UTC (rev 13) @@ -18,6 +18,8 @@ <li class="menu">Documentation</li> + <li class="menu"><a href="participate.html">Participate</a></li> + <li class="menu"><a href="download.html">Download</a></li> <li class="menu"><a href="license.html">License</a></li> Modified: trunk/site/download.html =================================================================== --- trunk/site/download.html 2006-11-23 10:39:31 UTC (rev 12) +++ trunk/site/download.html 2006-11-23 12:37:47 UTC (rev 13) @@ -18,6 +18,8 @@ <li class="menu"><a href="documentation.html">Documentation</a></li> + <li class="menu"><a href="participate.html">Participate</a></li> + <li class="menu">Download</li> <li class="menu"><a href="license.html">License</a></li> Modified: trunk/site/index.html =================================================================== --- trunk/site/index.html 2006-11-23 10:39:31 UTC (rev 12) +++ trunk/site/index.html 2006-11-23 12:37:47 UTC (rev 13) @@ -18,6 +18,8 @@ <li class="menu"><a href="documentation.html">Documentation</a></li> + <li class="menu"><a href="participate.html">Participate</a></li> + <li class="menu"><a href="download.html">Download</a></li> <li class="menu"><a href="license.html">License</a></li> Modified: trunk/site/license.html =================================================================== --- trunk/site/license.html 2006-11-23 10:39:31 UTC (rev 12) +++ trunk/site/license.html 2006-11-23 12:37:47 UTC (rev 13) @@ -18,6 +18,8 @@ <li class="menu"><a href="documentation.html">Documentation</a></li> + <li class="menu"><a href="participate.html">Participate</a></li> + <li class="menu"><a href="download.html">Download</a></li> <li class="menu">License</li> Added: trunk/site/participate.html =================================================================== --- trunk/site/participate.html (rev 0) +++ trunk/site/participate.html 2006-11-23 12:37:47 UTC (rev 13) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Particpate - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu">Participate</li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Participate</h1> + + <p>Java Contract Suite can only become better if you help us. This can be done in many ways, some of which are + listed below:</p> + + <ul> + <li>entering bug reports, feature requests, etc.;</li> + + <li>fixing bugs, implementing feature request, etc.;</li> + + <li>help other users.</li> + </ul> + + <p>To help with participation we have a number of tools. Below is a description of each tool.</p> + + <h1>News</h1> + + <p>For each significant event related to the project a new item will be posted to the <a + href="https://sourceforge.net/news/?group_id=175492">news page of the project</a>.</p> + + <p>If you want to be kept up-to-date automatically subscribe to one of the <i>project news releases</i> feeds at + <a href="https://sourceforge.net/export/rss2_project.php?group_id=175492">RSS page of the project</a>.</p> + + <h1>Mailing lists</h1> + + <p>The project makes use of four mailing lists. Two of them are for discussion among users and developers, and the + other two are for monitoring the activity of the issue tracker and the source repository.</p> + + <dl> + <dt>users</dt> + + <dd>Users of Java Contract Suite can discuss their experiences, best practices, problems, etc. here.</dd> + + <dt>developers</dt> + + <dd>Developers of Java Contract Suite can discuss development related issues here.</dd> + + <dt>issues</dt> + + <dd>For all modifications to issues a message will be posted here. Please do not post to this mailing list + directly.</dd> + + <dt>svn</dt> + + <dd>For all commits to the source repository a message will be posted here. Please do not post to this mailing + list directly.</dd> + </dl> + + <p>You can subscribe to these mailing lists at the <a href="https://sourceforge.net/mail/?group_id=175492">mailing + lists page of the project</a>.</p> + + <h1>Issue tracker</h1> + + <p>If you have a feature that you would like to see implemented or improved, or you have found a bug you can + create an issue for it. This way the development can keep track of the tasks that have to be performed. The + project uses a <a href="https://sourceforge.net/tracker/?group_id=175492&atid=889550">single issue tracker</a> + for all types of issues.</p> + + <p>If you enter an issues we request that you prefix an issue type code surrounded by square brackets to the + summary of the issue. For example, for a new feature you would prefix <code>[NEW]</code>. Here is the list of + issue types:</p> + + <dl> + <dt>NEW</dt> + + <dd>Request for a new feature.</dd> + + <dt>ENH</dt> + + <dd>Request for enhancement of an existing feature.</dd> + + <dt>BUG</dt> + + <dd>The program behaves in an undesired manner.</dd> + </dl> + + <h1>Source repository</h1> + + <p>If you want to help improve the code of Java Contract Suite you can obtain the source from the source + repository. Instructions on how to get the source can be found on the <a + href="https://sourceforge.net/svn/?group_id=175492">Subversion page of the project</a>.</p> + + <p>Please use Subversion and the source repository instead of the source Zip file, because by using Subversion you + will be able to create patches which can easily be merged with the code by a committer.</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file Modified: trunk/site/roadmap.html =================================================================== --- trunk/site/roadmap.html 2006-11-23 10:39:31 UTC (rev 12) +++ trunk/site/roadmap.html 2006-11-23 12:37:47 UTC (rev 13) @@ -18,6 +18,8 @@ <li class="menu"><a href="documentation.html">Documentation</a></li> + <li class="menu"><a href="participate.html">Participate</a></li> + <li class="menu"><a href="download.html">Download</a></li> <li class="menu"><a href="license.html">License</a></li> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2006-11-23 12:54:53
|
Revision: 14 http://svn.sourceforge.net/jcontracts/?rev=14&view=rev Author: jstuyts Date: 2006-11-23 04:54:51 -0800 (Thu, 23 Nov 2006) Log Message: ----------- Moved downloads to file releases page so they don't have to be uploaded each time the site changes. Modified Paths: -------------- trunk/site/download.html Removed Paths: ------------- trunk/site/resources/downloads/ Modified: trunk/site/download.html =================================================================== --- trunk/site/download.html 2006-11-23 12:37:47 UTC (rev 13) +++ trunk/site/download.html 2006-11-23 12:54:51 UTC (rev 14) @@ -30,21 +30,12 @@ <p>The current release is v1.01.00b01. It is practically the same as the JAR compiled by John Swapceinski which is available from <a href="http://www.icontract2.org/">http://www.icontract2.org/</a>, but the classes have been moved to another package. You can download the release from the <a - href="https://sourceforge.net/project/showfiles.php?group_id=175492"><i>files</i> page of the project</a>.</p> + href="https://sourceforge.net/project/showfiles.php?group_id=175492">file releases page of the project</a>.</p> - <p>You can download the original JAR files, the source code of the original JAR for JDK 1.2 which has been - modified so it builds using a modern version of Java, and the JAR built from the source code here:</p> + <p>At the same page you can also download the original JAR files (package <i>icontract</i>), the source code of + the original JAR for JDK 1.2 which has been modified so it builds using a modern version of Java (package + <i>icontract2</i>), and the JAR built from this source code (package <i>icontract2</i>).</p> - <ul> - <li><a href="resources/downloads/icontract-jdk1_1_7.orig.jar">original JAR for JDK 1.1.7</a></li> - - <li><a href="resources/downloads/icontract-jdk1_2.orig.jar">original JAR for JDK 1.2</a></li> - - <li><a href="resources/downloads/icontract2-src.zip">source code</a></li> - - <li><a href="resources/downloads/icontract2.jar">JAR built from source code</a></li> - </ul> - <hr /> <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2008-05-09 17:09:03
|
Revision: 49 http://jcontracts.svn.sourceforge.net/jcontracts/?rev=49&view=rev Author: jstuyts Date: 2008-05-09 10:08:59 -0700 (Fri, 09 May 2008) Log Message: ----------- Added some documentation. Modified Paths: -------------- trunk/site/documentation.html Added Paths: ----------- trunk/site/addingContracts.html trunk/site/building.html trunk/site/contractInheritance.html trunk/site/download.html trunk/site/index.html trunk/site/license.html trunk/site/participate.html trunk/site/resources/images/dataflow.gif trunk/site/roadmap.html Removed Paths: ------------- trunk/site/download.html trunk/site/index.html trunk/site/license.html trunk/site/participate.html trunk/site/roadmap.html Added: trunk/site/addingContracts.html =================================================================== --- trunk/site/addingContracts.html (rev 0) +++ trunk/site/addingContracts.html 2008-05-09 17:08:59 UTC (rev 49) @@ -0,0 +1,217 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Documentation - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="participate.html">Participate</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Adding contracts</h1> + + <h2>Basics</h2> + + <p>Contracts are used to specify the client-visible behavior of an object without saying anything about how this + behavior is implemented. For JContractS contracts are specified as assertions attached to Javadoc tags in Javadoc + comments. There are three types of contracts: preconditions, postconditions and invariants. The purpose of each + type is explained below.</p> + + <p>Multiple Javadoc tags of the same type are allowed. If you specify multiple tags, the tags of the same type + will be evaluated in the order specified. If an assertion fails the following assertions will not be evaluated. + This way assertions can be used that assume the conditions of preceding assertions hold. It works the same as + conditional logical operator where following terms can assume the preceding terms held.</p> + + <p>The assertions are written using standard Java expression with some extensions. The extensions are explained in + following sections.</p> + + <h3>Invariants</h3> + + <p>An invariant describes what assertions must hold during the lifetime of an object. It describes the valid state + of an object. The assertions do not have to hold all the time, it is allowed for a method to temporarily change + the object to an invalid state. But after the method has finished, the object must have a state that is valid + according to the assertions of the invariant. More specifically, the invariant is checked after creation and after + invocation of a public method. This allows protected, package-visible and private methods to change the object as + they see fit.</p> + + <p>The invariant is added to the Javadoc comment of the type. The assertions of an invariant are preceded by the + Javadoc tag <code>@inv</code>. Here is the invariant for a (simple) stack:</p> + + <pre>/** + * @inv getSize() >= 0 + */ +public interface Stack +{ + ... +}</pre> + + <p>This invariant states that the size will always be a non-negative integer.</p> + + <h3>Preconditions</h3> + + <p>A precondition is used to state when it is valid to invoke a method. It is used in addition to the invariant + which must hold for all methods. The precondition usually ensures that a method is only invoked when the object is + in the correct state for that method, and that the parameters passed are valid. A method only has to work + correctly when its precondition holds. If the precondition does not hold then the result of the method is + unpredictable.</p> + + <p>Preconditions are added to the Javadoc comment of methods. They are preceded by the Javadoc tag + <code>@pre</code>. Here is the precondition for method <code>pop()</code> of a stack:</p> + + <pre>/** + * @pre getSize() > 0 + */ +Object pop();</pre> + + <p>This preconditions states that it is only valid to invoke <code>pop()</code> when <code>getSize()</code> + returns a value greater than zero.</p> + + <h3>Postconditions</h3> + + <p>A postcondition states what the correct behavior of a method is. It is used in addition to the invariant which + must hold for all methods. The postcondition usually ensures that a method changes the state of an object + correctly, and that the return value is valid. If the method was called when the precondition held, the method is + required to ensure that its postcondition (and the invariant) will hold.</p> + + <p>Just like preconditions, postconditions are added to the Javadoc comment of methods. Postconditions are + preceded by the Javadoc tag <code>@post</code>. Here is the postcondition of <code>pop()</code>:</p> + + <pre>/** + * @post return != null + */ +Object pop();</pre> + + <p>The postcondition states that <code>pop()</code> will never return a value that is <code>null</code>.</p> + + <h3>Full example</h3> + + <p>Here is the full source code for a simple stack interface:</p> + + <pre>/** + * @inv getSize() >= 0 + */ +public interface Stack +{ + /** + * @post return >= 0 + */ + int getSize(); + /** + * @pre element != null + */ + void push(Object element); + /** + * @pre getSize() > 0 + * @post return != null + */ + Object pop(); +}</pre> + + <h2>Referencing old state</h2> + + <p>It is often very useful to describe the new state of an object in postconditions in terms of its previous + state. Take the postcondition of <code>push(Object)</code> and <code>pop()</code> for example, in addition to the + postconditions that were specified above it is useful to add postconditions that state that the size of the stack + has increased and decreased respectively.</p> + + <p>For this purpose a special expression is present that allows capturing the value of an expression from before + the method invocation. To capture the value of an expression, append <code>@pre</code> to it. Here is the new + postcondition of <code>push(Object)</code>:</p> + + <pre>/** + * @post getSize() == getSize()@pre + 1 + */ +void push(Object element)</pre> + + <p>And here is the extended postcondition of <code>pop()</code>:</p> + + <pre>/** + * @post return != null + * @post getSize() == getSize()@pre - 1 + */ +Object pop()</pre> + + <h2>Logical operators</h2> + + <h3>Implies</h3> + + <p>An operator that is very useful in assertions but is missing from Java is the <i>implies</i> operator. This + operator can be used to state that an expression <i>q</i>, must hold if expression <i>p</i> holds. But if <i>p</i> + does not hold, <i>q</i> is allowed to either hold or not.</p> + + <p>Suppose you have an object that can either be enabled or disabled. When the object is disabled it must have a + reason why it was disabled. Using <i>implies</i> it is easy and intuitive to specify this in the precondition of + the method that changes the state.</p> + + <pre>/** + * @pre !enable implies reason != null + */ +void setState(boolean enable, String reason);</pre> + + <p>Although this operator can also be written as <code>!p || q</code>, it is very useful to have a separate + operator for it because it reveals the intention better. Compare the precondition above with its rewritten + version:</p> + + <pre>/** + * @pre enable || reason != null + */ +void setState(boolean enable, String reason);</pre> + + <h2>Quantifiers</h2> + + <p>Besides single-value fields/parameters collections of values are also used. It must be possible to state + something about the values in these collections too. This requires iterating over a collection in an assertion. As + this is very cumbersome and verbose, additional operators have been added to JContractS to make this easier.</p> + + <p>These operators are called quantifiers and there are two variants: <code>forall</code> and + <code>exists</code>.</p> + + <h3>Forall</h3> + + <p>A <code>forall</code> expression holds if an assertion holds for each and every element in the collection.</p> + + <p>Suppose you have a method that only works on collections of non-negative integers. You can add an assertion to + the precondition that will verify that clients do not pass collections with negative integers:</p> + + <pre>/** + * @pre forall Integer i in values | i.intValue() >= 0 + */ +List squareRoots(List values);</pre> + + <h3>Exists</h3> + + <p>An <code>exists</code> expression holds if an assertion holds for at least one element in the collection.</p> + + <p>Suppose you book groups of people into a hotel, but a group is only allowed to make a reservation if at + least one of them is an adult.</p> + + <pre>/** + * @pre exists Person p in people | p.getAge() >= 18 + */ +void book(Set people);</pre> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JContractS at SourceForge.net</a></p> + </body> +</html> Added: trunk/site/building.html =================================================================== --- trunk/site/building.html (rev 0) +++ trunk/site/building.html 2008-05-09 17:08:59 UTC (rev 49) @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Documentation - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="participate.html">Participate</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Building</h1> + + <h2>Overview</h2> + + <p>When you start using JContractS you have to add a few additional steps to your build process. This is because + JContractS and your other projects need differently built JAR files at different times. Below is a dataflow + diagram of how your Java sources are transformed to, in this case, four sets of compiled classes. Each set has its + own purpose:</p> + + <p><img alt="Data flow from Java sources to multiple sets of compiled classes" + src="resources/images/dataflow.gif" /></p> + + <p>The leftmost branch of the diagram represents the standard compilation of the Java sources. No changes are + needed here. You can use the result of this branch if you do not want to use contracts at all.</p> + + <p>As you can see each configuration of enabled contracts (preconditions and/or postconditions and/or invariants) + needs its own branch of instrumented sources: the 2nd and fourth branches.</p> + + <p>In addition a set of repository classes is generated. The repository classes are used by projects depending on + this project to read the contracts of superclasses without needing access to the source code. The repository + classes are the same for all configurations of enabled contracts.</p> + + <h2>Steps</h2> + + <p>The Java compiler and JContractS in the above diagram have to be applied in the following order:</p> + + <ol> + <li>Java compiler: compile the Java sources to classes without contracts.</li> + + <li>JContractS <i>config</i> (<i>n</i> times): generate the instrumented sources and repository sources.</li> + + <li>Java compiler <i>config</i> (<i>n</i> times): compile the instrumented sources to classes with + contracts.</li> + + <li>Java compiler repo: compile the repository sources to classes.</li> + </ol> + + <h2>Classpaths</h2> + + <p>Each step needs its own specific classpath. What is needed on the classpath is detailed below.</p> + + <h3>Java compiler</h3> + + <p>The following items must be on the classpath passed to the Java compiler:</p> + + <ul> + <li>Classes without contracts of contract-enabled dependencies (the result of the leftmost branch of the + diagram).</li> + + <li>Classes of regular dependencies.</li> + + <li>Destination directory for classes without contracts.</li> + </ul> + + <h3>JContractS <i>config</i></h3> + + <p>The following items must be on the classpath used to run JContractS:</p> + + <ul> + <li>JContractS and log4j.</li> + + <li>Classes with <i>config</i> contracts of contract-enabled dependencies (the result of the 2nd or the 4th + branch of the diagram).</li> + + <li>Repository classes of contract-enabled dependencies, (the result of the 3rd branch of the diagram).</li> + + <li>Classes of regular dependencies.</li> + + <li>Destination directory for classes without contracts.</li> + </ul> + + <h3>Java compiler <i>config</i></h3> + + <p>The following items must be on the classpath passed to the Java compiler:</p> + + <ul> + <li>Classes with <i>config</i> contract of contract-enabled dependencies (the result of the 2nd or the 4th + branch of the diagram).</li> + + <li>Classes of regular dependencies.</li> + + <li>Destination directory for classes with <i>config</i> contracts.</li> + </ul> + + <h3>Java compiler repo</h3> + + <p>The following items must be on the classpath passed to the Java compiler:</p> + + <ul> + <li>Repository classes of contract-enabled dependencies (the result of the 3rd branch of the diagram).</li> + + <li>Destination directory for repository classes.</li> + </ul> + + <h2>Example steps</h2> + + <h3>Project without contract-enabled dependencies (prj1)</h3> + + <p>Java compiler:</p> + + <pre>javac -classpath somelib.jar;target\classes + -sourcepath src + -d target\classes + src\com\acme\prj1\*.java</pre> + + <p>JContractS <i>config</i>:</p> + + <pre>java -classpath jcontracts.jar;log4j.jar;somelib.jar;target\classes + net.sf.jcontracts.icontract.Tool + -m<i>enabled-contracts</i> + -otarget\<i>config</i>-src\@p\@f.java + -ktarget\repo-src\@p + src\*.java</pre> + + <p>Java compiler <i>config</i>:</p> + + <pre>javac -classpath somelib.jar;target\<i>config</i>-classes + -sourcepath target\<i>config</i>-src + -d target\<i>config</i>-classes + target\<i>config</i>-src\com\acme\prj1\*.java</pre> + + <p>Java compiler repo:</p> + + <pre>javac -classpath target\repo-classes + -sourcepath target\repo-src + -d target\repo-classes + target\repo-src\com\acme\prj1\*.java</pre> + + <h3>Project with contract-enabled dependencies (prj2)</h3> + + <p>Java compiler:</p> + + <pre>javac -classpath prj1.jar;somelib.jar;target\classes + -sourcepath src + -d target\classes + src\com\acme\prj2\*.java</pre> + + <p>JContractS <i>config</i>:</p> + + <pre>java -classpath jcontract.jar;log4j.jar;prj1-<i>config</i>.jar;prj1-repo.jar;somelib.jar;target\classes + net.sf.jcontracts.icontract.Tool + -m<i>config</i> + -otarget\<i>config</i>-src\@p\@f.java + -ktarget\repo-src\@p + src\*.java</pre> + + <p>Java compiler <i>config</i>:</p> + + <pre>javac -classpath prj1-<i>config</i>.jar;somelib.jar;target\<i>config</i>-classes + -sourcepath target\<i>config</i>-src + -d target\<i>config</i>-classes + target\<i>config</i>-src\com\acme\prj2\*.java</pre> + + <p>Java compiler repo:</p> + + <pre>javac -classpath prj1-repo.jar;target\repo-classes + -sourcepath target\repo-src + -d target\repo-classes + target\repo-src\com\acme\prj2\*.java</pre> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JContractS at SourceForge.net</a></p> + </body> +</html> Added: trunk/site/contractInheritance.html =================================================================== --- trunk/site/contractInheritance.html (rev 0) +++ trunk/site/contractInheritance.html 2008-05-09 17:08:59 UTC (rev 49) @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Documentation - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="participate.html">Participate</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Contract inheritance</h1> + + <h2>The basics</h2> + + <p>The contracts of a base type are automatically inherited by suptypes. This is very straightforward:</p> + + <ul> + <li>the preconditons of methods are inherited by overriding methods;</li> + <li>the postconditons of methods are inherited by overriding methods;</li> + <li>the invariant is inherited by the subtype.</li> + </ul> + + + <p>In addition, subtypes are allowed to extend the contracts of their base types. A subtype can:</p> + + <ul> + <li>make the preconditons less strict (called <i>weakening</i>);</li> + <li>make the postconditons stricter (called <i>strengthening</i>);</li> + <li>extend the invariant with assertions about the new attributes.</li> + </ul> + + <p>Each of these extensions is described below.</p> + + <h2><a name="inheritingMultipleTimes" />Inheriting the same method from multiple types</h2> + + <p>When the same method is inherited from multiple types it is impossible to generate correct pre- + and postconditions for the overriding method. The combination of preconditions (the same effect as + <a href="#weakening">weakening</a>, see below) makes the overriding method too permissive about + parameters passed by clients of the base types. And the combination of postconditions (the same effect + as <a href="#strengthening">strengthening</a>) can cause valid return values for a base type to be + rejected. It is even possible that all return values are rejected because no value can satisfy the + combination of postconditions.</p> + + <p>Because of this issue inheritance of the same method from multiple types is not allowed.</p> + + <p>Here is an example showing how the combination of pre- and postconditions would lead to unwanted + results. This is the method declaration from the first base type:</p> + + <pre>/** + * @pre v >= 10 + * @post return <= 0 + */ +int someCalculation(int v);</pre> + + <p>And this is the method declaration from the second base type:</p> + + <pre>/** + * @pre v <= 0 + * @post return > 100 + */ +int someCalculation(int v);</pre> + + <p>If a class is a subtype of both base types, simply combining the pre- and postconditions will + lead to the following pre- and postcondition:</p> + + <pre>/** + * @pre (v >= 10) | (v <= 0) + * @post (return <= 0) & (return > 100) + */ +public int someCalculation(int v) +{ + ... +}</pre> + + <p>Due to the way the preconditions are combined, a client of the first base type that invokes + <code>someCalculation</code> cannot only pass values greater than or equal to 10, but can also pass values + less than or equal to zero without a problem. However the values less than or equal should not be accepted + because the contract of the first base type does not allow them. If the client does pass values less than or + equal to zero it contains a bug, but this bug cannot detected.</p> + + <p>The combination of postconditions prevents this method from returning any result at all as there is no + integer that is both less than or equal to zero, and greater than one hundred.</p> + + <h2><a name="weakening" />Weakening preconditions</h2> + + <p>Preconditions of a base type and a subtype are combined using a logical <i>or</i> to construct the actual + precondition of the subtype. This makes the actual precondition less restrictive, hence the term + <i>weakening</i>:</p> + + <pre>(precondition base type) | (precondition subtype)</pre> + + <p>Weakening the preconditions of a base type can lead to unexpected results. Code that has been tested against + a weakened type could use parameter values that are not acceptable to the contracts of the base type. When the + implementation is changed to an unweakened one, new contract violations can be detected. For this reason, it is + advisable to never weaken preconditions. This is the same issue as inheriting preconditions from multiple base + types. See <a href="#inheritingMultipleTimes"><i>inheriting the same method from multiple types</i></a> above + for an example.</p> + + <h2><a name="strengthening" />Strengthening postconditions</h2> + + <p>The term <i>strengthening</i> is used because the way in which postconditions of a base type and a subtype are + combined makes the actual postcondition of the subtype more restrictive than the original two. Postconditions + are combined by using a logical <i>and</i>:</p> + + <pre>(postcondition base type) & (postcondition subtype)</pre> + + <p>When you strengthen a postcondition there are some things you have to take into account.</p> + + <p>It is your responsibility to make sure postconditions in subtypes do not strengthen the postcondition in such a + way that all return values become invalid.</p> + + <p>Clients of a method that invoke strengthened methods will only receive a subset of the possible results of the + original method. This means you cannot test your client with all possible return values, so bugs (instead of + contract violations) might surface if the implementation is changed to one that does return all possible values.</p> + + <h2>Invariants</h2> + + <p>Invariants are combined in the same way as postconditions: by using a logical <i>and</i>. However, the term + <i>strengthening</i> is not used for invariants because (in general) an invariant of a subtype only has assertions + about the attributes and methods introduced in that subtype. The restrictions on the members of the base type + are not altered:</p> + + <pre>(invariant base type) & (invariant subtype)</pre> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JContractS at SourceForge.net</a></p> + </body> +</html> Modified: trunk/site/documentation.html =================================================================== --- trunk/site/documentation.html 2008-05-09 17:08:10 UTC (rev 48) +++ trunk/site/documentation.html 2008-05-09 17:08:59 UTC (rev 49) @@ -27,8 +27,20 @@ <h1>Documentation</h1> - <p>The documentation for the command-line tool and the reference of the contract syntax will appear here soon.</p> + <ul> + <li> + <a href="building.html">Building projects</a> + </li> + <li> + <a href="addingContracts.html">Adding contracts</a> + </li> + + <li> + <a href="contractInheritance.html">Contract inheritance</a> + </li> + </ul> + <hr /> <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" @@ -36,4 +48,4 @@ <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> </body> -</html> \ No newline at end of file +</html> Deleted: trunk/site/download.html =================================================================== --- trunk/site/download.html 2008-05-09 17:08:10 UTC (rev 48) +++ trunk/site/download.html 2008-05-09 17:08:59 UTC (rev 49) @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html> - <head> - <title>Download - Java Contract Suite</title> - - <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> - - <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> - </head> - - <body> - <ul class="menu"> - <li class="menu"><a href="index.html">Home</a></li> - - <li class="menu"><a href="roadmap.html">Roadmap</a></li> - - <li class="menu"><a href="documentation.html">Documentation</a></li> - - <li class="menu"><a href="participate.html">Participate</a></li> - - <li class="menu">Download</li> - - <li class="menu"><a href="license.html">License</a></li> - </ul> - - <h1>Download</h1> - - <p>The current release is v1.01.00b01. It is practically the same as the JAR compiled by John Swapceinski which is - available from <a href="http://www.icontract2.org/">http://www.icontract2.org/</a>, but the classes have been - moved to another package. You can download the release from the <a - href="https://sourceforge.net/project/showfiles.php?group_id=175492">file releases page of the project</a>.</p> - - <p>At the same page you can also download the original JAR files (package <i>icontract</i>), the source code of - the original JAR for JDK 1.2 which has been modified so it builds using a modern version of Java (package - <i>icontract2</i>), and the JAR built from this source code (package <i>icontract2</i>).</p> - - <hr /> - - <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" - src="resources/images/sflogo.png" width="125" /></a></div> - - <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> - </body> -</html> \ No newline at end of file Added: trunk/site/download.html =================================================================== --- trunk/site/download.html (rev 0) +++ trunk/site/download.html 2008-05-09 17:08:59 UTC (rev 49) @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Download - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="participate.html">Participate</a></li> + + <li class="menu">Download</li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Download</h1> + + <p>The current release is v1.01.00b02. It is a cleaned up version of the reverse engineered JAR with as much + functionality as possible removed to make the code simpler. The code also has been moved to another package. + You can download the release from the <a href="https://sourceforge.net/project/showfiles.php?group_id=175492">file + releases page of JContractS</a>.</p> + + <p>At the same page you can also download the original JAR files (package <i>icontract</i>), the source code of + the original JAR for JDK 1.2 which has been modified so it builds using a modern version of Java (package + <i>icontract2</i>), and the JAR built from this source code (package <i>icontract2</i>).</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JContractS at SourceForge.net</a></p> + </body> +</html> Deleted: trunk/site/index.html =================================================================== --- trunk/site/index.html 2008-05-09 17:08:10 UTC (rev 48) +++ trunk/site/index.html 2008-05-09 17:08:59 UTC (rev 49) @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html> - <head> - <title>Welcome to Java Contract Suite</title> - - <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> - - <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> - </head> - - <body> - <ul class="menu"> - <li class="menu">Home</li> - - <li class="menu"><a href="roadmap.html">Roadmap</a></li> - - <li class="menu"><a href="documentation.html">Documentation</a></li> - - <li class="menu"><a href="participate.html">Participate</a></li> - - <li class="menu"><a href="download.html">Download</a></li> - - <li class="menu"><a href="license.html">License</a></li> - </ul> - - <h1>Introduction</h1> - - <p>Java Contract Suite (JcontractS) is a resurrection of the iContract tool originally developed by Reto Kramer of - Reliable Systems. John Swapceinski started the resurrection by decompiling the original JAR files, and making the - sources compile with JDK 1.4 and higher. The result of his work can be found on <a - href="http://www.icontract2.org/">www.icontract2.org</a>.</p> - - <p>Johan Stuyts started the SourceForge.net project so proper further development of the project can take - place.</p> - - <p>The project is being setup at the moment. More information will appear soon. If you cannot wait you can grab - the source from the Subversion repository. Follow the instructions on the <a - href="https://sourceforge.net/svn/?group_id=175492">Subversion page of the project</a>.</p> - - <h1>Goals</h1> - - <p>Java Contract Suite aims to be Design by Contract implementation for Java 1.4 source code. Support for source - code of higher Java versions will be added in the future.</p> - - <p>Even though there have been a number of Design by Contract implementations in the past, the adoption of Design - by Contract has been minimal. To accelerate adoption the project is available under the liberal Apache License - Version 2.0, and will try to provide tasks/extensions/plugins for as many development tools as possible.</p> - - <h1>Why iContract?</h1> - - <p>There were other, more active Design by Contract implementations than iContract when it was resurrected. Below - are the reasons for choosing iContract instead of another implementation.</p> - - <p>With iContract the code and the contracts are kept in the same location. The invariants, preconditions and - postconditions are added to the Javadoc of the classes and methods. You don't have to switch between two files - constantly during development.</p> - - <p>The syntax used by iContract is clean and terse. It is easy to read and understand for people who have never - used iContract before.</p> - - <p>iContract supports Java 1.4. Some other implementations make use of annotations, which require Java 5 or - higher.</p> - - <p>There is no need for JVM parameters, JVM agents, specific class loaders and/or specific frameworks. The classes - built with iContract can be used as is in any deployment environment.</p> - - <h1>Other implementations</h1> - - <p>See the <a href="http://en.wikipedia.org/wiki/Design_by_contract">Design by Contract page at Wikipedia</a> for - a list of Design by Contract implementations for Java (and other languages).</p> - - <hr /> - - <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" - src="resources/images/sflogo.png" width="125" /></a></div> - - <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> - </body> -</html> \ No newline at end of file Added: trunk/site/index.html =================================================================== --- trunk/site/index.html (rev 0) +++ trunk/site/index.html 2008-05-09 17:08:59 UTC (rev 49) @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>Welcome to Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu">Home</li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="participate.html">Participate</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu"><a href="license.html">License</a></li> + </ul> + + <h1>Introduction</h1> + + <p>Java Contract Suite (JContractS) is a resurrection of the iContract tool originally developed by Reto Kramer of + Reliable Systems. John Swapceinski started the resurrection by decompiling the original JAR files, and making the + sources compile with JDK 1.4 and higher. The result of his work can be found on <a + href="http://www.icontract2.org/">www.icontract2.org</a>.</p> + + <p>Johan Stuyts started the SourceForge.net project so proper further development of the project can take + place.</p> + + <h1>Goals</h1> + + <p>Java Contract Suite aims to be Design by Contract implementation for Java 1.4 source code. Support for source + code of higher Java versions will be added in the future.</p> + + <p>Even though there have been a number of Design by Contract implementations in the past, the adoption of Design + by Contract has been minimal. To accelerate adoption the project is available under the liberal Apache License + Version 2.0, and will try to provide tasks/extensions/plugins for as many development tools as possible.</p> + + <h1>Why iContract?</h1> + + <p>There were other, more active Design by Contract implementations than iContract when it was resurrected. Below + are the reasons for choosing iContract instead of another implementation.</p> + + <p>With iContract the code and the contracts are kept in the same location. The invariants, preconditions and + postconditions are added to the Javadoc of the classes and methods. You don't have to switch between two files + constantly during development.</p> + + <p>The syntax used by iContract is clean and terse. It is easy to read and understand for people who have never + used iContract before.</p> + + <p>iContract supports Java 1.4. Some other implementations make use of annotations, which require Java 5 or + higher.</p> + + <p>There is no need for JVM parameters, JVM agents, specific class loaders and/or specific frameworks. The classes + built with iContract can be used as is in any deployment environment.</p> + + <h1>Other implementations</h1> + + <p>See the <a href="http://en.wikipedia.org/wiki/Design_by_contract">Design by Contract page at Wikipedia</a> for + a list of Design by Contract implementations for Java (and other languages).</p> + + <hr /> + + <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" + src="resources/images/sflogo.png" width="125" /></a></div> + + <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JContractS at SourceForge.net</a></p> + </body> +</html> \ No newline at end of file Deleted: trunk/site/license.html =================================================================== --- trunk/site/license.html 2008-05-09 17:08:10 UTC (rev 48) +++ trunk/site/license.html 2008-05-09 17:08:59 UTC (rev 49) @@ -1,167 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html> - <head> - <title>License - Java Contract Suite</title> - - <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> - - <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> - </head> - - <body> - <ul class="menu"> - <li class="menu"><a href="index.html">Home</a></li> - - <li class="menu"><a href="roadmap.html">Roadmap</a></li> - - <li class="menu"><a href="documentation.html">Documentation</a></li> - - <li class="menu"><a href="participate.html">Participate</a></li> - - <li class="menu"><a href="download.html">Download</a></li> - - <li class="menu">License</li> - </ul> - - <h1>License</h1> - - <p class="licensetitle">Apache License<br />Version 2.0, January 2004<br />http://www.apache.org/licenses/</p> - - <p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p> - - <ol> - <li><p>Definitions.</p><p>"License" shall mean the terms and conditions for use, reproduction, and distribution - as defined by Sections 1 through 9 of this document.</p><p>"Licensor" shall mean the copyright owner or entity - authorized by the copyright owner that is granting the License.</p><p>"Legal Entity" shall mean the union of the - acting entity and all other entities that control, are controlled by, or are under common control with that - entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent - (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p><p>"You" (or "Your") - shall mean an individual or Legal Entity exercising permissions granted by this License.</p><p>"Source" form - shall mean the preferred form for making modifications, including but not limited to software source code, - documentation source, and configuration files.</p><p>"Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but not limited to compiled object code, generated - documentation, and conversions to other media types.</p><p>"Work" shall mean the work of authorship, whether in - Source or Object form, made available under the License, as indicated by a copyright notice that is included in - or attached to the work (an example is provided in the Appendix below).</p><p>"Derivative Works" shall mean any - work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial - revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of - authorship. For the purposes of this License, Derivative Works shall not include works that remain separable - from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works - thereof.</p><p>"Contribution" shall mean any work of authorship, including the original version of the Work and - any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to - Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to - submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of - electronic, verbal, or written communication sent to the Licensor or its representatives, including but not - limited to communication on electronic mailing lists, source code control systems, and issue tracking systems - that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner - as "Not a Contribution."</p><p>"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of - whom a Contribution has been received by Licensor and subsequently incorporated within the Work.</p></li> - - <li><p>Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to - reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work - and such Derivative Works in Source or Object form.</p></li> - - <li><p>Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby - grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in - this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the - Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily - infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such - Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or - counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes - direct or contributory patent infringement, then any patent licenses granted to You under this License for that - Work shall terminate as of the date such litigation is filed.</p></li> - - <li><p>Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any - medium, with or without modifications, and in Source or Object form, provided that You meet the following - conditions:</p><ol style="list-style-type: lower-latin;"> - <li><p>You must give any other recipients of the Work or Derivative Works a copy of this License; - and</p></li> - - <li><p>You must cause any modified files to carry prominent notices stating that You changed the files; - and</p></li> - - <li><p>You must retain, in the Source form of any Derivative Works that You distribute, all copyright, - patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do - not pertain to any part of the Derivative Works; and</p></li> - - <li><p>If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that - You distribute must include a readable copy of the attribution notices contained within such NOTICE file, - excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the - following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source - form or documentation, if provided along with the Derivative Works; or, within a display generated by the - Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file - are for informational purposes only and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, - provided that such additional attribution notices cannot be construed as modifying the License.</p></li> - </ol><p>You may add Your own copyright statement to Your modifications and may provide additional or different - license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such - Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies - with the conditions stated in this License.</p></li> - - <li><p>Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally - submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this - License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede - or modify the terms of any separate license agreement you may have executed with Licensor regarding such - Contributions.</p></li> - - <li><p>Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or - product names of the Licensor, except as required for reasonable and customary use in describing the origin of - the Work and reproducing the content of the NOTICE file.</p></li> - - <li><p>Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the - Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF - ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, - NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for - determining the appropriateness of using or redistributing the Work and assume any risks associated with Your - exercise of permissions under this License.</p></li> - - <li><p>Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), - contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or - agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, - special, incidental, or consequential damages of any character arising as a result of this License or out of the - use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, - computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages.</p></li> - - <li><p>Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, - You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability - obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You - agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted - against, such Contributor by reason of your accepting any such warranty or additional liability.</p></li> - </ol> - - <p>END OF TERMS AND CONDITIONS</p> - - <p>APPENDIX: How to apply the Apache License to your work.</p> - - <p style="margin-left: 2em;">To apply the Apache License to your work, attach the following boilerplate notice, - with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the - brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend - that a file or class name and description of purpose be included on the same "printed page" as the copyright - notice for easier identification within third-party archives.</p> - - <p>Copyright [yyyy] [name of copyright owner]</p> - - <p>Licensed 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</p> - - <p style="margin-left: 2em;">http://www.apache.org/licenses/LICENSE-2.0</p> - - <p>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.</p> - - <hr /> - - <div class="sourceforge-logo"><a href="http://sourceforge.net"><img alt="SourceForge.net Logo" height="37" - src="resources/images/sflogo.png" width="125" /></a></div> - - <p><a href="http://sourceforge.net/projects/jcontracts">The project page of JcontractS at SourceForge.net</a></p> - </body> -</html> \ No newline at end of file Added: trunk/site/license.html =================================================================== --- trunk/site/license.html (rev 0) +++ trunk/site/license.html 2008-05-09 17:08:59 UTC (rev 49) @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + <head> + <title>License - Java Contract Suite</title> + + <link href="resources/stylesheets/jcontracts.css" rel="stylesheet" type="text/css" /> + + <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> + </head> + + <body> + <ul class="menu"> + <li class="menu"><a href="index.html">Home</a></li> + + <li class="menu"><a href="roadmap.html">Roadmap</a></li> + + <li class="menu"><a href="documentation.html">Documentation</a></li> + + <li class="menu"><a href="participate.html">Participate</a></li> + + <li class="menu"><a href="download.html">Download</a></li> + + <li class="menu">License</li> + </ul> + + <h1>License</h1> + + <p class="licensetitle">Apache License<br />Version 2.0, January 2004<br />http://www.apache.org/licenses/</p> + + <p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p> + + <ol> + <li><p>Definitions.</p><p>"License" shall mean the terms and conditions for use, reproduction, and distribution + as defined by Sections 1 through 9 of this document.</p><p>"Licensor" shall mean the copyright owner or entity + authorized by the copyright owner that is granting the License.</p><p>"Legal Entity" shall mean the union of the + acting entity and all other entities that control, are controlled by, or are under common control with that + entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent + (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p><p>"You" (or "Your") + shall mean an individual or Legal Entity exercising permissions granted by this License.</p><p>"Source" form + shall mean the preferred form for making modifications, including but not limited to software source code, + documentation source, and configuration files.</p><p>"Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but not limited to compiled object code, generated + documentation, and conversions to other media types.</p><p>"Work" shall mean the work of authorship, whether in + Source or Object form, made available under the License, as indicated by a copyright notice that is included in + or attached to the work (an example is provided in the Appendix below).</p><p>"Derivative Works" shall mean any + work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial + revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of + authorship. For the purposes of this License, Derivative Works shall not include works that remain separable + from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works + thereof.</p><p>"Contribution" shall mean any work of authorship, including the original version of the Work and + any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to + Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to + submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of + electronic, verbal, or written communication sent to the Licensor or its representatives, including but not + limited to communication on electronic mailing lists, source code control systems, and issue tracking systems + that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner + as "Not a Contribution."</p><p>"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of + whom a Contribution has been received by Licensor and subsequently incorporated within the Work.</p></li> + + <li><p>Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to + reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work + and such Derivative Works in Source or Object form.</p></li> + + <li><p>Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in + this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the + Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily + infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such + Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or + counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes + direct or contributory patent infringement, then any patent licenses granted to You under this License for that + Work shall terminate as of the date such litigation is filed.</p></li> + + <li><p>Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any + medium, with or without modifications, and in Source or Object form, provided that You meet the following + conditions:</p><ol style="list-style-type: lower-latin;"> + <li><p>You must give any other recipients of the Work or Derivative Works a copy of this License; + and</p></li> + + <li><p>You must cause any modified files to carry prominent notices stating that You changed the files; + and</p></li> + + <li><p>You must retain, in the Source form of any Derivative Works that You distribute, all copyright, + patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do + not pertain to any part of the Derivative Works; and</p></li> + + <li><p>If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that + You distribute must include a readable copy of the attribution notices contained within such NOTICE file, + excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the + following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source + form or documentation, if provided along with the Derivative Works; or, within a display generated by the + Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file + are for informational purposes only and do not modify the License. You may add Your own attribution notices + within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, + provided that such additional attribution notices cannot be construed as modifying the License.</p></li> + </ol><p>You may add Your own copyright statement to Your modifications and may provide additional or different + license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such + Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies + with the conditions stated in this License.</p></li> + + <li><p>Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally + submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this + License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede + or modify the terms of any separate license agreement you may have executed with Licensor regarding such + Contributions.</p></li> + + <li><p>Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or + product names of the Licensor, except as required for reasonable and customary use in describing the origin of + the Work and reproducing the content of the NOTICE file.</p></li> + + <li><p>Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the + Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, + NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for + determining the appropriateness of using or redistributing the Work and assume any risks associated with Your + exercise of permissions under this License.</p></li> + + <li><p>Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), + contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or + agreed to in writing, shall an... [truncated message content] |