Formato de módulo XML

Los módulos son definidos en ficheros XML cuya extención de archivo es .gwt.xml. Los archivos de módulos XML deben residir en el paquete raiz de tú proyecto.

Si tu estás usando una estructura estándar de proyecto, tu módulo XML puede ser tan simple como esto:

<module>
<inherits name="com.google.gwt.user.User"/>
<entry-point class="com.example.cal.client.CalendarApp"/>
</module>


Cargando módulos

Los archivos de módulos XML son encontrados en el classpath de Java, referenciados por su propio nombre de módulo desde las páginas alojadas en el proyecto, y por ser heredados por otros módulos.

Los módulos son siempre referenciados por sus nombres lógicos. El nombre lógico de un módulo es del tipo pkg1.pkg2.NombreModulo (aunque pueden haber cualquier número de paquetes) y excluyendo incluso la extensión del archivo. Por ejemplo, el nombre lógico de un archivo de módulo XML situado en

~/src/com/ejemplo/cal/Calendario.gwt.xml

es

com.ejemplo.cal.Calendario

Elementos disponibles
  • <inherits name="logical-module-name"/>
    Hereda todas las configuraciones desde el módulo especificado como si el contenido del módulo XML heredado fuera copiado literalmente. Cualquier número de módulos pueden ser heredados de ésta forma.
  • <entry-point class="classname"/>
    Especifica una clase entry point. Cualquier número de clases entry-point pueden ser añadidas, incluyendo los provenientes de módulos heredados.
  • <source path="path"/>
    Añade paquetes al source path para combinar los paquetes en que el módulo XML es encontrado con el path especificado al subpaquete. Cualquier archivo de Java que aparezca en este subpaquete o cualquiera de sus subpaquetes son traducidos.
    Si no se define ningún elemento <source> en un archivo de módulo XML, el subpaquete client es implicitamente añadido al source path como si <source path="client"> huviera sido encontrado en el XML.
  • <public path="path"/>
    Añade paquetes al public path para combinar el paquete en el que el módulo XML es encontrado con el path especificado para identificar la raiz del public path. Cualquier archivo que aparezca en este paquete o cualquiera de sus subpaquetes será tratado como un recurso de acceso público. El elemento <public> soporta filtrado pattern-based para permitir control de fine-grained sobre los recursos copiados al directorio de salida durante el proceso de compilación.
    Si no se define un elemento <public> en un archivo de módulo XML, el subpaquete public es añadido implicitamente al public path como si <public path="public"> hubiera sido encontrado en el XML.
  • <servlet path="url-path" class="classname"/>
    Para el uso conveniente de RPC, este elemento carga una clase servlet montada como el path URL especificado. El path URL debe ser absoluto y tener la forma de un directorio (por ejemplo, /spellchek). Tu código cliente entonces, especifica éste mapeo de URL en una llamada al método ServiceDefTarget.setServiceEntryPoint(String). Cualquier número de servlets puede ser cargado de ésta manera, incluyedo los que módulos heredados.
  • <script src="js-url"/>
    Injecta automaticamente archivos JavaScript externos localizados en la ruta src. Ver Inclusión automatica de recursos para más detalles.
  • <stylesheet src="css-url"/>
    Injecta automaticamente hojas de estilo en cascada situadas en archivos externos, localizados en la ruta src. Ver Inclusión automatica de recursos para más detalles.
  • <extend-property name="client-property-name" values="comma-separated-values"/>
    Extiende el conjunto de valores para una propiedad del cliente existente. Cualquier número de valores puede ser añadido de ésta manera, y los valores de la propiedad del cliente acmumulado desde módulos heredados. Tú querrás usar esto si vas a crear un proyecto con Internazionalización.