fastnsilver / gwt-ui-experiments

A web application with intention of integrating and testing various GWT components and capabilities in addition to other third-party frameworks and components.
2 stars 1 forks source link

GWT UI EXPERIMENTS

A web application with intention of integrating and testing various GWT components and capabilities in addition to other third-party frameworks and components. The intent this app is to explore and demonstrate specific functional use cases, including but not restricted to: hyperlink-based navigation, client and server side validation, bookmark-ability (history supprt), GWT RPC and REST requests, securing (not displaying) UI controls based on user role(s), and CRUS database interaction(s) while embracing modern, well-known development patterns.

ABOUT THE APP

Sample market user interface. User interacts via tab and tree navigation to view/edit forms and grids of energy market related data. Note: This application is very much a work in-progress!

Be sure to consult the individual READMEs in name.cphillipson.experimental

.gwt
.gwt.client
.gwt.shared
.gwt.server

for further details.

DEMO

A demo instance is deployed on Google App Engine, here: http://gwt-ui-experiments.appspot.com

REQUIREMENTS

JDK 6 (1.6.0_27 or better) http://www.oracle.com/technetwork/java/javase/downloads/index.html

Maven (3.0.3 or better) http://maven.apache.org/

Google Web Toolkit (2.4) http://code.google.com/webtoolkit/download.html

Set JAVA_HOME, MAVEN_HOME and MAVEN_OPTS environment variables

RECOMMENDATIONS

If you're proficient with Eclipse, use the latest release of the SpringSource ToolSuite IDE (based on Eclipse). To download and install, go here: http://www.springsource.com/downloads/sts. Then configure "Extensions" to download and install the Google Web Toolkit plugin.

Make certain Maven reserves adequate RAM MAVEN_OPTS=-Xms256m -Xmx2048m -XX:MaxPermSize=256m

Add the following instruction within of your settings.xml

<pluginGroup>org.mortbay.jetty</pluginGroup>

TO BUILD

To compile, test (includes unit and integration tests), and install all projects into your local .m2 repo, use

mvn clean install

To compile and install without running tests, use

mvn clean install -DskipTests=true

TO GENERATE DOCUMENTATION

To stage for local viewing, use

mvn -P documentation site:site site:stage

View the /target/staging directory for output.

TO GENERATE DEPENDENCY GRAPH

mvn -P graph graph:reactor -Dhide-scope=test -Dhide-optional=true

The above command will generate an aggregate graph (in .png format) of all the dependencies. It generates a file named reactor-graph.png in the /target directory.

DEBUGGING AND/OR TROUBLESHOOTING

To debug this app in GWT development mode

mvn gwt:debug

For more detail on other gwt-maven-plugin options, run

mvn help:describe -DgroupId=org.codehaus.mojo -DartifactId=gwt-maven-plugin -Ddetails 

DEPLOYING/RUNNING


To run this webapp, on

JETTY 8  (LOCALHOST)

mvn jetty:run-war                    (to start the container)
press Ctrl+C                         (to stop the container)

visit http://localhost:8080

TOMCAT 6 (LOCALHOST)

mvn -P tomcat6x cargo:start          (to start the container)
press Ctrl+C                         (to stop the container)

visit http://localhost:8081
logs to be found in /target/tomcat6x directory

JBOSS 5.1.2 (LOCALHOST)

mvn -P jboss51x cargo:start -Djboss51x.home=/path/to/jboss       (to start the container)
press Ctrl+C                                                     (to stop the container)

/path/to/jboss is the directory where you've installed JBOSS 5.1 on your workstation/laptop

Note: installation will need some tweaking

    1. Remove all hibernate* jars from commom/lib directory

    2. Copy hibernate-core-3.6.10.Final.jar and hibernate-validator-4.2.0.Final.jar from the Maven repository 
       to common/lib folder, see
       http://forum.springsource.org/showthread.php?73879-Problem-with-Hibernate-Annotation-while-using-JBoss

    3. Add a system property 'env=xxx' to properties.services file within 
       <attribute name="Properties"></attribute>
       where xxx is the name of a .properties file, e.g., exp or int.remote

visit http://localhost:8081
logs to be found in /target/jboss51x directory

ROADMAP