Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpMatcher.java URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpMatcher.java?view=diff&rev=503984&r1=503983&r2=503984 ============================================================================== --- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpMatcher.java (original) +++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpMatcher.java Mon Feb 5 21:01:25 2007 @@ -19,11 +19,11 @@ import java.util.List; import java.util.Map; +import org.apache.commons.pool.KeyedPoolableObjectFactory; +import org.apache.commons.pool.impl.GenericKeyedObjectPool; import org.apache.hivemind.ApplicationRuntimeException; -import org.apache.oro.text.regex.MalformedPatternException; import org.apache.oro.text.regex.MatchResult; import org.apache.oro.text.regex.Pattern; -import org.apache.oro.text.regex.PatternCompiler; import org.apache.oro.text.regex.PatternMatcher; import org.apache.oro.text.regex.PatternMatcherInput; import org.apache.oro.text.regex.Perl5Compiler; @@ -39,49 +39,33 @@ public class RegexpMatcher { - private PatternCompiler _patternCompiler; - + private static final int MAX_ACTIVE = 100; + + private static final long SLEEP_TIME = 1000 * 60 * 2; + private PatternMatcher _matcher; - - private Map _compiledPatterns = new HashMap(); - + + private final KeyedPoolableObjectFactory _factory = new RegexpPoolObjectFactory(); + + private final GenericKeyedObjectPool _pool; + private Map _escapedPatternStrings = new HashMap(); - - protected Pattern compilePattern(String pattern) - { - if (_patternCompiler == null) - _patternCompiler = new Perl5Compiler(); - - try - { - return _patternCompiler.compile(pattern, Perl5Compiler.SINGLELINE_MASK | Perl5Compiler.READ_ONLY_MASK); - } - catch (MalformedPatternException ex) - { - throw new ApplicationRuntimeException(ex); - } - } - - protected Pattern getCompiledPattern(String pattern) + + public RegexpMatcher() { - Pattern result = (Pattern) _compiledPatterns.get(pattern); - - if (result == null) - { - result = compilePattern(pattern); - _compiledPatterns.put(pattern, result); - } - - return result; + _pool = new GenericKeyedObjectPool(_factory, MAX_ACTIVE, GenericKeyedObjectPool.WHEN_EXHAUSTED_BLOCK, -1); + + _pool.setMaxIdle(MAX_ACTIVE / 2); + _pool.setMinEvictableIdleTimeMillis(MAX_ACTIVE); + _pool.setTimeBetweenEvictionRunsMillis(SLEEP_TIME); } - + /** * Clears any previously compiled patterns. */ - public void clear() { - _compiledPatterns.clear(); + _pool.clear(); } protected PatternMatcher getPatternMatcher() @@ -94,32 +78,56 @@ public boolean matches(String pattern, String input) { - Pattern compiledPattern = getCompiledPattern(pattern); - - return getPatternMatcher().matches(input, compiledPattern); + Pattern compiled = null; + + try { + + compiled = (Pattern)_pool.borrowObject(pattern); + + return getPatternMatcher().matches(input, compiled); + + } catch (Exception e) { + + throw new ApplicationRuntimeException(e); + } finally { + + try { _pool.returnObject(pattern, compiled); } catch (Throwable t) { } + } } - + public boolean contains(String pattern, String input) { - Pattern compiledPattern = getCompiledPattern(pattern); - - return getPatternMatcher().contains(input, compiledPattern); + Pattern compiled = null; + + try { + + compiled = (Pattern)_pool.borrowObject(pattern); + + return getPatternMatcher().contains(input, compiled); + + } catch (Exception e) { + + throw new ApplicationRuntimeException(e); + } finally { + + try { _pool.returnObject(pattern, compiled); } catch (Throwable t) { } + } } public String getEscapedPatternString(String pattern) { String result = (String) _escapedPatternStrings.get(pattern); - + if (result == null) { result = Perl5Compiler.quotemeta(pattern); - + _escapedPatternStrings.put(pattern, result); } - + return result; } - + /** * Given an input string, finds all matches in an input string for the pattern. * @@ -132,21 +140,33 @@ */ public RegexpMatch[] getMatches(String pattern, String input) { - Pattern compiledPattern = getCompiledPattern(pattern); - - PatternMatcher matcher = getPatternMatcher(); - PatternMatcherInput matcherInput = new PatternMatcherInput(input); - - List matches = new ArrayList(); - - while (matcher.contains(matcherInput, compiledPattern)) - { - MatchResult match = matcher.getMatch(); - - matches.add(new RegexpMatch(match)); + Pattern compiled = null; + + try { + + compiled = (Pattern)_pool.borrowObject(pattern); + + PatternMatcher matcher = getPatternMatcher(); + PatternMatcherInput matcherInput = new PatternMatcherInput(input); + + List matches = new ArrayList(); + + while (matcher.contains(matcherInput, compiled)) + { + MatchResult match = matcher.getMatch(); + + matches.add(new RegexpMatch(match)); + } + + return (RegexpMatch[]) matches.toArray(new RegexpMatch[matches.size()]); + + } catch (Exception e) { + + throw new ApplicationRuntimeException(e); + } finally { + + try { _pool.returnObject(pattern, compiled); } catch (Throwable t) { } } - - return (RegexpMatch[]) matches.toArray(new RegexpMatch[matches.size()]); } /** @@ -162,23 +182,35 @@ */ public String[] getMatches(String pattern, String input, int subgroup) { - Pattern compiledPattern = getCompiledPattern(pattern); + Pattern compiled = null; + + try { + + compiled = (Pattern)_pool.borrowObject(pattern); + + PatternMatcher matcher = getPatternMatcher(); + PatternMatcherInput matcherInput = new PatternMatcherInput(input); + + List matches = new ArrayList(); + + while (matcher.contains(matcherInput, compiled)) + { + MatchResult match = matcher.getMatch(); + + String matchedInput = match.group(subgroup); + + matches.add(matchedInput); + } + + return (String[]) matches.toArray(new String[matches.size()]); + + } catch (Exception e) { - PatternMatcher matcher = getPatternMatcher(); - PatternMatcherInput matcherInput = new PatternMatcherInput(input); + throw new ApplicationRuntimeException(e); + } finally { - List matches = new ArrayList(); - - while (matcher.contains(matcherInput, compiledPattern)) - { - MatchResult match = matcher.getMatch(); - - String matchedInput = match.group(subgroup); - - matches.add(matchedInput); + try { _pool.returnObject(pattern, compiled); } catch (Throwable t) { } } - - return (String[]) matches.toArray(new String[matches.size()]); } }
Added: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpPoolObjectFactory.java URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpPoolObjectFactory.java?view=auto&rev=503984 ============================================================================== --- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpPoolObjectFactory.java (added) +++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/RegexpPoolObjectFactory.java Mon Feb 5 21:01:25 2007 @@ -0,0 +1,49 @@ +// Copyright 2004, 2005 The Apache Software Foundation +// +// 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. +package org.apache.tapestry.util; + +import org.apache.commons.pool.BaseKeyedPoolableObjectFactory; +import org.apache.hivemind.util.Defense; +import org.apache.oro.text.regex.Pattern; +import org.apache.oro.text.regex.PatternCompiler; +import org.apache.oro.text.regex.Perl5Compiler; + + +/** + * Implementation of [EMAIL PROTECTED] BaseKeyedPoolableObjectFactory} for regexp patterns + * that compiles incoming String regexp patterns into compiled [EMAIL PROTECTED] Pattern} + * objects. + */ +public class RegexpPoolObjectFactory extends BaseKeyedPoolableObjectFactory +{ + private PatternCompiler _patternCompiler; + + /** + * [EMAIL PROTECTED] + */ + public Object makeObject(Object pattern) + throws Exception + { + Defense.notNull(pattern, "Regexp pattern"); + Defense.isAssignable(pattern, String.class, "Regexp pattern"); + + if (_patternCompiler == null) + _patternCompiler = new Perl5Compiler(); + + String regexp = (String)pattern; + + return _patternCompiler.compile(regexp, Perl5Compiler.SINGLELINE_MASK | Perl5Compiler.READ_ONLY_MASK); + } + +} Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/DojoFileStorageProvider.jar URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/DojoFileStorageProvider.jar?view=auto&rev=503984 ============================================================================== Binary file - no diff available. Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/DojoFileStorageProvider.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/LICENSE URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/LICENSE?view=auto&rev=503984 ============================================================================== --- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/LICENSE (added) +++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/LICENSE Mon Feb 5 21:01:25 2007 @@ -0,0 +1,195 @@ +Dojo is availble under *either* the terms of the modified BSD license *or* the +Academic Free License version 2.1. As a recipient of Dojo, you may choose which +license to receive this code under (except as noted in per-module LICENSE +files). Some modules may not be the copyright of the Dojo Foundation. These +modules contain explicit declarations of copyright in both the LICENSE files in +the directories in which they reside and in the code itself. No external +contributions are allowed under licenses which are fundamentally incompatible +with the AFL or BSD licenses that Dojo is distributed under. + +The text of the AFL and BSD licenses is reproduced below. + +------------------------------------------------------------------------------- +The "New" BSD License: +********************** + +Copyright (c) 2005-2006, The Dojo Foundation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Dojo Foundation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- +The Academic Free License, v. 2.1: +********************************** + +This Academic Free License (the "License") applies to any original work of +authorship (the "Original Work") whose owner (the "Licensor") has placed the +following notice immediately following the copyright notice for the Original +Work: + +Licensed under the Academic Free License version 2.1 + +1) Grant of Copyright License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license to do the +following: + +a) to reproduce the Original Work in copies; + +b) to prepare derivative works ("Derivative Works") based upon the Original +Work; + +c) to distribute copies of the Original Work and Derivative Works to the +public; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license, under patent +claims owned or controlled by the Licensor that are embodied in the Original +Work as furnished by the Licensor, to make, use, sell and offer for sale the +Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred +form of the Original Work for making modifications to it and all available +documentation describing how to modify the Original Work. Licensor hereby +agrees to provide a machine-readable copy of the Source Code of the Original +Work along with each copy of the Original Work that Licensor distributes. +Licensor reserves the right to satisfy this obligation by placing a +machine-readable copy of the Source Code in an information repository +reasonably calculated to permit inexpensive and convenient access by You for as +long as Licensor continues to distribute the Original Work, and by publishing +the address of that information repository in a notice immediately following +the copyright notice that applies to the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names +of any contributors to the Original Work, nor any of their trademarks or +service marks, may be used to endorse or promote products derived from this +Original Work without express prior written permission of the Licensor. Nothing +in this License shall be deemed to grant any rights to trademarks, copyrights, +patents, trade secrets or any other intellectual property of Licensor except as +expressly stated herein. No patent license is granted to make, use, sell or +offer to sell embodiments of any patent claims other than the licensed claims +defined in Section 2. No right is granted to the trademarks of Licensor even if +such marks are included in the Original Work. Nothing in this License shall be +interpreted to prohibit Licensor from licensing under different terms from this +License any Original Work that Licensor otherwise would have a right to +license. + +5) This section intentionally omitted. + +6) Attribution Rights. You must retain, in the Source Code of any Derivative +Works that You create, all copyright, patent or trademark notices from the +Source Code of the Original Work, as well as any notices of licensing and any +descriptive text identified therein as an "Attribution Notice." You must cause +the Source Code for any Derivative Works that You create to carry a prominent +Attribution Notice reasonably calculated to inform recipients that You have +modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that +the copyright in and to the Original Work and the patent rights granted herein +by Licensor are owned by the Licensor or are sublicensed to You under the terms +of this License with the permission of the contributor(s) of those copyrights +and patent rights. Except as expressly stated in the immediately proceeding +sentence, the Original Work is provided under this License on an "AS IS" BASIS +and WITHOUT WARRANTY, either express or implied, including, without limitation, +the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. +This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No +license to Original Work is granted hereunder except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, +whether in tort (including negligence), contract, or otherwise, shall the +Licensor be liable to any person for any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License +or the use of the Original Work including, without limitation, damages for loss +of goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses. This limitation of liability shall not +apply to liability for death or personal injury resulting from Licensor's +negligence to the extent applicable law prohibits such limitation. Some +jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so this exclusion and limitation may not apply to You. + +9) Acceptance and Termination. If You distribute copies of the Original Work or +a Derivative Work, You must make a reasonable effort under the circumstances to +obtain the express assent of recipients to the terms of this License. Nothing +else but this License (or another written agreement between Licensor and You) +grants You permission to create Derivative Works based upon the Original Work +or to exercise any of the rights granted in Section 1 herein, and any attempt +to do so except under the terms of this License (or another written agreement +between Licensor and You) is expressly prohibited by U.S. copyright law, the +equivalent laws of other countries, and by international treaty. Therefore, by +exercising any of the rights granted to You in Section 1 herein, You indicate +Your acceptance of this License and all of its terms and conditions. + +10) Termination for Patent Action. This License shall terminate automatically +and You may no longer exercise any of the rights granted to You by this License +as of the date You commence an action, including a cross-claim or counterclaim, +against Licensor or any licensee alleging that the Original Work infringes a +patent. This termination provision shall not apply for an action alleging +patent infringement by combinations of the Original Work with other software or +hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this +License may be brought only in the courts of a jurisdiction wherein the +Licensor resides or in which Licensor conducts its primary business, and under +the laws of that jurisdiction excluding its conflict-of-law provisions. The +application of the United Nations Convention on Contracts for the International +Sale of Goods is expressly excluded. Any use of the Original Work outside the +scope of this License or after its termination shall be subject to the +requirements and penalties of the U.S. Copyright Act, 17 U.S.C. ç 101 et +seq., the equivalent laws of other countries, and international treaty. This +section shall survive the termination of this License. + +12) Attorneys Fees. In any action to enforce the terms of this License or +seeking damages relating thereto, the prevailing party shall be entitled to +recover its costs and expenses, including, without limitation, reasonable +attorneys' fees and costs incurred in connection with such action, including +any appeal of such action. This section shall survive the termination of this +License. + +13) Miscellaneous. This License represents the complete agreement concerning +the subject matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent necessary to +make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether +in upper or lower case, means an individual or a legal entity exercising rights +under, and complying with all of the terms of, this License. For legal +entities, "You" includes any entity that controls, is controlled by, or is +under common control with you. For 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. + +15) Right to Use. You may use the Original Work in all ways not otherwise +restricted or conditioned by this License or by law, and Licensor promises not +to interfere with or be responsible for such uses by You. + +This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. +Permission is hereby granted to copy and distribute this license without +modification. This license may not be modified without the express written +permission of its copyright owner. Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/README URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/README?view=auto&rev=503984 ============================================================================== --- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/README (added) +++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/README Mon Feb 5 21:01:25 2007 @@ -0,0 +1,176 @@ +The Dojo Toolkit +---------------- + +Dojo is a portable JavaScript toolkit for web application developers and +JavaScript professionals. Dojo solves real-world problems by providing powerful +abstractions and solid, tested implementations. + +Getting Started +--------------- + +To use Dojo in your application, download one of the pre-built editions from the +Dojo website, http://dojotoolkit.org. Once you have downloaded the file you will +need to unzip the archive in your website root. At a minimum, you will need to +extract: + + src/ (folder) + dojo.js + iframe_history.html + +To begin using dojo, include dojo in your pages by using: + + <script type="text/javascript" src="/path/to/dojo.js"></script> + +Depending on the edition that you have downloaded, this base dojo.js file may or +may not include the modules you wish to use in your application. The files which +have been "baked in" to the dojo.js that is part of your distribution are listed +in the file build.txt that is part of the top-level directory that is created +when you unpack the archive. To ensure modules you wish to use are available, +use dojo.require() to request them. A very rich application might include: + + <script type="text/javascript" src="/path/to/dojo.js"></script> + <script type="text/javascript"> + dojo.require("dojo.event.*"); // sophisticated AOP event handling + dojo.require("dojo.io.*"); // for Ajax requests + dojo.require("dojo.storage.*"); // a persistent local data cache + dojo.require("dojo.json"); // serialization to JSON + dojo.require("dojo.dnd.*"); // drag-and-drop + dojo.require("dojo.lfx.*"); // animations and eye candy + dojo.require("dojo.widget.Editor2");// stable, portable HTML WYSIWYG + </script> + +Note that only those modules which are *not* already "baked in" to dojo.js by +the edition's build process are requested by dojo.require(). This helps make +your application faster without forcing you to use a build tool while in +development. See "Building Dojo" and "Working From Source" for more details. + + +Compatibility +------------- + +In addition to it's suite of unit-tests for core system components, Dojo has +been tested on almost every modern browser, including: + + - IE 5.5+ + - Mozilla 1.5+, Firefox 1.0+ + - Safari 1.3.9+ + - Konqueror 3.4+ + - Opera 8.5+ + +Note that some widgets and features may not perform exactly the same on every +browser due to browser implementation differences. + +For those looking to use Dojo in non-browser environments, please see "Working +From Source". + + +Documentation and Getting Help +------------------------------ + +Articles outlining major Dojo systems are linked from: + + http://dojotoolkit.org/docs/ + +Toolkit APIs are listed in outline form at: + + http://dojotoolkit.org/docs/apis/ + +And documented in full at: + + http://manual.dojotoolkit.org/ + +The project also maintains a JotSpot Wiki at: + + http://dojo.jot.com/ + +A FAQ has been extracted from mailing list traffic: + + http://dojo.jot.com/FAQ + +And the main Dojo user mailing list is archived and made searchable at: + + http://news.gmane.org/gmane.comp.web.dojo.user/ + +You can sign up for this list, which is a great place to ask questions, at: + + http://dojotoolkit.org/mailman/listinfo/dojo-interest + +The Dojo developers also tend to hang out in IRC and help people with Dojo +problems. You're most likely to find them at: + + irc.freenode.net #dojo + +Note that 3PM Wed PST in #dojo-meeting is reserved for a weekly meeting between +project developers, although anyone is welcome to participate. + + +Working From Source +------------------- + +The core of Dojo is a powerful package system that allows developers to optimize +Dojo for deployment while using *exactly the same* application code in +development. Therefore, working from source is almost exactly like working from +a pre-built edition. Pre-built editions are significantly faster to load than +working from source, but are not as flexible when in development. + +There are multiple ways to get the source. Nightly snapshots of the Dojo source +repository are available at: + + http://archive.dojotoolkit.org/nightly.tgz + +Anonymous Subversion access is also available: + + %> svn co http://svn.dojotoolkit.org/dojo/trunk/ dojo + +Each of these sources will include some extra directories not included in the +pre-packaged editions, including command-line tests and build tools for +constructing your own packages. + +Running the command-line unit test suite requires Ant 1.6. If it is installed +and in your path, you can run the tests using: + + %> cd buildscripts + %> ant test + +The command-line test harness makes use of Rhino, a JavaScript interpreter +written in Java. Once you have a copy of Dojo's source tree, you have a copy of +Rhino. From the root directory, you can use Rhino interactively to load Dojo: + + %> java -jar buildscripts/lib/js.jar + Rhino 1.5 release 3 2002 01 27 + js> load("dojo.js"); + js> print(dojo); + [object Object] + js> quit(); + +This environment is wonderful for testing raw JavaScript functionality in, or +even for scripting your system. Since Rhino has full access to anything in +Java's classpath, the sky is the limit! + +Building Dojo +------------- + +Dojo requires Ant 1.6.x in order to build correctly. While using Dojo from +source does *NOT* require that you make a build, speeding up your application by +constructing a custom profile build does. + +Once you have Ant and a source snapshot of Dojo, you can make your own profile +build ("edition") which includes only those modules your application uses by +customizing one of the files in: + + [dojo]/buildscripts/profiles/ + +These files are named *.profile.js and each one contains a list of modules to +include in a build. If we created a new profile called "test.profile.js", we +could then make a profile build using it by doing: + + %> cd buildscripts + %> ant -Dprofile=test -Ddocless=true release intern-strings + +If the build is successful, your newly minted and compressed profile build will +be placed in [dojo]/release/dojo/ + +------------------------------------------------------------------------------- +Copyright (c) 2004-2006, The Dojo Foundation, All Rights Reserved + +vim:ts=4:et:tw=80:shiftwidth=4: Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/Storage_version6.swf URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/Storage_version6.swf?view=auto&rev=503984 ============================================================================== Binary file - no diff available. Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/Storage_version6.swf ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/Storage_version8.swf URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/Storage_version8.swf?view=auto&rev=503984 ============================================================================== Binary file - no diff available. Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/Storage_version8.swf ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/build.txt URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/build.txt?view=auto&rev=503984 ============================================================================== --- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/build.txt (added) +++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/build.txt Mon Feb 5 21:01:25 2007 @@ -0,0 +1,44 @@ +Files baked into this build: +dojoGuardStart.js +../src/bootstrap1.js +../src/loader.js +dojoGuardEnd.js +../src/hostenv_browser.js +../src/lang/common.js +../src/lang/array.js +../src/lang/extras.js +../src/lang/func.js +../src/event/common.js +../src/event/browser.js +../src/string/common.js +../src/string.js +../src/io/common.js +../src/string/extras.js +../src/dom.js +../src/undo/browser.js +../src/io/BrowserIO.js +../src/xml/Parse.js +../src/lang/declare.js +../src/ns.js +../src/event/topic.js +../src/event/__package__.js +../src/widget/Manager.js +../src/uri/Uri.js +../src/uri/__package__.js +../src/html/common.js +../src/a11y.js +../src/widget/Widget.js +../src/widget/Parse.js +../src/html/style.js +../src/widget/DomWidget.js +../src/html/display.js +../src/html/layout.js +../src/html/util.js +../src/gfx/color.js +../src/lfx/Animation.js +../src/html/color.js +../src/lfx/html.js +../src/lfx/__package__.js +../src/lfx/toggler.js +../src/widget/HtmlWidget.js +../src/widget/__package__.js \ No newline at end of file
