Revision: 7131 Author: r...@google.com Date: Mon Nov 23 13:20:43 2009 Log: Merged tr...@7121 into this branch Remove obsolete documentation. svn merge --ignore-ancestry -c 7121 http://google-web-toolkit.googlecode.com/svn/trunk .
http://code.google.com/p/google-web-toolkit/source/detail?r=7131 Deleted: /releases/2.0/doc/src/com/google/gwt/doc/DeveloperGuide.java Modified: /releases/2.0/branch-info.txt ======================================= --- /releases/2.0/doc/src/com/google/gwt/doc/DeveloperGuide.java Mon May 18 11:47:32 2009 +++ /dev/null @@ -1,3498 +0,0 @@ -/* - * Copyright 2007 Google Inc. - * - * 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 com.google.gwt.doc; - -import com.google.gwt.core.client.GWT; -import com.google.gwt.core.client.JavaScriptException; -import com.google.gwt.core.client.JavaScriptObject; -import com.google.gwt.junit.client.GWTTestCase; -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.rpc.IsSerializable; -import com.google.gwt.user.client.rpc.RemoteService; -import com.google.gwt.user.client.rpc.ServiceDefTarget; -import com.google.gwt.user.client.ui.AbstractImagePrototype; -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.CellPanel; -import com.google.gwt.user.client.ui.ClickListener; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.HorizontalPanel; -import com.google.gwt.user.client.ui.Image; -import com.google.gwt.user.client.ui.ImageBundle; -import com.google.gwt.user.client.ui.KeyboardListenerAdapter; -import com.google.gwt.user.client.ui.RootPanel; -import com.google.gwt.user.client.ui.TextBox; -import com.google.gwt.user.client.ui.Widget; -import com.google.gwt.user.server.rpc.RemoteServiceServlet; -import com.google.gwt.i18n.client.Localizable; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * The GWT Developer Guide contains a variety of topics that explain the various - * moving parts of the toolkit. - * - * @title Developer Guide - * @index Developer Guide - * @index Google Web Toolkit, developer guide - * @index GWT, developer's guide - * @childIntro Topic Guide - * @tip For a list of JRE classes that GWT can translate out of the box, see the - * <a href="jre.html">documentation for the GWT JRE emulation library</a>. - */ -public class DeveloperGuide { - - static class BogusImports { - RootPanel rp; - CellPanel cp; - GWTTestCase gtc; - JavaScriptObject jso; - JavaScriptException jse; - Image img; - } - - /** - * @title Fundamentals - * - * @synopsis Core GWT concepts such as - * {...@link Fundamentals.JavaToJavaScriptCompiler compiling Java source into JavaScript}, - * {...@link Fundamentals.HostedMode debugging}, - * {...@link Fundamentals.CrossBrowserSupport cross-browser support}, - * and {...@link Fundamentals.Modules defining modules}. - * @childIntro - */ - public static class Fundamentals { - - /** - * The heart of GWT is a compiler that converts Java source into JavaScript, - * transforming your working Java application into an equivalent JavaScript - * application. Generally speaking, - * <ol> - * <li>If your GWT application compiles and runs in - * {...@link DeveloperGuide.Fundamentals.HostedMode hosted mode} as you expect</li> - * <li>And GWT compiles your application into JavaScript output without - * complaint,</li> - * <li>Then your application will work the same way in a web browser as it - * did in hosted mode.</li> - * </ol> - * The GWT compiler supports the vast majority of the Java language itself. - * The GWT runtime library emulates a relevant subset of the Java runtime - * library. - * - * @title GWT Compiler - * @synopsis A compiler that transforms your working Java application into - * an equivalent JavaScript application. - * @childIntro Specifics - */ - public static class JavaToJavaScriptCompiler { - - /** - * GWT compiles Java source that is compatible with J2SE 1.4.2 or earlier. - * - * <ul class="featurelist"> - * - * <li><div class="heading">Intrinsic types</div> - * - * <div><code>byte</code>, <code>char</code>, <code>short</code>, - * <code>int</code>, <code>long</code>, <code>float</code>, - * <code>double</code>, <code>Object</code>, <code>String</code>, - * and arrays are supported. However, there is no 64-bit integral type in - * JavaScript, so variables of type <code>long</code> are mapped onto - * JavaScript double-precision floating point values. To ensure maximum - * consistency between hosted mode and web mode, we recommend that you use - * <code>int</code> variables.</div> </li> - * - * <li><div class="heading">Exceptions</div> - * - * <div><code>try</code>, <code>catch</code>, <code>finally</code> - * and user-defined exceptions are supported as normal, although - * <code>Throwable.getStackTrace()</code> is not supported for web mode. - * See {...@link Throwable} for additional details.</div></li> - * - * <li><div class="heading">Assertions</div> - * - * <div>The GWT compiler parses Java <code>assert</code> statements, but - * it does not emit code JavaScript code for them.</div></li> - * - * <li><div class="heading">Multithreading and Synchronization</div> - * - * <div> JavaScript interpreters are single-threaded, so while GWT - * silently accepts the <code>synchronized</code> keyword, it has no - * real effect. Synchronization-related library methods are not available, - * including <code>Object.wait()</code>, <code>Object.notify()</code>, - * and <code>Object.notifyAll()</code> </div> </li> - * - * <li><div class="heading">Reflection</div> - * - * <div>For maximum efficiency, GWT compiles your Java source into a - * monolithic script, and does not support subsequent dynamic loading of - * classes. This and other optimizations preclude general support for - * reflection. It is possible to query an object for its class name using - * {...@link GWT#getTypeName(Object)}. </div> </li> - * - * <li><div class="heading">Finalization</div> - * - * <div>JavaScript does not support object finalization during garbage - * collection, so GWT isn't able to be honor Java finalizers in web mode. - * </div> </li> - * - * <li><div class="heading">Strict Floating-Point</div> - * - * <div>The Java language specification precisely defines floating-point - * support, including single-precision and double-precision numbers as - * well as the <code>strictfp</code> keyword. GWT does not support the - * <code>strictfp</code> keyword and can't ensure any particular degree - * of floating-point precision in translated code, so you may want to - * avoid calculations in client-side code that require a guaranteed level - * of floating-point precision.</div> </li> - * - * </ul> - * - * @title Language Support - * @synopsis GWT supports most core Java 1.4 language semantics, but there - * are a few differences you'll want to be aware of. - * @index synchronization support - * @index Java language support - * @index floating-point support - * @index multithreading support - * @see DeveloperGuide.Fundamentals.JavaToJavaScriptCompiler.JavaRuntimeSupport - */ - public static class LanguageSupport { - } - - /** - * GWT supports only a small subset of the classes available in the Java 2 - * Standard and Enterprise Edition libraries, as these libraries are quite - * large and rely on functionality that is unavailable within web - * browsers. To find out exactly which classes and methods are supported - * for core Java runtime packages, see the API reference for - * <code>{...@link java.lang java.lang}</code> and - * <code>{...@link java.util java.util}</code>, which lists supported - * classes and contains notes on behavioral differences from the standard - * Java runtime. - * - * <p> - * Some specific areas in which GWT emulation differs from the standard - * Java runtime: - * <ul class="featurelist"> - * <li><div class="heading">Regular Expressions</div> <div> The syntax - * of <a - * href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html">Java - * regular expressions</a> is similar, but not identical, to <a - * href="http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Regular_Expressions">JavaScript - * regular expressions</a>. For example, the - * {...@link String#replaceAll(java.lang.String, java.lang.String) replaceAll} - * and {...@link String#split(java.lang.String) split} methods use regular - * expressions. So, you'll probably want to be careful to only use Java - * regular expressions that have the same meaning in JavaScript.</div> - * </li> - * - * <li><div class="heading">Serialization</div> <div>Java serialization - * relies on a few mechanisms that are not available in compiled - * JavaScript, such as dynamic class loading and reflection. As a result, - * GWT does not support standard Java serialization. Instead, GWT has an - * {...@link DeveloperGuide.RemoteProcedureCalls RPC} facility that provides - * automatic object serialization to and from the server for the purpose - * of invoking remote methods. </div> </li> - * </ul> - * </p> - * - * @title Runtime Library Support - * @synopsis GWT emulates a basic set of the standard Java library - * classes. - * @tip You'll save yourself a lot of frustration if you make sure that - * you use only translatable classes in your - * {...@link DeveloperGuide.Fundamentals.ClientSide client-side code} - * from the very beginning. To help you identify problems early, your - * code is checked against the JRE emulation library whenever you run - * in {...@link DeveloperGuide.Fundamentals.HostedMode hosted mode}. As - * a result, most uses of unsupported libraries will be caught the - * first time you attempt to run your application. So, <i>run early - * and often</i>. - * - * @index regular expression support - * @index Java runtime support - * @see java.lang java.lang - * @see java.util java.util - */ - public static class JavaRuntimeSupport { - } - } - - /** - * GWT shields you from worrying too much about cross-browser - * incompatibilities. If you stick to built-in - * {...@link DeveloperGuide.UserInterface.WidgetsAndPanels widgets} and - * {...@link DeveloperGuide.UserInterface.CreatingCustomWidgets composites}, - * your applications will work similarly on the most recent versions of - * Internet Explorer, Firefox, and Safari. (Opera, too, most of the time.) - * DHTML user interfaces are remarkably quirky, though, so make sure to test - * your applications thoroughly on every browser. - * - * <p> - * Whenever possible, GWT defers to browsers' native user interface - * elements. For example, GWT's {...@link Button} widget is a true HTML - * <code><button></code> rather than a synthetic button-like widget - * built, say, from a <code><div></code>. That means that GWT - * buttons render appropriately in different browsers and on different - * client operating systems. We like the native browser controls because - * they're fast, accessible, and most familiar to users. - * </p> - * - * <p> - * When it comes to styling web applications, <a - * href="http://www.w3.org/Style/CSS/">CSS</a> is ideal. So, instead of - * attempting to encapsulate UI styling behind a wall of - * least-common-denominator APIs, GWT provides very few methods directly - * related to style. Rather, developers are encouraged to define styles in - * stylesheets that are linked to application code using - * {...@link com.google.gwt.user.client.ui.UIObject#setStyleName(String) style names}. - * In addition to cleanly separating style from application logic, this - * division of labor helps applications load and render more quickly, - * consume less memory, and even makes them easier to tweak during - * edit/debug cycles since there's no need to recompile for style tweaks. - * </p> - * - * @title Cross-browser Support - * @synopsis The architecture of GWT makes it easy to support multiple - * browsers with a single code base. - * @see DeveloperGuide.UserInterface.StyleSheets - */ - public static class CrossBrowserSupport { - } - - /** - * You will spend most of your development time working in <i>hosted mode</i>, - * which means that you are interacting with your GWT application without it - * having been translated into JavaScript. Anytime you edit, run, and debug - * applications from a Java integrated development environment (IDE), you - * are working in hosted mode. When running in hosted mode, the Java Virtual - * Machine (JVM) is actually executing your application code as compiled - * Java bytecode, using GWT plumbing to automate an embedded browser window. - * By remaining in this traditional "code-test-debug" cycle, hosted mode is - * by far the most productive way to develop your application quickly. - * - * <p> - * To launch a hosted mode session, your startup class should be - * <code>com.google.gwt.dev.GWTShell</code>, found in - * <code>gwt-dev-windows.jar</code> (or <code>gwt-dev-linux.jar</code>). - * </p> - * - * @title Debugging in Hosted Mode - * @synopsis An embedded DHTML browser lets you run and debug applications - * directly in any Java development environment before being - * translated into JavaScript. - * @tip In hosted mode, the GWT development shell looks for - * {...@link DeveloperGuide.Fundamentals.Modules modules} (and therefore - * {...@link DeveloperGuide.Fundamentals.ClientSide client-side} source) - * using the JVM's classpath. Make sure to add your source directories - * first in your classpath when running the development shell. - */ - public static class HostedMode { - } - - /** - * As you move from development into end-to-end testing and production, you - * will begin to interact with your application in web mode more often. - * <i>Web mode</i> refers to accessing your application from a normal - * browser -- where it runs as pure JavaScript -- as it is ultimately - * intended to be deployed. - * - * <p> - * To create a web mode version of your module, you compile it using either - * the "Compile/Browse" button available in the hosted browser window or the - * command-line compiler <code>com.google.gwt.dev.GWTCompiler</code>. - * </p> - * - * <p> - * Web mode demonstrates what makes GWT unusual: when your application is - * launched in web mode, it runs completely as JavaScript and does not - * require any browser plug-ins or JVM. - * </p> - * - * @title Deployment in Web Mode - * @synopsis Compile your application into JavaScript for easy deployment. - */ - public static class WebMode { - } - - /** - * Any HTML page containing the proper incantation can include code created - * with GWT, referred to as a <i>host page</i>. A typical HTML host page - * looks like this: - * - * <pre class="code"> - * <html> - * <head> - * - * <!-- Properties can be specified to influence deferred binding --> - * <meta name='gwt:property' content='locale=en_UK'> - * - * <!-- Stylesheets are optional, but useful --> - * <link rel="stylesheet" href="Calendar.css"> - * - * <!-- Titles are optional, but useful --> - * <title>Calendar App</title> - * - * </head> - * <body> - * - * <!-- The fully-qualified module name, followed by 'nocache.js' --> - * <script language="javascript" src="com.example.cal.Calendar.nocache.js"></script> - * - * <!-- Include a history iframe to enable full GWT history support --> - * <!-- (the id must be exactly as shown) --> - * <iframe src="javascript:''" id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe> - * - * </body> - * </html> - * </pre> - * - * The structure was designed to make it easy to add GWT functionality to - * existing web applications with only minor changes. - * - * @title HTML Host Pages - * @synopsis A host page is an HTML document that includes a GWT module. - */ - public static class HostPage { - } - - /** - * Your application is sent across a network to a user, where it runs as - * JavaScript inside his or her web browser. Everything that happens within - * your user's web browser is referred to as <i>client-side</i> processing. - * When you write client-side code that is intended to run in the web - * browser, remember that it ultimately becomes JavaScript. Thus, it is - * important to use only libraries and Java language constructs that can be - * {...@link DeveloperGuide.Fundamentals.JavaToJavaScriptCompiler translated}. - * - * @title Client-side Code - * @index client-side - * @synopsis "Client-side" refers to source code that is intended to be - * translated and run in a web browser as JavaScript. - */ - public static class ClientSide { - } - - /** - * Everything that happens within your server computer is referred to as - * <i>server-side</i> processing. When your application needs to interact - * with your server (for example, to load or save data), it makes a - * client-side request (from the browser) across the network using a - * {...@link DeveloperGuide.RemoteProcedureCalls remote procedure call (RPC)}. - * While processing an RPC, your server is executing server-side code. - * - * @title Server-side Code - * @index server-side - * @synopsis "Server-side" refers to source code that is not intended to be - * translated and will only run on a server as bytecode. - * @tip GWT doesn't meddle with your ability to run Java bytecode on your - * server whatsoever. Server-side code doesn't need to be translatable, - * so you're free to use any Java library you find useful. - */ - public static class ServerSide { - } - - /** - * GWT projects are overlaid onto Java packages such that most of the - * configuration can be inferred from the classpath and your - * {...@link DeveloperGuide.Fundamentals.Modules module definitions}. - * - * <p> - * If you are starting a GWT project from scratch, you should use the - * standard GWT package layout, which makes it easy to differentiate - * {...@link DeveloperGuide.Fundamentals.ClientSide client-side code} from - * {...@link DeveloperGuide.Fundamentals.ServerSide server-side code}. For - * example, suppose your new project is called "Calendar". The standard - * package layout would look like this: - * </p> - * - * <table width="80%" align="center"> - * <tr> - * <th width="50%" align="left"> Package </th> - * <th width="50%" align="left"> Purpose </th> - * </tr> - * <tr> - * <td><code>com/example/cal/</code></td> - * <td>The project root package contains - * {...@link DeveloperGuide.Fundamentals.Modules.ModuleXml module XML files}</td> - * </tr> - * <tr> - * <td><code>com/example/cal/client/</code></td> - * <td>Client-side source files and subpackages</td> - * </tr> - * <tr> - * <td><code>com/example/cal/server/</code></td> - * <td>Server-side code and subpackages</td> - * </tr> - * <tr> - * <td><code>com/example/cal/public/</code></td> - * <td>Static resources that can be served publicly</td> - * </tr> - * </table> - * - * <p> - * and examples files would be arranged like so: - * </p> - * - * <table width="80%" align="center"> - * <tr> - * <th width="50%" align="left">File</th> - * <th width="50%" align="left">Purpose</th> - * </tr> - * <tr> - * <td><code>com/example/cal/Calendar.gwt.xml</code></td> - * <td>A common base {...@link DeveloperGuide.Fundamentals.Modules module} for - * your project that inherits <code>com.google.gwt.user.User</code> module</td> - * </tr> - * <tr> - * <td><code>com/example/cal/CalendarApp.gwt.xml</code></td> - * <td>Inherits the <code>com.example.cal.Calendar</code> module (above) - * and adds an entry point class</td> - * </tr> - * <tr> - * <td><code>com/example/cal/CalendarTest.gwt.xml</code></td> - * <td>A {...@link DeveloperGuide.Fundamentals.Modules module} defined by your - * project</td> - * </tr> - * <tr> - * <td><code>com/example/cal/client/CalendarApp.java</code></td> - * <td>Client-side Java source for the entry-point class</td> - * </tr> - * <tr> - * <td><code>com/example/cal/client/spelling/SpellingService.java</code></td> - * <td>An RPC service interface defined in a subpackage</td> - * </tr> - * <tr> - * <td><code>com/example/cal/server/spelling/SpellingServiceImpl.java</code></td> - * <td>Server-side Java source that implements the logic of the spelling - * service</td> - * </tr> - * <tr> - * <td><code>com/example/cal/public/Calendar.html</code></td> - * <td>An HTML page that loads the calendar app</td> - * </tr> - * <tr> - * <td><code>com/example/cal/public/Calendar.css</code></td> - * <td>A stylesheet that styles the calendar app</td> - * </tr> - * <tr> - * <td><code>com/example/cal/public/images/logo.gif</code></td> - * <td>A logo</td> - * </tr> - * </table> - * - * @title Project Structure - * @synopsis GWT projects are built from a recommended package layout. - * @tip The easiest way to create a GWT project from scratch is to use the - * {...@link DeveloperGuide.Fundamentals.CommandLineTools.projectCreator projectCreator script}. - */ - public static class ProjectStructure { - } - - /** - * Individual units of GWT configuration are XML files called <i>modules</i>. - * A module bundles together all the configuration settings that your GWT - * project needs, namely - * - * <ul> - * <li>Inherited modules</li> - * <li>An entry point application class name; these are optional, although - * any module referred to in HTML must have at least one entry-point class - * specified</li> - * <li>Source path entries</li> - * <li>Public path entries</li> - * <li>Deferred binding rules, including property providers and class - * generators</li> - * </ul> - * - * Modules may appear in any package in your classpath, although it is - * strongly recommended that they appear in the root package of a - * {...@link DeveloperGuide.Fundamentals.ProjectStructure standard project layout}. - * - * <h2>Entry-Point Classes</h2> - * A module entry-point is any class that is assignable to - * {...@link com.google.gwt.core.client.EntryPoint} and that can be constructed - * without parameters. When a module is loaded, every entry point class is - * instantiated and its - * {...@link com.google.gwt.core.client.EntryPoint#onModuleLoad()} method gets - * called. - * - * <h2>Source Path</h2> - * Modules can specify which subpackages contain translatable <i>source</i>, - * causing the named package and its subpackages to be added to the - * <i>source path</i>. Only files found on the source path are candidates - * to be translated into JavaScript, making it possible to mix - * {...@link DeveloperGuide.Fundamentals.ClientSide client-side} and - * {...@link DeveloperGuide.Fundamentals.ServerSide server-side} code together - * in the same classpath without conflict. - * - * <p> - * When module inherit other modules, their source paths are combined so - * that each module will have access to the translatable source it requires. - * </p> - * - * <h2>Public Path</h2> - * Modules can specify which subpackages are <i>public</i>, causing the - * named package and its subpackages to be added to the <i>public path</i>. - * When you compile your application into JavaScript, all the files that can - * be found on your public path are copied to the module's output directory. - * The net effect is that user-visible URLs need not include a full package - * name. - * - * <p> - * When module inherit other modules, their public paths are combined so - * that each module will have access to the static resources it expects. - * </p> - * - * @title Modules - * @synopsis Modules are XML files that contain settings related to your - * application or library. - * @childIntro Specifics - */ - public static class Modules { - - /** - * Modules are defined in XML files whose file extension is - * <code>.gwt.xml</code>. Module XML files should reside in your - * project's root package. - * - * <p> - * If you are using the - * {...@link DeveloperGuide.Fundamentals.ProjectStructure standard project structure}, - * your module XML can be as simple as this: - * - * <pre class="code"> - * <module> - * <inherits name="com.google.gwt.user.User"/> - * <entry-point class="com.example.cal.client.CalendarApp"/> - * </module></pre> - * - * </p> - * - * <h2>Loading Modules</h2> - * Module XML files are found on the Java classpath, referenced by their - * logical module names from - * {...@link DeveloperGuide.Fundamentals.HostPage host pages} and by being - * inherited by other modules. - * - * <p> - * Modules are always referred to by their logical names. The logical name - * of a module is of the form <code>pkg1.pkg2.ModuleName</code> - * (although any number of packages may be present) and includes neither - * the actual file system path nor the file extension. For example, the - * logical name of a module XML file located at - * - * <pre>~/src/com/example/cal/Calendar.gwt.xml</pre> - * - * is - * - * <pre>com.example.cal.Calendar</pre> - * - * </p> - * - * <h2>Available Elements</h2> - * <dl class="fixed"> - * - * <dt><inherits name="<i>logical-module-name</i>"/></dt> - * <dd>Inherits all the settings from the specified module as if the - * contents of the inherited module's XML were copied verbatim. Any number - * of modules can be inherited in this manner.</dd> - * - * <dt><entry-point class="<i>classname</i>"/></dt> - * <dd>Specifies an - * {...@link com.google.gwt.core.client.EntryPoint entry point} class. Any - * number of entry-point classes can be added, including those from - * inherited modules.</dd> - * - * <dt><source path="<i>path</i>"/></dt> - * <dd>Adds packages to the - * {...@link DeveloperGuide.Fundamentals.Modules source path} by combining - * the package in which the module XML is found with the specified path to - * a subpackage. Any Java source file appearing in this subpackage or any - * of its subpackages is assumed to be translatable. - * <p> - * If no <code><source></code> element is defined in a module XML - * file, the <code>client</code> subpackage is implicitly added to the - * source path as if <code><source path="client"></code> had been - * found in the XML. This default helps keep module XML compact for - * standard project layouts. - * </p> - * </dd> - * - * <dt><public path="<i>path</i>"/></dt> - * <dd>Adds packages to the - * {...@link DeveloperGuide.Fundamentals.Modules public path} by combining - * the package in which the module XML is found with the specified path to - * identify the root of a public path entry. Any file appearing in this - * package or any of its subpackages will be treated as a - * publicly-accessible resource. The <code><public></code> element - * supports - * {...@link DeveloperGuide.Fundamentals.Modules.PublicPackageFiltering pattern-based filtering} - * to allow fine-grained control over which resources get copied into the - * output directory during a GWT compile. - * - * <p> - * If no <code><public></code> element is defined in a module XML - * file, the <code>public</code> subpackage is implicitly added to the - * public path as if <code><public path="public"></code> had been - * found in the XML. This default helps keep module XML compact for - * standard project layouts. - * </p> - * </dd> - * - * <dt><servlet path="<i>url-path</i>" class="<i>classname</i>"/></dt> - * <dd>For convenient RPC testing, this element loads a servlet class - * mounted at the specified URL path. The URL path should be absolute and - * have the form of a directory (for example, <code>/spellcheck</code>). - * Your client code then specifies this URL mapping in a call to - * {...@link ServiceDefTarget#setServiceEntryPoint(String)}. Any number of - * servlets may be loaded in this manner, including those from inherited - * modules.</dd> - * - * <dt><script src="<i>js-url</i>"/></dt> - * <dd>Automatically injects the external JavaScript file located at the - * location specified by <i>src</i>. See - * {...@link DeveloperGuide.Fundamentals.Modules.AutomaticResourceInjection automatic resource inclusion} - * for details.</dd> - * - * <dt><stylesheet src="<i>css-url</i>"/></dt> - * <dd>Automatically injects the external CSS file located at the - * location specified by <i>src</i>. See - * {...@link DeveloperGuide.Fundamentals.Modules.AutomaticResourceInjection automatic resource inclusion} - * for details.</dd> - * - * <dt><extend-property name="<i>client-property-name</i>" values="<i>comma-separated-values</i>"/></dt> - * <dd>Extends the set of values for an existing client property. Any - * number of values may be added in this manner, and client property - * values accumulate through inherited modules. You will likely only find - * this useful for - * {...@link com.google.gwt.doc.DeveloperGuide.Internationalization.SpecifyingLocale specifying locales in internationalization}.</dd> - * - * </dl> - * - * @title Module XML Format - * @synopsis Modules are defined in XML and placed into your - * {...@link DeveloperGuide.Fundamentals.ProjectStructure project's package hierarchy}. - */ - public static class ModuleXml { - } - - /** - * Modules can contain references to external JavaScript and CSS files, - * causing them to be automatically loaded when the module itself is - * loaded. - * - * <h2>Including External JavaScript</h2> - * Script inclusion is a convenient way to automatically associate - * external JavaScript files with your module. Use the following syntax to - * cause an external JavaScript file to be loaded into the - * {...@link HostPage host page} before your module entry point is called. - * - * <pre class="code"><script src="<i>js-url</i>"/></pre> - * - * The script is loaded into the namespace of the - * {...@link DeveloperGuide.Fundamentals.HostPage host page} as if you had - * included it explicitly using the HTML <code><script></code> - * element. The script will be loaded before your - * {...@link com.google.gwt.core.client.EntryPoint#onModuleLoad() onModuleLoad()} - * is called. - * - * <h2>Including External Stylesheets</h2> - * Stylesheet inclusion is a convenient way to automatically associate - * external CSS files with your module. Use the following syntax to cause - * a CSS file to be automatically attached to the - * {...@link HostPage host page}. - * - * <pre class="code"><stylesheet src="<i>css-url</i>"/></pre> - * - * You can add any number of stylesheets this way, and the order of - * inclusion into the page reflects the order in which the elements appear - * in your module XML. - * - * <h2>Inclusion and Module Inheritance</h2> - * Module inheritance makes resource inclusion particularly convenient. If - * you wish to create a reusable library that relies upon particular - * stylesheets or JavaScript files, you can be sure that clients of your - * library have everything they need automatically by inheriting from your - * module. - * - * @title Automatic Resource Inclusion - * @synopsis Modules can contain references to external JavaScript and CSS - * files, causing them to be automatically loaded when the - * module itself is loaded. - * @see DeveloperGuide.Fundamentals.Modules.ModuleXml - * @tip Versions of GWT prior to 1.4 required a script-ready function to - * determine when an included script was loaded. This is no longer - * required; all included scripts will be loaded when your - * application starts, in the order in which they are declared. - */ - public static class AutomaticResourceInjection { - } - - /** - * The <code><public></code> element supports certain attributes - * and nested elements to allow pattern-based inclusion and exclusion. It - * follows the same rules as <a href="http://ant.apache.org/">Ant</a>'s - * <code>FileSet</code> element. Please see the <a - * href="http://ant.apache.org/manual/CoreTypes/fileset.html">documentation</a> - * for <code>FileSet</code> for a general overview. - * - * <p> - * The <code><public></code> element does not support the full - * <code>FileSet</code> semantics. Only the following attributes and - * nested elements are currently supported: - * <ul> - * <li>The <code>includes</code> attribute</li> - * <li>The <code>excludes</code> attribute</li> - * <li>The <code>defaultexcludes</code> attribute</li> - * <li>The <code>casesensitive</code> attribute</li> - * <li>Nested <code>include</code> tags</li> - * <li>Nested <code>exclude</code> tags</li> - * </ul> - * Other attributes and nested elements are not supported. - * </p> - * - * <h3>Important</h3> - * The default value of <code>defaultexcludes</code> is - * <code>true</code>. By default, the patterns listed <a - * href="http://ant.apache.org/manual/dirtasks.html#defaultexcludes">here</a> - * are excluded. - * - * @title Filtering Public Packages - * @synopsis Filter files into and out of your public path to avoid - * publishing files unintentionally. - */ - public static class PublicPackageFiltering { - } - } - - /** - * GWT comes with a few handy command-line tools to get you up and running - * quickly. - * - * They are also useful for adding new things to existing projects. For - * example, <code>projectCreator</code> could be used to make an Eclipse - * project for one of the samples that comes with GWT. - * - * @title Command-line Tools - * @synopsis Useful command-line tools for getting started. - * @childIntro - */ - public static class CommandLineTools { - - /** - * Generates an <a href="http://ant.apache.org/">Ant</a> buildfile or <a - * href="http://www.eclipse.org">Eclipse</a> project. - * - * <p> - * <code>projectCreator [-ant projectName] [-eclipse projectName] [-out dir] [-overwrite] [-ignore]</code> - * </p> - * - * <table width="80%" align="center"> - * <tr> - * <td><code>-ant</code></td> - * <td>Generate an Ant buildfile to compile source (<code>.ant.xml</code> - * will be appended)</td> - * </tr> - * <tr> - * <td><code>-eclipse</code></td> - * <td>Generate an eclipse project</td> - * </tr> - * <tr> - * <td><code>-out</code></td> - * <td>The directory to write output files into (defaults to current)</td> - * </tr> - * <tr> - * <td><code>-overwrite</code></td> - * <td>Overwrite any existing files</td> - * </tr> - * <tr> - * <td><code>-ignore</code></td> - * <td>Ignore any existing files; do not overwrite</td> - * </tr> - * </table> - * - * <h2>Example</h2> - * - * <pre class="code"> - * ~/Foo> projectCreator -ant Foo -eclipse Foo - * Created directory src - * Created directory test - * Created file Foo.ant.xml - * Created file .project - * Created file .classpath</pre> - * - * <p> - * Running <code>ant -f Foo.ant.xml</code> will compile <code>src</code> - * into <code>bin</code>. The buildfile also contains a - * <code>package</code> target for bundling the project into a jar. - * </p> - * - * <p> - * <code>.project</code> can be imported into an Eclipse workspace. - * </p> - * - * @title projectCreator - * @synopsis Generates a basic project skeleton and an optional Ant - * buildfile and Eclipse project. - */ - public static class projectCreator { - } - - /** - * Generates a starter application and scripts for launching - * {...@link DeveloperGuide.Fundamentals.HostedMode hosted mode} and - * {...@link DeveloperGuide.Fundamentals.JavaToJavaScriptCompiler compiling to JavaScript}. - * - * <p> - * <code>applicationCreator [-eclipse projectName] [-out dir] [-overwrite] [-ignore] className</code> - * </p> - * - * <table width="80%" align="center"> - * <tr> - * <td><code>-eclipse</code></td> - * <td>Creates a debug launch configuration for the named eclipse project</td> - * </tr> - * <tr> - * <td><code>-out</code></td> - * <td>The directory to write output files into (defaults to current)</td> - * </tr> - * <tr> - * <td><code>-overwrite</code></td> - * <td>Overwrite any existing files</td> - * </tr> - * <tr> - * <td><code>-ignore</code></td> - * <td>Ignore any existing files; do not overwrite</td> - * </tr> - * <tr> - * <td><code>className</code></td> - * <td>The fully-qualified name of the application class to create</td> - * </tr> - * </table> - * - * <h2>Example</h2> - * - * <pre class="code"> - * ~/Foo> applicationCreator -eclipse Foo com.example.foo.client.Foo - * Created directory src/com/example/foo/client - * Created directory src/com/example/foo/public - * Created file src/com/example/foo/Foo.gwt.xml - * Created file src/com/example/foo/public/Foo.html - * Created file src/com/example/foo/client/Foo.java - * Created file Foo.launch - * Created file Foo-shell - * Created file Foo-compile</pre> - * - * Running <code>Foo-shell</code> brings up the new app in hosted mode. - * <code>Foo-compile</code> translates the Java app to JavaScript, - * creating a web folder under <code>www</code>. - * <code>Foo.launch</code> is a launch configuration for Eclipse. - * - * @title applicationCreator - * @synopsis Generate a starter application. - */ - public static class applicationCreator { - } - - /** - * Generates a {...@link DeveloperGuide.JUnitIntegration JUnit test} and - * scripts for testing in both - * {...@link DeveloperGuide.Fundamentals.HostedMode hosted mode} and - * {...@link DeveloperGuide.Fundamentals.WebMode web mode}. - * - * <p> - * <code>junitCreator -junit pathToJUnitJar [-eclipse projectName] [-out dir] [-overwrite] [-ignore] className</code> - * </p> - * - * <table width="80%" align="center"> - * <tr> - * <td><code>-junit</code></td> - * <td>Specify the path to your junit.jar (required)</td> - * </tr> - * <tr> - * <td><code>-module</code></td> - * <td>Specify name of the application module to use (required)</td> - * </tr> - * <tr> - * <td><code>-eclipse</code></td> - * <td>Creates a debug launch configuration for the named eclipse project</td> - * </tr> - * <tr> - * <td><code>-out</code></td> - * <td>The directory to write output files into (defaults to current)</td> - * </tr> - * <tr> - * <td><code>-overwrite</code></td> - * <td>Overwrite any existing files</td> - * </tr> - * <tr> - * <td><code>-ignore</code></td> - * <td>Ignore any existing files; do not overwrite</td> - * </tr> - * <tr> - * <td><code>className</code></td> - * <td>The fully-qualified name of the test class to create</td> - * </tr> - * </table> - * - * <h2>Example</h2> - * - * <pre class="code"> - * ~/Foo> junitCreator -junit /opt/eclipse/plugins/org.junit_3.8.1/junit.jar - * -module com.example.foo.Foo - * -eclipse Foo com.example.foo.client.FooTest - * Created directory test/com/example/foo/test - * Created file test/com/example/foo/client/FooTest.java - * Created file FooTest-hosted.launch - * Created file FooTest-web.launch - * Created file FooTest-hosted - * Created file FooTest-web</pre> - * - * Running <code>FooTest-hosted</code> tests as Java bytecode in a JVM. - * <code>FooTest-web</code> tests as compiled JavaScript. The launch - * configurations do the same thing in Eclipse. - * - * @title junitCreator - * @synopsis Generate a JUnit test. - */ - public static class junitCreator { - } - - /** - * Generates - * {...@link DeveloperGuide.Internationalization internationalization} - * scripts for - * {...@link DeveloperGuide.Internationalization.StaticStringInternationalization static - * internationalization}, along with sample - * {...@link DeveloperGuide.Internationalization.PropertiesFiles properties files}. - * - * <p> - * <code>i18nCreator [-eclipse projectName] [-out dir] [-overwrite] [-ignore] [-createMessages] interfaceName</code> - * </p> - * - * <table width="80%" align="center"> - * <tr> - * <td><code>-eclipse</code></td> - * <td>Creates a debug launch config for the named Eclipse project</td> - * </tr> - * <tr> - * <td><code>-out</code></td> - * <td>The directory to write output files into (defaults to current)</td> - * </tr> ***The diff for this file has been truncated for email.*** ======================================= --- /releases/2.0/branch-info.txt Mon Nov 23 13:19:22 2009 +++ /releases/2.0/branch-info.txt Mon Nov 23 13:20:43 2009 @@ -989,6 +989,10 @@ svn merge --ignore-ancestry -c7125 \ https://google-web-toolkit.googlecode.com/svn/trunk/ . +tr...@7121 was merged into this branch + Remove obsolete documentation. + svn merge --ignore-ancestry -c 7121 http://google-web-toolkit.googlecode.com/svn/trunk . + tr...@7122 was merged into this branch Replace JUnit's -web command-line flag with -prod (keeping -web as a deprecated synonym) svn merge --ignore-ancestry -c 7122 http://google-web-toolkit.googlecode.com/svn/trunk . -- http://groups.google.com/group/Google-Web-Toolkit-Contributors