Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #516 from AnalyticalGraphicsInc/jshint

Add an Ant task that runs JSHint.
  • Loading branch information...
commit 1238aab45e1991c76be78747e38f8c8dc7883352 2 parents 6c9b0d2 + b2ae467
@pjcozzi pjcozzi authored
Showing with 17 additions and 33,344 deletions.
  1. +9 −0 .project
  2. +1 −0  Apps/Sandcastle/.gitignore
  3. +4 −59 Apps/Sandcastle/CesiumSandcastle.js
  4. +3 −2 Apps/Sandcastle/index.html
  5. +0 −203 Tools/apache-ant-1.8.2/docs/LICENSE
  6. +0 −70 Tools/apache-ant-1.8.2/docs/ant2/FunctionalRequirements.html
  7. +0 −253 Tools/apache-ant-1.8.2/docs/ant2/VFS.txt
  8. +0 −492 Tools/apache-ant-1.8.2/docs/ant2/actionlist.html
  9. +0 −381 Tools/apache-ant-1.8.2/docs/ant2/features.html
  10. +0 −294 Tools/apache-ant-1.8.2/docs/ant2/original-specification.html
  11. +0 −1,106 Tools/apache-ant-1.8.2/docs/ant2/requested-features.html
  12. +0 −782 Tools/apache-ant-1.8.2/docs/ant2/requested-features.txt
  13. +0 −1,115 Tools/apache-ant-1.8.2/docs/ant_in_anger.html
  14. +0 −507 Tools/apache-ant-1.8.2/docs/ant_task_guidelines.html
  15. +0 −411 Tools/apache-ant-1.8.2/docs/antlibs/antunit/index.html
  16. +0 −22 Tools/apache-ant-1.8.2/docs/antlibs/bindownload.cgi
  17. +0 −361 Tools/apache-ant-1.8.2/docs/antlibs/bindownload.html
  18. +0 −365 Tools/apache-ant-1.8.2/docs/antlibs/charter.html
  19. +0 −238 Tools/apache-ant-1.8.2/docs/antlibs/compress/index.html
  20. +0 −336 Tools/apache-ant-1.8.2/docs/antlibs/dotnet/index.html
  21. +0 −209 Tools/apache-ant-1.8.2/docs/antlibs/index.html
  22. +0 −592 Tools/apache-ant-1.8.2/docs/antlibs/proper.html
  23. +0 −281 Tools/apache-ant-1.8.2/docs/antlibs/props/index.html
  24. +0 −735 Tools/apache-ant-1.8.2/docs/antlibs/sandbox.html
  25. +0 −22 Tools/apache-ant-1.8.2/docs/antlibs/srcdownload.cgi
  26. +0 −360 Tools/apache-ant-1.8.2/docs/antlibs/srcdownload.html
  27. +0 −235 Tools/apache-ant-1.8.2/docs/antlibs/svn/index.html
  28. +0 −763 Tools/apache-ant-1.8.2/docs/antnews.html
  29. BIN  Tools/apache-ant-1.8.2/docs/appendix_e.pdf
  30. +0 −235 Tools/apache-ant-1.8.2/docs/breadcrumbs.js
  31. +0 −379 Tools/apache-ant-1.8.2/docs/bugs.html
  32. +0 −831 Tools/apache-ant-1.8.2/docs/bylaws.html
  33. +0 −553 Tools/apache-ant-1.8.2/docs/contributors.html
  34. +0 −7,561 Tools/apache-ant-1.8.2/docs/external.html
  35. +0 −2,284 Tools/apache-ant-1.8.2/docs/faq.html
  36. BIN  Tools/apache-ant-1.8.2/docs/favicon.ico
  37. BIN  Tools/apache-ant-1.8.2/docs/images/JDJEditorsChoiceAward.jpg
  38. BIN  Tools/apache-ant-1.8.2/docs/images/ant_logo.ico
  39. BIN  Tools/apache-ant-1.8.2/docs/images/ant_logo_large.gif
  40. BIN  Tools/apache-ant-1.8.2/docs/images/ant_logo_medium.gif
  41. BIN  Tools/apache-ant-1.8.2/docs/images/ant_logo_small.gif
  42. BIN  Tools/apache-ant-1.8.2/docs/images/beta.png
  43. BIN  Tools/apache-ant-1.8.2/docs/images/current.gif
  44. BIN  Tools/apache-ant-1.8.2/docs/images/group-logo.gif
  45. BIN  Tools/apache-ant-1.8.2/docs/images/jp_rcwinner_2003.gif
  46. BIN  Tools/apache-ant-1.8.2/docs/images/jw_ec_logo_winner2002.gif
  47. BIN  Tools/apache-ant-1.8.2/docs/images/jw_ec_logo_winner2003.gif
  48. BIN  Tools/apache-ant-1.8.2/docs/images/label.gif
  49. BIN  Tools/apache-ant-1.8.2/docs/images/menu-left.gif
  50. BIN  Tools/apache-ant-1.8.2/docs/images/menu-right.gif
  51. BIN  Tools/apache-ant-1.8.2/docs/images/page.gif
  52. BIN  Tools/apache-ant-1.8.2/docs/images/printer.gif
  53. BIN  Tools/apache-ant-1.8.2/docs/images/project-logo.gif
  54. BIN  Tools/apache-ant-1.8.2/docs/images/sdm_productivity_award.gif
  55. BIN  Tools/apache-ant-1.8.2/docs/images/search-left.gif
  56. BIN  Tools/apache-ant-1.8.2/docs/images/search-right.gif
  57. BIN  Tools/apache-ant-1.8.2/docs/images/spacer.gif
  58. BIN  Tools/apache-ant-1.8.2/docs/images/tab-left.gif
  59. BIN  Tools/apache-ant-1.8.2/docs/images/tab-right.gif
  60. BIN  Tools/apache-ant-1.8.2/docs/images/tabSel-left.gif
  61. BIN  Tools/apache-ant-1.8.2/docs/images/tabSel-right.gif
  62. +0 −338 Tools/apache-ant-1.8.2/docs/index.html
  63. +0 −249 Tools/apache-ant-1.8.2/docs/legal.html
  64. +0 −519 Tools/apache-ant-1.8.2/docs/license.html
  65. +0 −338 Tools/apache-ant-1.8.2/docs/mail.html
  66. BIN  Tools/apache-ant-1.8.2/docs/manual/Integration/anttool1.gif
  67. +0 −56 Tools/apache-ant-1.8.2/docs/manual/Integration/jext-plugin.html
  68. BIN  Tools/apache-ant-1.8.2/docs/manual/Integration/remacc.gif
  69. BIN  Tools/apache-ant-1.8.2/docs/manual/Integration/toolmenu.gif
  70. +0 −203 Tools/apache-ant-1.8.2/docs/manual/LICENSE
  71. +0 −143 Tools/apache-ant-1.8.2/docs/manual/Tasks/BorlandEJBTasks.html
  72. +0 −90 Tools/apache-ant-1.8.2/docs/manual/Tasks/BorlandGenerateClient.html
  73. +0 −413 Tools/apache-ant-1.8.2/docs/manual/Tasks/ant.html
  74. +0 −201 Tools/apache-ant-1.8.2/docs/manual/Tasks/antcall.html
  75. +0 −200 Tools/apache-ant-1.8.2/docs/manual/Tasks/antlr.html
  76. +0 −100 Tools/apache-ant-1.8.2/docs/manual/Tasks/antstructure.html
  77. +0 −95 Tools/apache-ant-1.8.2/docs/manual/Tasks/antversion.html
  78. +0 −499 Tools/apache-ant-1.8.2/docs/manual/Tasks/apply.html
  79. +0 −183 Tools/apache-ant-1.8.2/docs/manual/Tasks/apt.html
  80. +0 −167 Tools/apache-ant-1.8.2/docs/manual/Tasks/attrib.html
  81. +0 −83 Tools/apache-ant-1.8.2/docs/manual/Tasks/augment.html
  82. +0 −160 Tools/apache-ant-1.8.2/docs/manual/Tasks/available.html
  83. +0 −92 Tools/apache-ant-1.8.2/docs/manual/Tasks/basename.html
  84. +0 −92 Tools/apache-ant-1.8.2/docs/manual/Tasks/bindtargets.html
  85. +0 −74 Tools/apache-ant-1.8.2/docs/manual/Tasks/buildnumber.html
  86. +0 −167 Tools/apache-ant-1.8.2/docs/manual/Tasks/cab.html
  87. +0 −273 Tools/apache-ant-1.8.2/docs/manual/Tasks/ccm.html
  88. +0 −294 Tools/apache-ant-1.8.2/docs/manual/Tasks/changelog.html
  89. +0 −268 Tools/apache-ant-1.8.2/docs/manual/Tasks/checksum.html
  90. +0 −185 Tools/apache-ant-1.8.2/docs/manual/Tasks/chgrp.html
  91. +0 −225 Tools/apache-ant-1.8.2/docs/manual/Tasks/chmod.html
  92. +0 −183 Tools/apache-ant-1.8.2/docs/manual/Tasks/chown.html
  93. +0 −958 Tools/apache-ant-1.8.2/docs/manual/Tasks/clearcase.html
  94. +0 −59 Tools/apache-ant-1.8.2/docs/manual/Tasks/common.html
  95. +0 −62 Tools/apache-ant-1.8.2/docs/manual/Tasks/componentdef.html
  96. +0 −328 Tools/apache-ant-1.8.2/docs/manual/Tasks/concat.html
  97. +0 −110 Tools/apache-ant-1.8.2/docs/manual/Tasks/condition.html
  98. +0 −1,083 Tools/apache-ant-1.8.2/docs/manual/Tasks/conditions.html
  99. +0 −367 Tools/apache-ant-1.8.2/docs/manual/Tasks/copy.html
  100. +0 −136 Tools/apache-ant-1.8.2/docs/manual/Tasks/copydir.html
  101. +0 −73 Tools/apache-ant-1.8.2/docs/manual/Tasks/copyfile.html
  102. +0 −230 Tools/apache-ant-1.8.2/docs/manual/Tasks/cvs.html
  103. +0 −70 Tools/apache-ant-1.8.2/docs/manual/Tasks/cvspass.html
  104. +0 −241 Tools/apache-ant-1.8.2/docs/manual/Tasks/cvstagdiff.html
  105. +0 −108 Tools/apache-ant-1.8.2/docs/manual/Tasks/cvsversion.html
  106. +0 −107 Tools/apache-ant-1.8.2/docs/manual/Tasks/defaultexcludes.html
  107. +0 −215 Tools/apache-ant-1.8.2/docs/manual/Tasks/delete.html
  108. +0 −56 Tools/apache-ant-1.8.2/docs/manual/Tasks/deltree.html
  109. +0 −216 Tools/apache-ant-1.8.2/docs/manual/Tasks/depend.html
  110. +0 −171 Tools/apache-ant-1.8.2/docs/manual/Tasks/dependset.html
  111. +0 −49 Tools/apache-ant-1.8.2/docs/manual/Tasks/diagnostics.html
  112. +0 −74 Tools/apache-ant-1.8.2/docs/manual/Tasks/dirname.html
  113. +0 −292 Tools/apache-ant-1.8.2/docs/manual/Tasks/ear.html
  114. +0 −193 Tools/apache-ant-1.8.2/docs/manual/Tasks/echo.html
  115. +0 −146 Tools/apache-ant-1.8.2/docs/manual/Tasks/echoproperties.html
  116. +0 −73 Tools/apache-ant-1.8.2/docs/manual/Tasks/echoxml.html
