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
     slf4j-api
     commons-jxpath
     httpcore
     httpclient
     velocity
     commons-fileupload
     joda-time
     commons-io
   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, dom4j, xbean
     PDF Export - Additional .jars
 are required if PDF Export is to be used. These .jars are:
        core-renderer, iText-2.0.8, jtidy-r938
     Image Export and IE6-8 DrawPane PDF Export - These libraries are
 required to use RPCManager.exportImage(), or when using RPCManager.exportContent() to export a
 DrawPane or FacetChart  only in IE8 or earlier:
        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
     The above libraries are also required if a
 DrawPane has a DrawImage which loads a cross-domain image.
     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.
 
     log4j - if you plan to use log4j logging (used by default).
 
     slf4j-log4j12 - if you plan to use slf4j with log4j (for example), or
 any other slf4j bridge library depending on which logging framework will be used, see ServerLogging for information on server-side  logging and how to
 configure it.
     groovy - if you plan to use Groovy with the
 ServerScript feature.
     commons-digester and commons-beanutils - if you plan to use Velocity
 Tools.    
- isomorphic_contentexport.jar: Optional support for PDF Export
 requires Flying Saucer, iText and jTidy, introducing:
   - Flying Saucer:
 core-renderer.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 DrawPanes and FacetCharts in IE6-8, or to export FacetChart
 zoom charts (see FacetChart.printZoomChart), 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 SmartClientOperations.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_hibernate
   - 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 ServerObject.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
 
     hibernate and its dependencies
   Optionally
 Requires:
     hsqldb - not required for linking, but needed for
 actually connecting 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 - not required for linking, but needed for actually connecting
 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_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
 
     htmlunit
      htmlunit-core
 
     operadriver
     phantomjsdriver
     jna (if testing with IE on Windows environments)
 
     jna-platform (if testing with IE on Windows environments)
 
   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
    - 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-logging
     commons-validator