com.smartgwt.client.docs
Interface JavaModuleDependencies
public interface JavaModuleDependencies
Java Module Dependencies
Maven users should generally refer to the POMs bundled with the SDK, and installed for them by
the official Isomorphic plugin for
Maven. For others, the following is a description of what functionality is contained in
each Smart GWT JAR file, and which other Smart GWT JARs and third party libraries are required
to enable that functionality. Note that actual filenames in WEB-INF/lib will typically contain
the version number of the library, whereas the library names below simply list the base name.
All of the libraries that Smart GWT depends upon have either an Apache 1.0 or Apache 2.0
license, with the following exceptions:
1. Optional Hibernate support requires
LGPL-licensed .jars from Hibernate
2. Optional bean annotation support requires an
implementation of javax.persistence.jar. This is available from several providers - for
example, SpringSource, Hibernate or the Glassfish project. The licensing of this library
varies by provider.
3. Optional support for Java as a JSR223 server-side scripting language
is provided by software developed by Isomorphic, but based on the "java-engine" package,
originally developed by Sun. See SunNotice
.
If you are
using GWT, GWT itself also has an Apache 2.0 license, however tools and test environments that
you may use during development have different license (such as Eclipse - Eclipse Public
License). Also, specific GWT widgets, not required by Smart GWT, have licenses different from
core GWT (such as JFreeChart's LGPL license). See Google's
summary of terms for details.
- isomorphic_core_rpc: This is the core Smart
GWT module. It provides the RPC, DMI, and DataSource support.
Requires:
commons-cli
commons-lang
commons-collections
commons-pool
commons-codec
isc-jakarta-oro
log4j
commons-jxpath
commons-httpclient
commons-vfs
velocity
commons-fileupload
Optionally Requires:
isomorphic_js_parser - if you're using the built-in support for REST
via the RESTHandler servlet with JSON payloads
xercesImpl - if
you're using JDK < 1.5
xml-apis - if you're using JDK <
1.5
mail - if you plan to use the Mail messaging feature
activation - if you plan to use the Mail messaging feature and you are
using a JDK < 1.6
javax.persistence - if you plan to use the
metadata-from-annotations feature. Note that if you are using JPA, or a recent version of
Hibernate, then you are probably already using this library.
poi - if you plan to export datasets in Microsoft Excel 97 (xls) or
2007 (xlsx) formats. Additionally, if you plan to export data in Excel 2007 (xlsx) format,
you will need the following libraries:
poi-ooxml,
poi-ooxml-schemas, xbean, jsr173_1.0_api
PDF Export -
Additional .jars are required if PDF Export is to be used. These .jars are:
core-render, iText-2.0.8, jtidy-r938
Image Export, IE6-8 DrawPane PDF Export - These libraries are required
to use RPCManager.exportImage
or if
DrawPanes or FacetCharts are to be exported in IE6-8:
batik-anim, batik-awt-util, batik-bridge, batik-css,
batik-dom, batik-ext, batik-gvt, batik-parser, batik-script, batik-svg-dom, batik-util,
batik-xml, xml-apis-ext
NOTE: Between iText 2.0.x and
iText 2.1.x there is a binary (but not source) incompatibility that causes a server-side
NoSuchMethodError
when exporting, e.g., charts in Internet Explorer. This is a known issue with the Flying Saucer product that is fixed by using
core-renderer-R8-isomorphic.jar and iText-2.1.7.jar in the lib-iTextAlternate/ directory
instead of core-renderer.jar and iText-2.0.8.jar in the lib/ directory. To use iText 2.1.7 with
the Server Framework, exclude lib/core-renderer.jar and lib/iText-2.0.8.jar from the
application's classpath and instead add lib-iTextAlternate/core-renderer-R8-isomorphic.jar and
lib-iTextAlternate/iText-2.1.7.jar.
isomorphic_jpa and its
dependencies - if you plan to use BatchDS Generator even if you are not using JPA, although the
generated DataSources will not require JPA at runtime if you are not using JPA.
- isomorphic_contentexport.jar: Optional support for PDF Export requires Flying
Saucer, iText and jTidy, introducing:
- Flying Saucer: core-render.jar: LGPL
license
- iText: iText-2.0.8.jar: Mozilla Public License
Version 1.1
- jTidy: jtidy-r938.jar: MIT
license
Additionally, to be able to export images or DrawPanes and FacetCharts in
IE6-8, the following libraries are needed:
- Batik: batik-anim, batik-awt-util,
batik-bridge, batik-css, batik-dom, batik-ext, batik-gvt, batik-parser, batik-script,
batik-svg-dom, batik-util, batik-xml: Apache
License, Version 2.0
- xml-commons External Components: xml-apis-ext:
W3C Software Notice and License
- isomorphic_web_services: Web
services examples only. Contains code backing the Smart GWTOperations.wsdl example. Do not
deploy in production.
Requires:
isomorphic_core_rpc
axis
axis-schema
commons-discovery
commons-logging
jaxrpc
saaj
wsdl4j
- isomorphic_tools: Contains back-end logic for the "Admin Console" tool visible in
the Developer Console, and also standalone from the SDK home page. Also contains the the
various data importers and exporters, and the server-side components of the BatchUploader.
Requires:
isomorphic_core_rpc
isomorphic_sql
- isomorphic_embedded_tomcat: This
contains the bootstrap class for the Embedded Tomcat engine shipped with the Smart GWT SDK. It
is not intended to be used in any way other than via the start_embedded_tomcat.bat|sh|command
scripts in the webRoot of the SDK.
Requires:
isomorphic_core_rpc
All JARs under
WEB-INF/embeddedTomcat/lib
- isomorphic_spring: Required for
DMI
dispatches to Spring beans (via lookupStyle
: "spring").
Requires:
isomorphic_core_rpc
spring
commons-logging
- isomorphic_examples: Contains code for various Smart GWT examples shown in the SDK.
Do not deploy to production. The source code for the compiled classes in this module are
present in the SDK in various locations and typically linked to directly from the examples that
use them.
Requires:
isomorphic_core_rpc
isomorphic_sql
isomorphic_struts
isomorphic_spring
isomorphic_hibernate
commons-logging
jstl
jakarta-taglib-standard
- isomorphic_realtime_messaging: Server support required for the Smart GWT Realtime
Messaging Module. Install this if you're using this 'push' technology. For more information,
see
Messaging
:
Requires:
isomorphic_core_rpc
- isomorphic_hibernate: Contains
support for Hibernate DataSources as described here:
HibernateIntegration
.
Requires:
isomorphic_core_rpc
isomorphic_sql
hibernate3
commons-logging
dom4j
jdbc2_0-stdext
asm
asm-attrs
jta
cglib
antlr
Optionally Requires:
hsqldb - not required for linking, but needed for Hibernate to actually
connect to databases of this type, and hsqldb is what's used in the SDK examples. Note that for
production use you will need a JDBC driver for your database type.
- isomorphic_jpa: Contains support for JPA DataSources as described
here
.
Requires:
isomorphic_core_rpc
Hibernate and its
dependencies or any other JPA persistence provider
- isomorphic_sql: The
Smart GWT SQLDataSource.
Requires:
isomorphic_core_rpc
commons-dbcp
hsqldb
- isomorphic_autotest: Support for
automated testing and Continuous Integration
Requires:
isomorphic_core_rpc
selenium-server
The
selenium-server.jar
file provided with Smart GWT is a trimmed version that does
not include all of the libraries used by Selenium itself. Therefore the following libraries are
also needed:
backport-util-concurrent
commons-configuration
commons-exec
commons-io
guava
NOTE: servlet-api.jar
is also required if you intend to run
Selenium RC from a standalone process (ie, from a normal Java program, not a webapp).
However, it should not be deployed to a servlet container such as Tomcat or Jetty. The
best case is that the file will be unused and a source of confusion for anybody looking at the
webapp's library usage; the worst case is that it will conflict with the container's own
implementation of the Servlets API. - isomorphic_js_parser: A parser
capable of reading a JSON byte stream and creating an in-memory Java object structure to match.
Used by any mechanism that relies on JSON-style configuration. Examples include FileAssembly
definitions in JSON format, any use of the rulesFile with a URIRegexFilter (Java Servlet) or
subclass. Otherwise, generally not required except as documented in another module (e.g.,
isomorphic_core_rpc).
Requires:
isomorphic_core_rpc
- isomorphic_compression: This
is a part of the Network Performance Module. The isomorphic_compression module is required for
dynamic and static compression of various assets delivered to the browser. For more
information, see:
Compression
.
Requires:
isomorphic_core_rpc
- isomorphic_assembly: This is part of the Network Performance Module. The
isomorphic_assembly module is required for file assembly and stripping. For more information,
see:
FileAssembly
.
Requires:
isomorphic_core_rpc
Optionally Requires:
isomorphic_obfuscation - for code obfuscation
- isomorphic_obfuscation: This is part of the Network Performance Module. The
isomorphic_obfuscation module is required to enable obfuscation of code assembled by the File
Assembly system. For more information, see:
Compression
.
Requires:
isomorphic_core_rpc
- isomorphic_struts: Contains the ValidationAction and ValidationFailureAction classes
that implement RPC-based validation of DynamicForms using the Struts ValidatorPlugIn. If
you're not using Struts or if you don't need this particular feature of Smart GWT, you do not
need this module or its dependencies (also see the important note below). An example of this
style of validation is available here: /examples/struts/forms/welcome.do - read the info on this page, and follow the
"Dynamic Form (With RPC-based Validation)" Link for the actual example.
NOTE:
This support is for Struts 1.0 only, and is only intended to be used in certain edge cases of
incremental migration to Smart GWT. You should only use it if directed to do so by Isomorphic
Support.
Requires:
isomorphic_core_rpc
struts
commons-digester
commons-beanutils
commons-fileupload
commons-logging
commons-validator
jakarta-oro