Sorry, we could not display the entire diff because too many files (1,584) changed.
View
9 .project
@@ -86,6 +86,15 @@
</matcher>
</filter>
<filter>
+ <id>1360870693679</id>
+ <name>Apps/Sandcastle</name>
+ <type>6</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-jsHintOptions.js</arguments>
+ </matcher>
+ </filter>
+ <filter>
<id>1338843689105</id>
<name>Source/Shaders</name>
<type>22</type>
View
1  Apps/Sandcastle/.gitignore
@@ -0,0 +1 @@
+/jsHintOptions.js
View
63 Apps/Sandcastle/CesiumSandcastle.js
@@ -1,4 +1,6 @@
-/*global require,Blob,CodeMirror,JSHINT,gallery_demos*/
+/*global require,Blob,CodeMirror,JSHINT*/
+/*global gallery_demos*/// defined by gallery/gallery-index.js, created by build
+/*global sandcastleJsHintOptions*/// defined by jsHintOptions.js, created by build
require({
baseUrl : '../../Source',
packages : [{
@@ -131,63 +133,6 @@ require({
var highlightLines = [];
var searchTerm = '';
var searchRegExp;
- var hintGlobals = [
- 'require',
- 'document',
- 'window',
- 'console',
- 'Sandcastle',
- 'Cesium'
- ];
- var hintOptions = {
- predef : hintGlobals,
- // These are copied from the Eclipse jsHint plugin options on the Cesium project itself.
- // They should be kept in sync with that list of options.
- bitwise : false,
- camelcase : false,
- curly : true,
- eqeqeq : true,
- forin : true,
- immed : false,
- latedef : true,
- newcap : true,
- noarg : true,
- noempty : false,
- nonew : true,
- plusplus : false,
- quotmark : false,
- regexp : false,
- undef : true,
- unused : false,
- strict : true,
- trailing : true,
- asi : false,
- boss : false,
- debug : false,
- eqnull : false,
- es5 : false,
- esnext : false,
- evil : false,
- expr : false,
- funcscope : false,
- globalstrict : false,
- iterator : false,
- lastsemic : false,
- laxbreak : false,
- laxcomma : false,
- loopfunc : false,
- multistr : false,
- onecase : false,
- proto : false,
- regexdash : false,
- scripturl : false,
- smarttabs : false,
- shadow : false,
- sub : false,
- supernew : false,
- validthis : false,
- browser : true
- };
var hintTimer;
var galleryErrorMsg = document.createElement('span');
@@ -373,7 +318,7 @@ require({
}
}
}
- if (!JSHINT(code, hintOptions)) {
+ if (!JSHINT(code, sandcastleJsHintOptions)) {
var hints = JSHINT.errors;
for (i = 0, len = hints.length; i < len; ++i) {
var hint = hints[i];
View
5 Apps/Sandcastle/index.html
@@ -27,10 +27,11 @@
<script src="../../ThirdParty/CodeMirror-2.24/mode/xml/xml.js"></script>
<script src="../../ThirdParty/CodeMirror-2.24/mode/htmlmixed/htmlmixed.js"></script>
- <script data-dojo-config="async: 1, tlmSiblingOfDojo: 0" src="../../ThirdParty/dojo-release-1.8.3-src/dojo/dojo.js"> </script>
+ <script data-dojo-config="async: 1, tlmSiblingOfDojo: 0" src="../../ThirdParty/dojo-release-1.8.3-src/dojo/dojo.js"></script>
+ <script src="jsHintOptions.js"></script>
<script src="gallery/gallery-index.js"></script>
- <script src="CesiumSandcastle.js"> </script>
+ <script src="CesiumSandcastle.js"></script>
<script type="text/javascript">
if (window.location.host === "cesium.agi.com") {
var _gaq = _gaq || [];
View
203 Tools/apache-ant-1.8.2/docs/LICENSE
@@ -1,203 +0,0 @@
-/*
- * Apache License
- * Version 2.0, January 2004
- * http://www.apache.org/licenses/
- *
- * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
- *
- * 1. Definitions.
- *
- * "License" shall mean the terms and conditions for use, reproduction,
- * and distribution as defined by Sections 1 through 9 of this document.
- *
- * "Licensor" shall mean the copyright owner or entity authorized by
- * the copyright owner that is granting the License.
- *
- * "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.
- *
- * "You" (or "Your") shall mean an individual or Legal Entity
- * exercising permissions granted by this License.
- *
- * "Source" form shall mean the preferred form for making modifications,
- * including but not limited to software source code, documentation
- * source, and configuration files.
- *
- * "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.
- *
- * "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).
- *
- * "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.
- *
- * "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."
- *
- * "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.
- *
- * 2. 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.
- *
- * 3. 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.
- *
- * 4. 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:
- *
- * (a) You must give any other recipients of the Work or
- * Derivative Works a copy of this License; and
- *
- * (b) You must cause any modified files to carry prominent notices
- * stating that You changed the files; and
- *
- * (c) 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
- *
- * (d) 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.
- *
- * 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.
- *
- * 5. 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.
- *
- * 6. 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.
- *
- * 7. 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.
- *
- * 8. 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.
- *
- * 9. 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.
- *
- * END OF TERMS AND CONDITIONS
- *
- * APPENDIX: How to apply the Apache License to your work.
- *
- * 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.
- *
- * Copyright [yyyy] [name of copyright owner]
- *
- * 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
View
70 Tools/apache-ant-1.8.2/docs/ant2/FunctionalRequirements.html
@@ -1,70 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
-
- contributor license agreements. See the NOTICE file distributed with
-
- this work for additional information regarding copyright ownership.
-
- The ASF licenses this file to You under the Apache License, Version 2.0
-
- (the "License"); you may not use this file except in compliance with
-
- the License. You may obtain a copy of the License at
-
-
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-
-
- Unless required by applicable law or agreed to in writing, software
-
- distributed under the License is distributed on an "AS IS" BASIS,
-
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
- See the License for the specific language governing permissions and
-
- limitations under the License.
-
--->
-
-<html>
-
-<head>
-
- <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-
- <title>Ant Functional Requirements Document</title>
-
-</head>
-
-<body>
-
-<h2>Ant Functional Requirements</h2>
-
-<h3>Roles</h3>
-
-<p><b>User: </b>runs Ant with a complete build specification and/or
-
-writes Ant build specifications.</p>
-
-<p><b>Task Developer: </b>writes/modifies Ant tasks.</p>
-
-<p><b>Extensions Developer: </b>develops extensions like a GUI, IDE plugin,
-
- (scripting extension?)</p>
-
-<p><b>Core Developer: </b>works on the Ant core</p>
-
-<h3>Requirements from the Ant User perspective</h3>
-
-<p>It should be easy to write a build file for small Java programs. It should
-
- be possible to write a build file set for large Java systems. Maintenance
-
- of such a set should be easy (e.g. no duplication of information).</p>
-
-<p>Every build process contains dependencies (e.g. item A needs B to be available
-
View
253 Tools/apache-ant-1.8.2/docs/ant2/VFS.txt
@@ -1,253 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-From: "Adam Murdoch" <adammurdoch_ml@yahoo.com>
-Subject: RE: Virtual FileSystem Layer
-Date: Sat, 22 Dec 2001 12:06:37 +1000
-
-Hi,
-
-I've also been doing a bit of work on the VFS. No code yet - instead, I've
-done a survey of the Ant 1 code, to help get a better idea of what we need
-the VFS to actually do.
-
-I've put together a rough list of the sort of features the current tasks
-require from the file system. This list is entirely from the task writer's
-POV. I've ignored the build file writer completely - though, the action
-list is a good summary of the build file writer's concerns. I've tried to
-steer clear of assumptions about what is actually going to provide each
-feature to the tasks, or what the API will look like to the tasks.
-
-The goal for doing up this list, was to help identify the features we want
-to support, and the API that the tasks will use to get at them. This should
-be largely independent of how we decide to represent the file system in the
-build files. In addition, it doesn't matter too much whether the list below
-is complete (I'm sure it isn't), or that the VFS provide every single one of
-the features. Whatever it doesn't provide, can stay up in the tasks, and be
-refactored down later.
-
-The assumption here is that we do actually want to put together a file
-system API. I think it's a good idea to at least put together some
-interfaces, even if the implementation is stolen from somewhere else.
-Without a doubt, the file system is the most widely used "service" in the
-current crop of tasks. The API that we choose has to have a good semantic
-match with what the tasks need to do, so that writing the tasks is easy.
-The API also has to be general enough to deal with stuff we haven't thought
-of yet. On that note, I personally think that JNDI might be a touch too
-general for what we need.
-
-So, the features. Note that many of these will be optional - not every
-feature will be available for every node in the file system. I've used the
-term "node" to mean both directories and files. I'm not suggesting we
-actually call them "nodes" in the API. I've used the term "root node" to
-mean the root of a file system.
-
-* Naming
-
-- Locate a node by absolute name.
-- Get the absolute name for a node.
-- Resolve a name to a node, relative to some base node - like
-FileUtils.resolveFile().
-- Get the relative name of a node, relative to some base node.
-- Determine the base name (with and without the extension), and extension of
-the node.
-- Deal with file systems that are case sensitive, and case insentitive.
-
-* Properties
-
-- Determine what properties are available on the node.
-- Determine if the node exists.
-- Determine the type of node (file vs. directory, could be "has-content" vs
-"has-children").
-- Determine if the node is readable.
-- Determine if the node is writeable.
-- Get/set the permissions on the node. This covers things like chmod &
-chown, making read-only, making executable, etc.
-
-* Content
-
-- Determine if the node can/does have content.
-- Get the size of the node.
-- Get/set the last-modified time of the node.
-- Get/set the mime-type of the node.
-- Get/set the encoding of the node.
-- Get a checksum of the node.
-- Get content as InputStream.
-- Get content as Reader.
-- Set content as an OutputStream.
-- Set content as a Writer.
-- Implicit creation of node and its ancestors when content is written.
-- Compare nodes for equality (last modified timestamp, checksum, bytewise
-compare).
-
-* Hierarchy
-
-- Get the parent node of a node.
-- Get the child nodes of a node.
-- Iterate over (or visit) the descendants of a node.
- - With or without a selector.
- - In various orders - depthwise, etc.
- - Be able to modify the nodes during traversal.
-
-* Modification
-
-- Create a new node of a particular type. Create all missing ancestors.
-- Move, copy, delete a node.
- - All descendants.
- - Optional selector. E.g. ignore empty dirs, ignore default excludes, etc.
- - Optional filter.
-
-* Conversion
-
-- Convert the node to a java.net.URL.
-- Make the node content available as a local file (to hand off to external
-commands).
-- Get the OS specific *filename* for a node.
-- Resolve an OS specific *filename* to a node.
-
-* File System Types
-
-- Local file.
-- HTTP.
-- FTP.
-- Classloader, uses Classloader.getResource().
-- Temporary files.
-- etc ...
-
-- Compound file system. Made up of a bunch of mount points. The VFS
-itself.
-
-- Layered file systems (that sit on top of another file system or node):
- - zip, bzip, jar, tar
- - filtering - token replacement, etc
-
-- Factories for creating and configuring file system root nodes.
-- Ability to easily add new file system implementations.
-
-* Task Container
-
-- A mechanism for a task to get hold of the project's root node.
-
-- A mechanism that allows a task to create its own private root nodes,
-without letting it mess with the project's file system, or the file systems
-of other tasks.
-
-- A mechanism for cleaning up all the node InputStream, OutputStream, Reader
-and Writers opened by a task during its execute() method. Cleaning up files
-is one thing the current tasks don't do very well at all. Something like
-this would take care of anything the task did not explictly close. Would
-include root nodes it created.
-
-* Other things
-
-- Maybe some way to explicitly close a node and release all resources used
-by it.
-
-- Maybe detection of concurrent updates, in the case of parallel tasks.
-
-- Netbeans has an event model in its VFS. Something like this might be
-useful in dependency management.
-
-- nodesets. The replacement for, or generalisation of, FileSet, Path,
-FileList, etc
- - A nodeset that contains the descendents of a node that match a selector
-(like the current FileSet implementation).
- - A nodeset that contains arbitrary nodes.
- - An aggregating nodeset.
- - Custom nodeset implementations.
-
-- Reimplement the Ant 1 Fileset, Path and Filelist as adaptors sitting on
-top of the VFS.
-
-- A classloader that can load classes from a node.
-
-- etc ..
-
-What's missing? What shouldn't be on the list?
-
-
-Adam
-
-> -----Original Message-----
-> From: Magesh Umasankar
-> Sent: Saturday, 22 December 2001 10:44 AM
-> To: ant-dev@jakarta.apache.org
-> Subject: Virtual FileSystem Layer
->
->
-> I have been spending some time now on the VFS
-> layer... Nothing major to report yet, but I just wanted
-> to sound off so that if I am going down the wrong
-> route, I correct it right away.
->
-> I evaluated at WebNFS, NetBeansFS (NBFS) and
-> JNDI.
->
-> 1. WebNFS seems to be going nowhere. It has
-> been dormant for quite sometime now. Licensing
-> is rigid. Technically, it doesn't look so bad as it
-> closely replicates java.io.File's API. But then,
-> that really gives us very little.
->
-> 2. NBFS looks OK. It has got a few filesystems
-> already built. There may be some licensing issues,
-> I don't know, but that shouldn't concern us too
-> much as, according to Peter, it is Mozilla (I haven't
-> really check the license out, sorry). But, as far as I
-> can see, it seems to lack in sophisticated API features
-> like searching based on attributes, etc., which
-> we will definitely be needing for the Selector APIs.
->
-> 3. JNDI, by far, beats the above to, in my
-> evaluation. It is generic enough. We don't have
-> any licensing issues. It has also become part of
-> the core JRE (1.4 onwards). Technically, it fits to a T
-> what we are looking for - virtual file system that
-> provides search controls, access attributes,
-> url mounting, etc. Furthermore, there's been
-> some ground work already done for us at Jakarta/Apache
-> (Catalina). I have written a SPI for a FTPFileSystem
-> - though it is in a real crude stage right now. I believe
-> this is the way to go because Ant's code would be
-> operating at the (Dir)Context level and we can keep
-> adding SPIs as we need them. Furthermore,
-> JNDI has been stable for quite sometime now and
-> we can depend on a widely used API.
->
-> I don't think JNDI is a heavyweight API for our needs.
-> It seems to be the only one, so far, which encompasses
-> at the APIP level, all the new functionalities that we
-> desire to introduce.
->
-> Let me know if my approach, so far, to go the JNDI
-> route seems reasonable.
->
-> Cheers,
-> Magesh
->
->
->
->
-> --
-> To unsubscribe, e-mail: <mailto:ant-dev-unsubscribe@jakarta.apache.org>
-> For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>
-
-
---
-To unsubscribe, e-mail: <mailto:ant-dev-unsubscribe@jakarta.apache.org>
-For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>
-
-
View
492 Tools/apache-ant-1.8.2/docs/ant2/actionlist.html
@@ -1,492 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
-
- contributor license agreements. See the NOTICE file distributed with
-
- this work for additional information regarding copyright ownership.
-
- The ASF licenses this file to You under the Apache License, Version 2.0
-
- (the "License"); you may not use this file except in compliance with
-
- the License. You may obtain a copy of the License at
-
-
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-
-
- Unless required by applicable law or agreed to in writing, software
-
- distributed under the License is distributed on an "AS IS" BASIS,
-
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
- See the License for the specific language governing permissions and
-
- limitations under the License.
-
--->
-
-<html>
-
- <head><title>Ant1.9 Action List</title></head>
-
- <body bgcolor="#ffffff">
-
- <center>
-
- <h1>Ant1.9 Action List</h1>
-
- <h2>Precursor to Ant2</h2>
-
- <i>Peter Donald [<a href="mailto:peter at apache.org">peter at apache.org</a>]</i>
-
- </center>
-
-
-
- <div align="center">
-
- <table width="80%"><tr><td>
-
- <blockquote>
-
- <p>
-
- This document aims to contain a list of actions that people can take
-
- to produce Ant1.9. Ant1.9 is a refactoring of the Ant1.x line and a jump
-
- point for Ant2. Some changes will be backported to Ant1.x over time when
-
- they have proven themselves while other changes may only become available
-
- via Ant2.0. Ant1.9 is our melting pot where we can experiment and refactor
-
- without a thought to backwards compatability but only to the "right" way
-
- of doing things.
-
- </p>
-
- </blockquote></td></tr>
-
- </table>
-
- </div>
-
-
-
- <h2>Introduction</h2>
-
-
-
- <blockquote>
-
- <p>
-
- This document will list a bunch of actions that will guide us in the evolution
-
- of Ant1.x and provide a solid basis on which to launch Ant2.0. Feel free to add to
-
- this list of actions as our vision of Ant2 solidifies. Associated with each action
-
- is a list of victims who have "volunteered" to have a go at the action and a status.
-
- The status just tells us where they are at while the victim column will tell us exactly
-
- who is doing what. It is fine for a group of people to work on a single area.
-
- </p>
-
- <br />
-
- <br />
-
- <br />
-
- <div align="center">
-
- <table cellspacing="2" cellpadding="5" width="80%">
-
- <tr>
-
- <td bgcolor="#eeeeee" align="center">Action</td>
-
- <td bgcolor="#eeeeee" align="center">Victims</td>
-
- <td bgcolor="#eeeeee" align="center">Status</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#vfs">Create a Virtual Filesystem layer</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#naming">Formalize a naming scheme for task attributes/elements</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#selector">Design and implement s Selector API for Filesets and other Itemsets</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#coloring">Develope the infrastructure for coloring (or "environmental" dependency analysis)</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#structural">Develope the infrastructure for structural dependency analysis</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#exec">Refactor the Exec infrastructure into JavaBeans</a></td>
-
- <td>Peter Donald</td>
-
- <td>80%</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#java">Refactor the Java infrastructure into JavaBeans</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#facade">Design and implement a generic solution for creating Task facades</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#packaging">Sketch out a basic way of separating all the tasks into type libraries</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#mapperext">Design and implement an API that allows mapping of file attributes during copy/move/etc tasks</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#filters">Design and implement an API so that Filters could be implemented as FilteredOutputStreams</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#catalog">Design and implement a XML "catalog" so the snippets of XML can be injected based on URI rather than relative location</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#i18n">Look at the feasability of i18n'ing tasks and the runtime</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#doco">Write a document describing the way that tasks should be written in context of Ant2</a></td>
-
- <td>Peter Donald<br />(peter at apache.org)</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#embeddor">Design an API to embed Ant into other applications</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#info">Design a TypeInfo system similar to BeanInfo to describe Tasks</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- <tr>
-
- <td><a href="#antdoc">Design Antdoc to generate manual from .java files</a></td>
-
- <td>None</td>
-
- <td>Not Started</td>
-
- </tr>
-
- </table>
-
- </div>
-
- </blockquote>
-
-
-
- <h3>Virtual File System</h3>
-
- <a name="vfs" />
-
- <blockquote>
-
- <p>
-
- There has long been a recognition that it would be nice if ant supported some
-
- notion of a virtual filesystem layer. This layer would allow you to treat
-
- resources located and retrieved from different mechanisms in a uniform way.
-
- For instance it would allow the copy task to copy from a http server, a cvs server,
-
- a ftp server or the local filesystem using a uniform mechanism. So instead of
-
- having separate tasks to operate on each different resource type we would use
-
- just one task that plugged into multiple filesystems.
-
- </p>
-
- <p>
-
- When we are talking about a virtual filesystem or VFS, one of the concerns we must
-
- address is how to "name" the resource. In most cases a URL or URI style access will
-
- be sufficient but in other cases we may need to consider other options. So
-
- "cvs://localhost:/home/cvs/jakarta-avalon/README.txt?version=1.1",
-
- "ftp://some.server.com/dir/file.zip" and "file://C/WINDOWS/Desktop/MyFile.txt"
-
- are all examples of referring to different resources.
-
- </p>
-
- <p>
-
- Another concern that must be addressed is capabilities of both the resources and
-
- the filesystem. For instance it is possible to both read and write to resources
-
- using the "file" protocol but only possible to write resources using "mailto".
-
- The act of copying a file to a "mailto" url would actuall post the files as
-
- resources while copying to a "file" would duplicate the resource somewhere on
-
- the local filesystem.
-
- </p>
-
- <p>
-
- So we need to determine a list of capabilities. Some examples would be "read",
-
- "write", "list" (can you list dirs), "type" (can you get mime type),
-
- "access permissions" (can you tell if resource has permissions),
-
- "modify permissions" (can you modify permissions) etc. Some of these capabilities
-
- can be associated with the particular reosurces, while others may need to be
-
- associated with a whole filesystem/protocol (ie there is no standard mechanism
-
- to perform "list" on general "http" URLs). Thus a list of all these capabilities
-
- and mapping to various protocols will need to be established.
-
- </p>
-
- <p>
-
- Next we need to determine if we are going to support the notion of "mounting"
-
- URLs. For instance if we need to copy files from a FTP server do we allways
-
- need to specify the full URL - no matter how convoluted it is (ie
-
- "ftp://fred:secret@some.server.com:28763/home/fred/project2/dir/file.zip")
-
- or can we mount this on a VFS and access it via that shorter url. ie We could
-
- mount "ftp://fred:secret@some.server.com:28763/home/fred/" onto "vfs:/home"
-
- and then just access the resources via "vfs:/home/project2/dir/file.zip".
-
- This would make dealing with large urls easier and more uniform.
-
- </p>
-
- <p>
-
- So after we have decided what our options are we need to actually go about
-
- implementing the solution. It may be the case that existing VFS solutions
-
- could be reused with minor changes and thus we could save ourselves a lot of
-
- work. Candidates would be the Netbeans VFS, Suns XFile API or other
-
- available directory APIs (like JNDI). If none of them suit then we will need
-
- to write our own layer.
-
- </p>
-
- </blockquote>
-
-
-
- <h3>Naming</h3>
-
- <a name="naming" />
-
- <blockquote>
-
- <p>
-
- Currently Ant has a mixture of tasks from various stages it's evolution, with different
-
- authors and each utilizing different naming patterns. Some tasks use names such as
-
- "src" and "dest" while others use "file" and "tofile". It would be preferrable if
-
- consistent naming patterns were used. It is recomended that we come up with a "best
-
- practices" document to document our recomended naming patterns.
-
- </p>
-
- <p>
-
- Before we can come up with such a document we need to identify common patterns through
-
- out the tasks. Several tasks have the notion of transforming input from a "source"
-
- to a "destination". So we should have consistent naming schemes for these attributes and
-
- elements. Analysis of existing tasks will likely bring out other similar patterns. Once
-
- we have identified and documented these similarities then we can establish conventions.
-
- </p>
-
- </blockquote>
-
-
-
- <h3>Selector API</h3>
-
- <a name="selector" />
-
- <blockquote>
-
- <p>
-
- Currently our filesets allow us to select a set of files based on name patterns.
-
- For instance we could create a set of all the files that end with ".java". However
-
- there are cases when you wish to select files based on their other attributes, such as
-
- if they are read only or if they are older than a specified date etc.
-
- </p>
-
- <p>
-
- The selector API is one such mechanism to do this. The selector API will allow you to
-
- build file sets based on criteria other than name. Some possible criteria would be
-
- </p>
-
- <ul>
-
- <li>Is the file readable?</li>
-
- <li>Is the file writeable?</li>
-
- <li>What date was the file modified on?</li>
-
- <li>What size is the file?</li>
-
View
381 Tools/apache-ant-1.8.2/docs/ant2/features.html
@@ -1,381 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
-
- contributor license agreements. See the NOTICE file distributed with
-
- this work for additional information regarding copyright ownership.
-
- The ASF licenses this file to You under the Apache License, Version 2.0
-
- (the "License"); you may not use this file except in compliance with
-
- the License. You may obtain a copy of the License at
-
-
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-
-
- Unless required by applicable law or agreed to in writing, software
-
- distributed under the License is distributed on an "AS IS" BASIS,
-
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
- See the License for the specific language governing permissions and
-
- limitations under the License.
-
--->
-
-<html>
-
- <head>
-
- <meta http-equiv="Content-Language" content="en-us">
-
- <title>Ant2 feature list</title>
-
-
-
- <style type="text/css">
-
- .comment {
-
- COLOR: #900000;
-
- BACKGROUND: #ffa;
-
- }
-
- </style>
-
-
-
- </head>
-
-
-
- <body bgcolor="#FFFFFF">
-
-
-
- <p class="comment">If something looks like this, this is either a
-
- request for input or a &quot;REVISIT&quot; marker or similar.</p>
-
-
-
- <h1>Ant2 Goals</h1>
-
-
-
- <p>Even though Ant2 is expected to be incompatible with the
-
- current Ant1 series, it still has the same goals. Ant is a Java
-
- based build tool and this remains the main focus of it. The
-
- original goals of simplicity, understandability and extensibility
-
- still stand and Ant2 will try to achieve them even better than
-
- Ant1 does.</p>
-
-
-
- <h2>Simplicity and Understandability</h2>
-
-
-
- <p>These two goals are closely related. Ant build files shall be
-
- easy to read and understand - at the same time it should be easy
-
- to write a custom Ant task and to use the utility classes that
-
- Ant2 provides.</p>
-
-
-
- <p>Ant2 shall be more consistent than Ant1 is - this means:</p>
-
-
-
- <ul>
-
-
-
- <li>core tasks will use the same attribute names for common
-
- functionality</li>
-
-
-
- <li>similar tasks will be unified to use similar forms.</li>
-
-
-
- <li>different implementations for the same functionality will be
-
- hidden behind facade tasks.</li>
-
-
-
- <li>properties and data types will be unified so that they share
-
- the same namespace and inheritance rules. <i
-
- class="comment">Need to talk about how ${} expansion works for
-
- filesets and so on.</i></li>
-
-
-
- </ul>
-
-
-
- <p>Furthermore some things will have to become more explicit:</p>
-
-
-
- <ul>
-
-
-
- <li>remove all magic properties</li>
-
-
-
- <li>make build file writers explicitly state which
-
- filters/filtersets a copy task will use</li>
-
-
-
- <li>add scoping rules for properties so that not all of them
-
- will be inherited by sub-builds, only those that have been
-
- specified explicitly. <i class="comment">Fill in details once
-
- they've been sorted out.</i></li>
-
-
-
- </ul>
-
-
-
- <p>The front-ends for Ant2 shall be smart enough to automatically
-
- detect the required libraries (like <code>tools.jar</code>), the
-
- use of native scripts shall be kept to a minimum.</p>
-
-
-
- <p>Build file writers can attach a message to targets that will be
-
- presented to the user if that target is going to be skipped (based
-
- on the if/unless attribute of the target).</p>
-
-
-
- <p>Even though Ant installation already is quite simple in Ant1
-
- (extract the archive and set two environment variables),
-
- alternative ways to install Ant like using
-
- <a href="http://java.sun.com/products/javawebstart/">Webstart</a> or
-
- a "self-extracting" JAR file will be explored.</p>
-
-
-
- <h2>Extensibility</h2>
-
-
-
- <p>Ant2 like Ant1 uses build files written in XML as its main
-
- input, but it will not be restricted to it. The core of Ant2 will
-
- work on an object model of Project/Target/Task that is independent
-
- of any external representation.</p>
-
-
-
- <p>As an extension of the current <code>&lt;taskdef&gt;</code>
-
- concept, tasks can be bundled into task libraries (together with
-
- data types and other utility classes). These task libraries are
-
- special JAR archives that somehow describe the contained tasks to
-
- Ant. Ant will automatically know all tasks contained in task
-
- libraries that have been placed into a special directory - in
-
- addition task libraries can be referenced and used in a build file
-
- explicitly. <i class="comment">Fill in details once they've been
-
- sorted out.</i></p>
-
-
-
- <p>It has become apparent, that several &quot;aspects&quot; of
-
- tasks are so common that task writers find themselves duplicating
-
- code all over again - things like classpath handling or &quot;do
-
- we stop the build if this task fails?&quot; functionality for
-
- example. Ant2 will provide a way to let the user attach an
-
- &quot;aspect handler&quot; to a project - all attributes that live
-
- in a certain namespace are going to be passed to this handler. <i
-
- class="comment">Need to talk about TaskContext here.</i></p>
-
-
-
- <p>Ant2 will farm out common functionality from tasks into utility
-
- classes so that task writers can benefit from a tested and stable
-
- framework - they shouldn't need to deal with existing tasks
-
- directly (like some tasks &quot;abuse&quot; the
-
- <code>&lt;touch&gt;</code> task in Ant1).</p>
-
-
-
- <p>Ant2 will provide a way to define tasks that itself can have
-
- tasks as child elements without knowing all defined tasks at
-
- compile time. Discussions on ant-dev usually talk about
-
- &quot;container tasks&quot; in this context.</p>
-
-
-
- <p>The only way to &quot;include&quot; common XML snippets so far
-
- has been the usage of external SYSTEM entities, a mechanism that
-
- is tied to DTDs and doesn't mix well with alternative
-
- approaches like XML Schema. Ant2 will provide a built-in include
-
- mechanism.</p>
-
-
-
- <h1>New/Modified Features</h1>
-
-
-
- <p>Ant2 will run the build process fully dynamically, which means
-
- that task won't be instantiated before they are actually being run
-
- and <code>${}</code> expansion will see the very latest value of a
-
- property. It will be possible to reassign values of properties via
-
- a built-in task.</p>
-
-
-
- <h2>Compatibility with Ant1</h2>
-
-
-
- <p>Ant2 is going to break Ant1 in several ways:</p>
-
-
-
- <ul>
-
-
-
- <li>Tasks written for Ant1 won't work in Ant2 as the API of
-
- Ant's core and the names of utility classes are going to
-
- change. There will probably be adaptors and utility classes to
-
- ease the transition for task writers.</li>
-
-
-
- <li>Build files written for Ant1 will probably not be valid in
-
- Ant2 or at least not yield the same results. It is expected that
-
- Ant2 will come with a tool to translate Ant1 build files into
-
- equivalent Ant2 versions</li>
-
-
-
- <li>magic properties like <code>build.compiler</code> may
-
- disappear and be replaced by a different customization
-
- concept.</li>
-
-
-
- <li>Ant2 is going to require a JDK version 1.2 or above and a
-
- JAXP compliant parser version 1.1 or above.</li>
-
-
-
- <li>If you specify more than one target in another target's
-
- depends attribute, Ant1 will execute these targets from left to
-
- right (as long as the dependency tree permits it) - Ant2 will
-
- not guarantee this behavior but will allow build file writers to
-
- specify the order explicitly.</li>
-
-
-
- <li>Dereferencing a non existent property a via ${a} will result
-
- in a build failure.</li>
-
-
-
- </ul>
-
-
-
- <h2>Support Integration of Ant Into Other Tools</h2>
-
-
-
- <p>Ant2 will have a clear separation between the front-end that is
-
- responsible for user interactions, the object model that
-
- represents the project to build and the part of Ant that runs the
View
294 Tools/apache-ant-1.8.2/docs/ant2/original-specification.html
@@ -1,294 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
-
- contributor license agreements. See the NOTICE file distributed with
-
- this work for additional information regarding copyright ownership.
-
- The ASF licenses this file to You under the Apache License, Version 2.0
-
- (the "License"); you may not use this file except in compliance with
-
- the License. You may obtain a copy of the License at
-
-
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-
-
- Unless required by applicable law or agreed to in writing, software
-
- distributed under the License is distributed on an "AS IS" BASIS,
-
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
- See the License for the specific language governing permissions and
-
- limitations under the License.
-
--->
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
-
-<HTML>
-
- <HEAD>
-
- <TITLE>Ant Specification, version 0.5</TITLE>
-
- </HEAD>
-
- <BODY>
-
- <H1>Ant Specification</H1>
-
- <P>Version 0.5 (2000/04/20)</P>
-
- <P>This document specifies the behavior of Ant. At this time, this is a
-
- working document with no implementation. It is hoped that this specification
-
- will lead to a simplier and more consistent implementation of Ant.</P>
-
- <P>This document is not intended to be used as an end user manual or user
-
- guide to Ant. To adequatly explain the concepts herein in a way appropriate to
-
- such a use would potentially complicate this document.</P>
-
- <H2>Design Goals</H2>
-
- <P>The following are the overall design goals of Ant:</P>
-
- <UL>
-
- <LI>Simplicity</LI>
-
- <LI>Understandability</LI>
-
- <LI>Extensibility</LI>
-
- </UL>
-
- <H3>Simplicity</H3>
-
- <P>Ant must be simple to use. Of course, as the definition of simple varies
-
- according to the audience of the program. For Ant, since it is a build tool
-
- aimed at programmers, the goal is to be simple to use for a competent
-
- programmer.</P>
-
- <H3>Understandability</H3>
-
- <P>Ant must be clearly understandible for a first time as well as a veteran
-
- user. This means that a new user should be able to use Ant comfortably the
-
- first time and understand how to modify a build file by looking at it. And it
-
- should not require much experience with Ant to understand how it works and how
-
- to configure it for particular situtations.</P>
-
- <H3>Extensibility</H3>
-
- <P>Ant must be easy to extend. The API used to extend Ant must be easy to
-
- use and the way in which these extensions are located and used by the core
-
- runtime should be clear.</P>
-
- <H2>Conceptual Overview</H2>
-
- <P>This is a conceptual overview of the components used by Ant. Full APIs
-
- will be defined later.</P>
-
- <H3>Project</H3>
-
- <P>The base unit of work in Ant is the <STRONG>Project</STRONG>. A Project
-
- is defined by an editable text file and is represented by an object of type
-
- <CODE>org.apache.ant.Project</CODE> at runtime.</P>
-
- <P>A Project is a collection of <STRONG>Properties</STRONG> and
-
- <STRONG>Targets</STRONG>.</P>
-
- <H3>Properties</H3>
-
- <P>Properties are mutable name-value pairs that are scoped to the Project
-
- and held in a table. Only one pair is allowed per name. It is anticipated that
-
- this data structure would be of type <CODE>java.util.Properties</CODE> or a type that has approximatly
-
- the same contract.</P>
-
- <P>Properties can be defined in a hierarchical manner. The order of
-
- precidence in this hiearchy is:</P>
-
- <UL>
-
- <LI>Properties defined on the command line or via a GUI tool</LI>
-
- <LI>Properties defined in the text file which defines the project.</LI>
-
- <LI>Properties defined in a file in the users <CODE>user.home</CODE> directory</LI>
-
- <LI>Properties defined in the installation directory that can be shared
-
- by multiple users.</LI>
-
- </UL>
-
- <P>Note: The current version of Ant allows the System property list to be
-
- consulted for a return value if the property list doesn't satisfy the requested
-
- property name. As all Java code has access to the system property list via the
-
- <CODE>java.lang.System</CODE> class, this functionality is considered to be confusing and to be
-
- removed.</P>
-
- <P>Note: The current version of Ant allows property substitution to be
-
- performed in the project file. This functionality is being removed.</P>
-
- <H3>Targets</H3>
-
- <P>Targets are ordered collections of <STRONG>Tasks</STRONG>, units of work
-
- to be performed if a Target is executed. </P>
-
- <P>Targets can define dependancies on other Targets within the Project. If
-
- a Target is deemed to be executed, either directly on the command line, or via
-
- a dependancy from some other Target, then all of its dependencies must first be
-
- executed. Circular depenancies are resolved by examination of the dependancy
-
- stack when a Target is evaluated. If a dependancy is already on the stack of
-
- targets to be executed, then the dependancy is considered to have been
-
- satisfied.</P>
-
- <P>After all dependancies of a Target have been satisfied, all of the Tasks
-
- contained by the target are configured and executed in sequential order. </P>
-
- <H3>Tasks</H3>
-
- <P>A Task is a unit of work. When a Task is to be executed, an instance of
-
- the class that defines the behavior of the particular task specified is
-
- instantiated and then configured. This class implements the <CODE>org.apache.ant.Task</CODE> interface.
-
- It is then executed so that it may be able to perform its function. It is
-
- important to note that this configuration occurs just before execution of the
-
- task, and after execution of any previous tasks, so that configuration
-
- information that was modified by any other Task can be properly set.</P>
-
- <P>When a Task is executed, it is provided access to the object
-
- representing the Project it is running in allowing it to examine the Property
-
- list of the project and access to various methods needed to operate.</P>
-
- <H2>Task Jar Layout</H2>
-
- <P>Tasks are defined within Java Archive files. The name of the JAR
-
- determines the name under which the task is known by in the system. For
-
- example, if a Task JAR is named mvdir.jar, the task is known to the system as
-
- <CODE>&quot;mvdir&quot;</CODE>.</P>
-
- <P><EM>Question: Should we say that tasks belong in a JAR file with the
-
- .tsk extension?</EM></P>
-
- <P>The class within the Jar file that implements the <CODE>org.apache.ant.Task</CODE> interface is
-
- specified by a manifest attribute named <CODE>Ant-Task-Class</CODE> in the Jar manifest. An example
-
- manifest would look like:</P>
-
- <PRE> Manifest-Version: 1.0
-
- Ant-Task-Class: org.apache.ant.task.javac.JavacTask</PRE>
-
- <P>When the task is used by Ant, a class loader is created that reads
-
- classes from the JAR file. This ensures that there is no chance of namespace
-
- collision in the classes of various task JAR files.</P>
-
- <H2>Installation</H2>
-
- <P>When Ant is installed on a user system, it installs a directory
-
- structure with the following form:</P>
-
- <PRE>&lt;installdir&gt;/ant (unix shell script)
-
- /ant.bat
-
- /ant.jar
-
- /ant.properties
-
- /tasks/[task jar files]
-
- /docs/[documentation]
-
- /README</PRE>
-
- <P>Note: Current Jakarta practice is to name the Unix shell script with a
-
- .sh extension. This goes against Unix conventions and is unecessary. Testing
-
- has shown that the leaving the extension off on Unix will not interfere with
-
- the working of the Windows batch file.</P>
-
- <P>Note: The ant.jar file has been moved from the lib/ directory and placed
-
- alongside the shell startup scripts (which have also been moved out of the bin/
-
- directory). This is because on windows platforms, the .jar file is an
-
- executable file of sorts.</P>
-
- <H3>Ant Properties</H3>
-
- <P>The <CODE>ant.properties</CODE> file contains a list of all the properties that should be
-
- set by default when ant is run. In addition there are a few special properties
-
- that are used directly by ant. An example of these properties in use is:</P>
-
- <PRE> system.taskdir=tasks/
-
- user.taskdir=anttasks/</PRE>
-
- <P>The <CODE>system.taskdir</CODE> property sets where the system looks for Java ARchive files
-
- containing tasks. If this property defines a relative path, then the path is
-
- taken as relative from the installation directory.</P>
-
View
1,106 Tools/apache-ant-1.8.2/docs/ant2/requested-features.html
@@ -1,1106 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
-
- contributor license agreements. See the NOTICE file distributed with
-
- this work for additional information regarding copyright ownership.
-
- The ASF licenses this file to You under the Apache License, Version 2.0
-
- (the "License"); you may not use this file except in compliance with
-
- the License. You may obtain a copy of the License at
-
-
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-
-
- Unless required by applicable law or agreed to in writing, software
-
- distributed under the License is distributed on an "AS IS" BASIS,
-
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
- See the License for the specific language governing permissions and
-
- limitations under the License.
-
--->
-
-<html>
-
-<body>
-
-
-
-<h2>
-
-<center>Requested Features for Ant2</center>
-
-</h2>
-
-
-
-<h4>
-
-I. Things that don't affect the core but are requests for new tasks or
-
-enhancements to existing tasks.
-
-</h4>
-
-
-
-&quot;Accepted&quot; for a task doesn't mean that
-
-task will be a core task (or even be supplied by a voter), just that having
-
-it (as an optional task) would be acceptable.
-
-<p>
-
-
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-
-&nbsp;&nbsp;<b>Accepted</b>
-
-</font>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Add a new datatype filterset to group token-filters.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Make usage of particular filters/filtersets explicit in copy tasks.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Make facade tasks for things like <code>&lt;javac&gt;</code>
-
-(JikesImpl, ModernImpl, etc.).
-
-(One candidate is <code>&lt;jar&gt;</code>, with implementations for
-
-a <code>&lt;fastjar&gt;</code>, for example.)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Unify multiple similar tasks to use similar forms (eg., all the
-
-<code>&lt;javacc&gt;</code>-type
-
-tools).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Obfuscating task.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Better scripting/notification support so the hooks are available to
-
-send notifications at certain times.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Add an <code>&lt;ant&gt;</code> task that will find build files according
-
-to a fileset and invoke a common target in them. (<code>&lt;anton&gt;</code>?)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Add a JavaApply task that executes a given class with files from a
-
-fileset as arguments (similar to <code>&lt;apply&gt;</code>).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Include some more sophisticated loggers with the Ant distribution &#150;
-
-especially for sending emails. Make the existing one more flexible
-
-(stylesheet used by XmlLogger). (Could be part of the same module tasks
-
-would be developed in?)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Better docs (eg., more examples, tutorials, beginner documents, reference
-
-sheets for tasks, printable version, etc.).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-RPM task.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Task for splitting files (head/tail/split-like functionality).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Task to create XMI from Java.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Socksified networking tasks, SSH tasks.
-
-(Peter Donald expressed some legal concerns that might need to be overcome,
-
-depending on the implementation.)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-A reachable task that works much like <code>&lt;available&gt;</code>,
-
-for network URLs.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Task to extract classes from a jar-file that a given class depends on.
-
-(Based on <code>&lt;depend&gt;</code> or IBM's JAX, for example.)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Unify <code>&lt;available&gt;</code> and <code>&lt;uptodate&gt;</code>
-
-into a more general
-
-<code>&lt;condition&gt;</code> task &#150; support
-
-<code>AND</code>/<code>OR</code> of
-
-several tests here.
-
-(Will need more discussion because of vote by Peter Donald.)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-JSP-compilation task. (Sounds like a candidate for a facade task.)
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-URL-spider task that checks links for missing content or server errors.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-
-&nbsp;&nbsp;<b>Rejected</b>
-
-</font>
-
-<blockquote>
-
-<ul><li>
-
-Make the default logger's output clear, informative, and terse. (Rejectors
-
-think it already is.)
-
-</blockquote>
-
-</li></ul>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Add an attribute to <code>&lt;property&gt;</code> to read in an entire file
-
-as the value of a property.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Make PATH-handling consistent. Every task that has a PATH attribute
-
-must also accept references to PATHs.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<br>
-
-<h4>
-
-II. Goals that need to be abstract until we get into design
-
-decisions.
-
-</h4>
-
-
-
-During the discussion it became obvious that some things from this list
-
-are goals for Ant and some should be guidelines for developers.
-
-Therefore, there are two flavors, &quot;Accepted&quot; and
-
-&quot;Accepted As Guideline&quot;.
-
-<p>
-
-
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-
-&nbsp;&nbsp;<b>Accepted</b>
-
-</font>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Provide a clear mission statement for Ant.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Main goals<b>:</b> simplicity, understandability, extensibility.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Remove magic properties if at all humanly possible.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Remove as much dependency on native scripts as possible.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Clean object model (ie., Project/Target/Task).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Good event model to integrate well with IDE/GUI/etc.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Use a consistent naming scheme for attributes across all tasks.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Keep build-file syntax as compatible to Ant1 as possible
-
-(ie., don't break something just because we can).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Keep the interface for tasks as similar to that of Ant1 as
-
-possible (ie., don't break something just because we can).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Ant should be cancelable.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-
-&nbsp;&nbsp;<b>Accepted As Guideline</b>
-
-</font>
-
-
-
-<blockquote>
-
-<ul><li>
-
-No commit of new features without documentation.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-No commit of new features without test-cases.
-
-</li></ul>
-
-</blockquote>
-
-
-
-<br>
-
-<h4>
-
-III. Things that are simple and easy to implement, where we expect the
-
-committers to agree.
-
-</h4>
-
-
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-
-&nbsp;&nbsp;<b>Accepted</b>
-
-</font>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Namespace support so different concerns can occupy different namespaces
-
-from Ant (thus, SAX2/JAXP1.1).
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>
-
-Java2
-
-</li></ul>
-
-</blockquote>
-
-
-
-<blockquote>
-
-<ul><li>