Common Java Utilities with Support for GWT 2 and AppEngine
CedarCommon is a library of general Java utility code. Separate jars also include utilities developed for use with Google Web Toolkit (GWT) and Google AppEngine (GAE) using the Mvp4g model-view-presenter framework. CedarCommon was originally developed along with the Santa Exchange GWT demonstration project. The project was originally maintained at Google Code, but moved here to BitBucket when Google announced retirement of the Google Code service.
See the Table of Contents at the bottom of this page for a list of other wiki pages related to CedarCommon.
Which GWT Version?
The current version of CedarCommon is designed for use with GWT v2.7. If you need support for GWT v2.5 or v2.6, use CedarCommon v4.12.1. There is very little functional difference between CedarCommon v4.12.1 and early versions of v5.x, other than support for GWT v2.7.
Note: GWT 3 is substantially different from GWT 2, and the interface is not backwards compatible. At this time, there are no plans to officially support GWT 3 in CedarCommon.
There are six different packages:
||Code||Javadoc||Maven||General utility code|
||Code||Javadoc||Maven||Utility code for use with GWT 2 and Mvp4g|
||Code||Javadoc||Maven||Utility code for use with GWT 2 on Google AppEngine|
||Code||Javadoc||Maven||Utility code for use with junit, such as assertions and test setup|
||Code||Javadoc||Maven||Utility code for use in testing GWT 2, including a stubbed test runner|
||Code||Javadoc||Maven||Utility code for use in testing GWT 2 applications on AppEngine|
The packages are broken up so that it's possible to use the the general utilities without pulling along any GWT or AppEngine dependencies, and so it's possible to use the GWT functionality without pulling along any AppEngine dependencies. The AppEngine features are designed to be used with GWT and do not stand alone.
There are several different Mercurial repositories related to CedarCommon, each hosted on on BitBucket.
|CedarCommon||https://bitbucket.org/cedarsolutions/cedar-common||Java source code for all Maven components|
|CedarBuild||https://bitbucket.org/cedarsolutions/cedar-build||Gradle plugins used to standardize the build process|
Continuous integration via Jenkins is graciously hosted by CloudBees using their DEV@Cloud solution.
All CedarCommon code is designed to be used with Java 6 and sets a Java 6 source and target compatibility level. However, recent versions of the AppEngine runtime only work with Java 7. So, although you can use CedarCommon functionality with Java 6, you'll need a Java 7 JDK to build or test the code.
The GAE-related CedarCommon packages do include Maven dependencies on AppEngine jars. However, I recommend that you exclude these dependencies in your application and manage them independently. This way, you can use a newer version than CedarCommon. I typically don't release a new version of CedarCommon just to bump the GAE version. For an example of how to do this with Gradle, see the SantaExchange build.gradle file, in the
When I originally wrote SantaExchange, I checked dependency jars into revision control, because this is what the Google Plugin for Eclipse encourages you to do. This was less than ideal: the Mercurial repository eventually grew very large due to the frequent AppEngine upgrade cycle. Upgrades in general were painful, and I also had to manually track the source and version of each jar, etc. in my own documentation.
Using Gradle has simplified the whole process, even if it does add an extra setup step for anyone who wants to work with the code. There are notes in the wiki under DevelopmentEnvironment and SourceCode that will walk you through the process.
Table of Contents