- GAE dev mode and deployment seems to work
- fixed memcache classloading issue
- removed sample app (but pasted the code into README.md)
- Basic support of Vaadin applications
- Added sample code used to load Vaadin code (to be removed when everything works and deploys to GAE correctly)
- Workaround to use (proxy) and (fn) results in Vaadin code - set compile-files to true and update classpath accordingly
- REPL support still available
- Basic support for App Engine SDK 1.5.1.
- Improved static file Content-Type handling in development mode (thanks to Brian Rowe and Tobias Raeder).
- Respect the
APPENGINE_HOME
environment variable ifproject.clj
omits:appengine-sdk
(thanks to Dave Lambert). - Added
appengine-magic.services.channel/parse-presence
to support presence notifications from the Channel service. - Concurrent requests are now enabled by default in all new projects.
- Basic support for App Engine SDK 1.4.3.
- Added
appengine-magic.services.datastore/key-id
,appengine-magic.services.datastore/key-name
, andappengine-magic.services.datastore/key-kind
. - Added
appengine-magic.core/appengine-app-id
andappengine-magic.core/appengine-app-version
helper functions. - Breaking change: moved the web application from
resources/
towar/
. To adapt your application to this layout, just rename your application'sresources/
directory towar/
. If you use classpath resources (with theappengine-magic.core/open-resource-stream
function), move them all back toresources/
. - Added
appengine-magic.services.datastore/key-str
, to get a better handle on entity records' IDs. - Breaking change: the result object returned by the
fetch
function of the URL Fetch service no longer converts header names to keywords. - Made it possible to store datastore entities in memcache during interactive REPL development.
- Added a hack to allow uploads to the Blobstore service from an application, without involving a web browser.
- Modified the Datastore service to optionally support storing values of arbitrary readbly-printable Clojure types.
- Added the Images service.
- Breaking change: removed
appengine-magic.services.url-fetch/fetch-async
function and replaced its functionality with a new:async?
keyword toappengine-magic.services.url-fetch/fetch
. - Added the Channel service.
- Made
swank.core/break
work inside Ring handlers (using middleware included from Ring). - Added the ability to directly execute App Engine API calls from the REPL.
- Enabled the use of the administrative console (
/_ah/admin
), including the datastore viewer, from the interactive REPL environment (thanks to Yuri Niyazov). - Added two new Leiningen tasks:
appengine-update
andappengine-dev-appserver
. They allow maintaining multiple App Engine production environments with different versions (e.g., production and staging). - Added support for new versions of the Google App Engine SDK.
- Fixed a bug in use of :prefetch-size and :chunk-size parameters to ds/query.
- Improved user service testing support (thanks to Masashi Iizuka).
- Added support for VimClojure (thanks to Alex Bolodurin).
- Added
as-*
type conversion functions to the Datastore service. - Breaking change:
appengine-magic.services.blobstore/uploaded-blobs
now takes a Ring request map parameter (instead of anHttpServletRequest
). This is for consistency with the rest of the services API. - Added a version of multipart-params middleware which works in App Engine (thanks to Conrad Barski).
- Added
appengine-magic.core/appengine-environment-type
. - Deprecated including the
:aot
directive inproject.clj
files. - Added
exists?
function to the Datastore service. - Added the Task Queues service.
- Added the Mail service.
- Added the Blobstore service.
- Speeded up production deployment by packaging compiled application .class files into a .jar. Eliminated the WEB-INF/classes/ directory.
- Added support for general classpath resources with the
appengine-magic.core/open-resource-stream
function. - Breaking change: moved the web application from
resources/war/
toresources/
. This provides better support for using general classpath resources. - Breaking change: renamed all destructive Memcache service operations to have a
trailing ! character; e.g.,
appengine-magic.services/put
becameappengine-magic.services/put!
.
- Improved the User service.
- Fixed a bug with project paths containing spaces.
- Added the URL Fetch service (thanks to Brian Gruber).
- Added testing infrastructure.