|
You can download the latest version of the SDK here App Engine Java SDK - Release Notes Version 1.2.6 - October 13, 2009- Add support for handling incoming email
- New AllocateIDs method for pre-allocating IDs as part of a large batch write
- Default queue URL changed to match Python
- New Appcfg.sh actions: cron_info, update_queues
- Development Appserver Admin Console changes: Task Queue tweaks and new XMPP Admin page
- Class whitelisting support added to the development appserver which support should bring the local environment closer to hosted environment
- ssl-enabled set to true by default
- New Datastore stats api. Stats are also visible in the admin console.
Version 1.2.5 - September 3, 2009- Ability to send and receive instant messages via the XMPP protocol.
- API for the experimental Task Queue service, matching the existing API in Python.
- Support for new datastore types such as GeoPt, Link, and Email.
- Adds new datastore method AllocateIds() for allocating a block of numeric IDs to use for creating new entities
- Adds ability to start key names with a digit.
- Support for setting the Referrer header in URL Fetch requests.
- Support for extending the deadline on URL Fetch requests up to 10 seconds using the java.net.URLConnection interface.
- Support for adjusting the MIME types used with static files.
- Support for controlling the browser cache expiration duration of static files.
- XPath is now usable without requiring additional workarounds.
- Support for the Stax API, javax.xml.stream. You can now use both the JDK's Stax parser as well as third-party Stax libraries like Woodstox.
- Fixed issues with deserialization of certain classes often encountered while using HttpSessions
JDO/JPA Changes- Support delete by query (JPA)
- Support delete by query (JDO)
- pm.makePersistentAll() should use batch puts
- Query by key name when pk is encoded String or Key
- Exception: {Primary keys are immutable} thrown when cascadingly deleting of children with "gae.pk-name" field
- Make it clear that @Unique and @Uniques are not supported
- Warn when child fields marked for Eager/Lazy fetching
- Better error message for JPQL update statements
- Queries don't respect fetch groups
- Exception deleting object with gae.parent-pk field
- Allow embedded field restrictions in queries (JDO/JPA)
- Cannot modify two fields in the embedded class in one transaction
- Add operator LIKE support for JPA
- fail to serialize field that is PC -- message "Specified class class com.google.appengine.api.datastore.Blob is not persistable"
- Collection<Byte> anomaly
- Upgrade to DataNucleus 1.1.5
- More sensible error when ancestor query param is null.
- JPQL: MEMBER OF only supported when args are in the wrong order
- Make it clear that ManyToMany is not supported
- Issuing an ancestor query when a jdo/jpa txn has been started does not actually start a txn
- pm.deletePersistentAll() should use batch deletes
- Support sequences
- JPA support for JPQL functions CURRENT_TIMESTAMP, CURRENT_DATE
- Support 'is not null' in queries
Version 1.2.2 - July 13, 2009- Fix memcache stub to not allow decrementing below 0.
- Allow cron tasks to be sent to admin-only servlets.
- The images API no longer goes into an infinite loop parsing certain images.
- Replicate static file handling in the DevAppServer more correctly.
- Prefix all built-in servlets with _ah to ensure they don't interact with user-supplied servlets.
- Add OverQuotaException and RequestTooLargeException for API calls.
- Fix generation of indexes that query by the same property multiple times.
- Fix generation of indexes kind queries that sort in descending order.
- Provide a servlet for session cleanup.
- Try to prompt for a password using Swing in AppCfg if running Java 1.5.
- Better emulate datastore transaction support in the DevAppServer.
- New -p option to AppCfg for connecting to App Engine via a HTTP proxy.
- Increase file limit from 1000 files to 3000 files, and check the limit up-front.
- Allow ancestor queries to be made inside of transactions.
- AppCfg should re-prompt users for authentication after an unauthorized error.
- Allow Entity objects to be cloned and their properties reset.
- Implement a local data viewer for the DevAppServer.
- Slight performance enhancement to datastore queries.
- Improve performance of applications that do a large number of File stat operations.
- Added com.google.apphosting.api.ApiProxy.CapabilityDisabledException which developers can catch in the event of a datastore outage or when the datastore goes into read-only mode.
JDO/JPA Changes- Fetched objects with multi-value props incorrectly marked dirty
- UnsupportedOperationException when updating one-to-many
- StartsWith doesn't work
- Ancestor queries execute in txn if txn is available
- Added support for gae.exclude-query-from-txn query extension
- Work around DataNucleus bug preventing app from loading persistence.xml in a path containing spaces.
- Upgrade to DataNucleus 1.1.4
- Short entity name cannot be used in JPQL Query
- NullPointerException when adding setFirstResult or setMaxResults to query
- Adding a child to a unidirectional one-to-many when the parent is detached doesn't work
- Support long and int as substitute for child object when querying
- Support fields of type Collection
- JPQL queries with single character literals enclosed in single quotes not properly handled
- Embedded classes not working in JPA
- NPE when saving bidirectional child that hasn't been added to parent.
- ClassCastException when explicitly setting parent of child
- Support "MEMBER OF" in jpql
- Detached objects have SCO fields
- Cannot filter by parent if parent has a parent
- Race condition initializing datanucleus meta-data
- Take advantage of keys-only queries
- Support unindexed properties
- results.size() must be called before closing JPA Entity Manager to avoid 'NucleusUserException: Object Manager has been closed'
Version 1.2.1 - May 13, 2009- Added validation of appengine-web.xml, cron.xml, and datastore-indexes.xml.
- New <user-permissions> element added to appengine-web.xml to grant custom third-party permissions (e.g. OgnlInvokePermission).
- Support for unindexed datastore properties of arbitrary types.
- Added HTTP Proxy support to appcfg.sh.
- Response limit raised from 1MB to 10MB
- Some methods from Servlet 2.5 were missing
- Individual bytes read from ServletInputStream were incorrectly signed
- Expect header is now ignored, rather than causing 500 errors
- Bundled commons-logging-1.2.1.jar can conflict with user-provided jars
- Groovy permissions are granted in the local runtime:
- Reflection on some JRE classes did not work properly
- <url-pattern> elements are now allowed in <jsp-property-group>
- JSPs with embedded UTF-8 content are not compiled properly
- Static welcome files now take precedence over dynamic welcome files in SDK
- Thread.setContextClassLoader() is now supported
- Content-Type not set in local implementation of URLFetch API
- AppCfg request_logs command is limited to 100 lines
- Timestamp added to datastore indexes file uses current locale
JDO/JPA Changes- Fix handling of user-defined @Order
- Support field restrictions in queries
- Fix NPE when querying for null parent
- Support contains operator in JDOQL
- Support doubles as query literals
- Support BigDecimal fields
- Support persisting classes with superclasses
- Support Collection fields with serialized="true"
- Support @Lob JPA annotation
- Support @Serialized on byte member
- Bidirectional one-to-many when parent has long or unencoded String pk fails
- Cannot fetch many side of one-to-many when pk is Key, Long, or unencoded String
- JDOQL: Support implicit params
- Cannot add child to existing one-to-many if parent has Long or unencoded String pk
- Expose batch gets
- Can't reattach detached objects with Date props
- Fetching 1 to 1 needs to differentiate between direct and indirect children
- Support embedded classes with Key primary key
|