Prerelease SDK 1.4.3 now available for download

423 views
Skip to first unread message

Ikai Lan (Google)

unread,
Mar 21, 2011, 2:27:27 PM3/21/11
to Google App Engine
Hey guys,

We're pretty close to releasing SDK 1.4.3. You can download the prerelease SDKs for local verification at:


As usual, these are local SDK only and shouldn't work when deployed, though some features may partially work due to the fact that the backends may have partially been pushed (protip: don't do it). 

Release notes are below. Lots of cool stuff in this release! Big ones? Files API for programmatic blobstore writes, Prospective Search API, concurrent requests for Java (this is huge), deferred and Remote API libraries for Java + lots of bug fixes.

Python 1.4.3
=================================
- Added Files API that allows writing to and reading from files in blobstore.
- You can now specify cron execution for a time interval between a start and end
  time.
- You can now configure the specific application version to which a task queue
  or cron job will send requests.
- The Admin Console Task Queues page now displays a more accurate estimate of
  queue size for queues containing more than 2000 tasks.
- The Prospective Search API (formerly named the Matcher API) is available for
  use by all applications. This API is still experimental, so applications will
  be limited to a maximum of 1000 subscriptions.
- The Testbed API provides easy configuration of stub libraries for local
  integration tests.
- In the Images API, the quality parameter was added to the resize, rotate,
  horizontal_flip, vertical_flip, crop and im_feeling_lucky methods.
- Fixed an issue where static file serving in the dev_appserver didn't support
  etags.
- An error is now raised when the script mapping in the app.yaml file is missing
  the .py file extension.
- Fixed an issue where no link was displayed in the Admin Console blobstore
  viewer for an unnamed blob.
- Fixed an issue where the Admin Console data viewer couldn't edit entities
  with ByteString properties.
- Fixed an issue where the Admin Console crashed when using a non-ascii
  key_name.
- Fixed an issue filtering on __key__ while using the --use_sqlite option with
  the dev_appserver.
- The Disable Application admin function has been button-ized.
- Fixed an SDK issue where debugging logging wouldn't correctly print URLFetch
  payloads.
- Fixed an SDK issue where an incompatible line ending was used on blob upload.
- Added more graceful handling of the missing mapreduce.yaml file when the user
  has enabled the Datastore Admin but is not otherwise using the MapReduce
  framework.
- Fixed an issue where the method webapp_add_wsgi_middleware was no longer
  recognized.

Java 1.4.3
=============
- Added FileService API that allows writing to and reading from files in
  blobstore.
- You can now specify cron execution for a time interval between a start and end
  time.
- Java applications can enable concurrent request support by setting
  <threadsafe> to True in their appengine-web.xml. This flag indicates that
  request handlers for your app are thread safe and multiple request handlers
  may safely run at the same time in the same memory space for your application.
- Deferred library support now available in Java.
- Remote API library now available in Java. This can be used in conjunction with
  apps using either the Java or the Python runtime.
- The Java SDK now supports kindless and ancestor only queries.
- Fixed an issue where JAX-WS clients in the SDK could not handle receiving a
  SOAP fault.
- Fixed an issue where the SDK did not support fetching HTTPS URLs.
- Fixed an issue where no link was displayed in the Admin Console blobstore
  viewer for an unnamed blob.
- Fixed an issue where the Admin Console data viewer couldn't edit entities
  with ByteString properties.
- Fixed an issue where the Admin Console crashed when using a non-ascii
  key_name.
- The Disable Application admin function has been button-ized.
- Fixed a regex validation issue in the queue.xml file that caused some uploads
  to break.
- Fixed an issue where the Java SDK Task Queue did not support 10 minute
  timeouts.
- Fixed an issue where the Channel API in the SDK didn't properly send messages
  with unicode characters.




--
Ikai Lan 
Developer Programs Engineer, Google App Engine

Simon Knott

unread,
Mar 21, 2011, 4:48:51 PM3/21/11
to google-a...@googlegroups.com, Ikai Lan (Google)
Nice release!

Matija

unread,
Mar 21, 2011, 4:56:16 PM3/21/11
to google-a...@googlegroups.com, Ikai Lan (Google)
Can you explain 'concurrent requests for Java' ? 

Alexander Maslov

unread,
Mar 21, 2011, 4:57:07 PM3/21/11
to google-a...@googlegroups.com, Ikai Lan (Google)
Thanks for this update. FileService API is really great addition.

Robert Kluin

unread,
Mar 21, 2011, 9:47:13 PM3/21/11
to google-a...@googlegroups.com
Nice. Looking forward to the release.

On Mon, Mar 21, 2011 at 16:57, Alexander Maslov <alexm...@gmail.com> wrote:
> Thanks for this update. FileService API is really great addition.
>

> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-a...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengi...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

PK

unread,
Mar 22, 2011, 2:13:57 AM3/22/11
to Google App Engine
I run the prerelease through the test suite of my python app and
passed. Thanks for the new features and for not introducing any
regressions.

I am glad to see fixes/new feature with sqlite and blobstore. In my
case more fixes are needed before I am able to attempt the switch
(3085 & 3835 for blobs/3265,3124,3689 for sqlite). I look forward to
seeing these fixes in the near future along with the "Next Gen"
queries...

PK
http://www.gae123.com

On Mar 21, 11:27 am, "Ikai Lan (Google)" <ikai.l+gro...@google.com>
wrote:

Jeff Schnitzer

unread,
Mar 22, 2011, 3:08:44 AM3/22/11
to google-a...@googlegroups.com
On Mon, Mar 21, 2011 at 1:56 PM, Matija <matija....@gmail.com> wrote:
> Can you explain 'concurrent requests for Java' ?

(warning: I don't work for the big G)

Believe it or not, all GAE/Java requests are all single-threaded right
now... similar to the GAE/Python architecture. It doesn't matter much
for your app since GAE spins up as many instances as necessary to
handle load, but it's inefficient - especially considering the ~75MB
memory footprint of each JVM compares unfavorably to ~13 for a Python
VM. Looks like that restriction is about to be removed.

Google: Why not just make this the default? Or at least announce
that it will become the future default, so people don't start counting
on single-threaded behavior. Presumably we've all been coding to the
servlet API, which is very specific about thread behavior. I don't
think anyone realized that requests were single-threaded, and if they
coded with this (undocumented and spec-violating) assumption, they
deserve to have their apps break.

I imagine that you could cut down the total # of instances running in
the cluster by a significant factor (2x, 3x, more?) this way. My hope
is that this efficiency will ultimately lead to a cheaper and faster
appengine... but people need some incentive not to use "single thread
mode".

Jeff

Simon Knott

unread,
Mar 22, 2011, 5:44:35 AM3/22/11
to google-a...@googlegroups.com, Jeff Schnitzer
I agree with Jeff - anyone who is used to developing with a servlet container realises that they are dealing with a multi-threaded environment and should already be coding with this in mind.

I'm honestly really surprised that this support isn't there already - thankfully it's performed well enough that it hasn't been noticable!

A quick question for the Google team - will the multi-request handler behaviour be rolled out into the local development server as well, or is this only being enabled for the production environment?

Adam

unread,
Mar 21, 2011, 5:19:25 PM3/21/11
to Google App Engine
Thanks for the fantastic news Ikai. Can't wait to play with the pre-
release when I finish work today :)

Keep up the great work!

Ross M Karchner

unread,
Mar 22, 2011, 12:37:16 PM3/22/11
to google-a...@googlegroups.com
Is there some sample code for the matcher API, out in the wild?

> --
> You received this message because you are subscribed to the Google Groups "Google App Engine" group.
> To post to this group, send email to google-a...@googlegroups.com.
> To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
>
>

--
Ross M Karchner

Jeff Schnitzer

unread,
Mar 22, 2011, 5:36:43 PM3/22/11
to google-a...@googlegroups.com
On Mon, Mar 21, 2011 at 11:27 AM, Ikai Lan (Google)
<ikai.l...@google.com> wrote:
> Java 1.4.3
> =============

> - Deferred library support now available in Java.
>     http://code.google.com/p/googleappengine/issues/detail?id=2381

This looks really great. You guys did a good job with the API.

Jeff

Ugorji Nwoke

unread,
Mar 24, 2011, 7:49:30 PM3/24/11
to google-a...@googlegroups.com, Ikai Lan (Google)
I downloaded the pre-release but couldn't find any reference to the FileService API in the javadocs. Any help will be appreciated.

Ian Gillett

unread,
Mar 25, 2011, 10:03:00 AM3/25/11
to Google App Engine
Hi - did you find any info about Fileservice ? - I am also very keen
to take a look at this but can't find any info on how to use it?
Cheers,
Ian.

Tobias

unread,
Mar 25, 2011, 11:46:37 AM3/25/11
to google-a...@googlegroups.com, Ian Gillett
Hi,

In order to port the Files API to TyphoonAE, I've put together a simple demo handler which uses the new Files API. For now, the handler uses just a subset of the API.


Regards,
Tobias

Tobias

unread,
Mar 25, 2011, 6:25:58 PM3/25/11
to google-a...@googlegroups.com, Ikai Lan (Google)
Hi Ikai,

After digging through the prerelease (Python), I've discovered a couple of very promising new modules regarding rdbms support:

google_appengine/google/appengine/api/rdbms.py
google_appengine/google/appengine/api/rdbms_mysqldb.py
google_appengine/google/appengine/api/rdbms_sqlite.py
google_appengine/google/storage/speckle/python/api/rdbms.py

So, I've made a tiny demo app to try it out.

http://github.com/rodaebel/simplenotes - Works like a charm with SQLite :)

Since the prerelease notes don't mention this stuff, I guess it's experimental and we're likely not going to see rdbms support in the upcoming 1.4.3 release. Anyway, congratulations for this awesome prerelease. I'm eager for the next updates!

- Tobias

Bart Thate

unread,
Mar 25, 2011, 7:12:57 PM3/25/11
to google-a...@googlegroups.com
great scoop ! ;]

looking forward to use sqlite as well as i can port between shell and gae better.

Bart 

@jsonbot Heerhugowaard, Netherlands
programming schizofrenic - http://jsonbot.appspot.com



--

Ian Gillett

unread,
Mar 26, 2011, 4:52:44 AM3/26/11
to google-a...@googlegroups.com, Tobias
Thanks Tobias - that's very useful, however does anyone have any information regarding using Files API in Java. 

Specifically I am hoping I can use it with newEntry.setFile(filefromFilesApi); from the Documents List API as there is no way currently to use Appengine to upload files to Google Docs.

Many thanks,
Ian.

Ugorji Nwoke

unread,
Mar 26, 2011, 1:27:03 PM3/26/11
to google-a...@googlegroups.com, Tobias, Ian Gillett
Can someone from Google please respond about the FileService API and its availability in the 1.4.3 java sdk? It's advertised in the initial post from Ikai, but I couldn't find any information on it in the included javadocs of the 1.4.3 pre-release. Somehow, this question keeps getting skipped while other questions on this list are answered.

Thank you.

JH

unread,
Mar 26, 2011, 2:47:13 PM3/26/11
to Google App Engine
I don't think they generally put out any docs until the feature is
officially released. In the past I have noticed some features in a
pre release are not actually rolled out when the release goes into
production....

Sahid Orentino Ferdjaoui

unread,
Mar 29, 2011, 4:40:14 AM3/29/11
to google-a...@googlegroups.com, Ikai Lan (Google)
Hello, 

- You can now configure the specific application version to which a task queue
  or cron job will send requests.

Yes, good news! With App Engine Servers, now we can enable a great taskrunner server!

Prashant Gupta

unread,
Mar 29, 2011, 9:47:33 AM3/29/11
to google-a...@googlegroups.com
is this feature available only for python runtime ???

--

Ikai Lan (Google)

unread,
Mar 29, 2011, 12:59:11 PM3/29/11
to Google App Engine
No, servers should be available for both Python and Java.

Ikai Lan 
Developer Programs Engineer, Google App Engine

nickmilon

unread,
Mar 29, 2011, 4:43:52 PM3/29/11
to Google App Engine
Ikai,
By the way did you sent the invitations for server feature ?.
I have sign the NDA sent to me by Google Ireland some weeks ago and
heard nothing since then.

Nick.


On Mar 29, 7:59 pm, "Ikai Lan (Google)" <ika...@google.com> wrote:
> No, servers should be available for both Python and Java.
>
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blog:http://googleappengine.blogspot.com
> Twitter:http://twitter.com/app_engine
> Reddit:http://www.reddit.com/r/appengine
>
>
>
>
>
>
>
> On Tue, Mar 29, 2011 at 6:47 AM, Prashant <antsh...@gmail.com> wrote:
> > is this feature available only for python runtime ???
>
> > On 29 March 2011 14:10, Sahid Orentino Ferdjaoui <

Ikai Lan (Google)

unread,
Mar 29, 2011, 5:09:46 PM3/29/11
to Google App Engine, nickmilon
The app IDs should be enabled. Are they not? Did you get an invite for the google group?

Ikai Lan 
Developer Programs Engineer, Google App Engine


nickmilon

unread,
Mar 30, 2011, 6:33:59 PM3/30/11
to Google App Engine

No I did not receive an invitation or anything for the group ;-(

Refael Ackermann

unread,
Jun 28, 2011, 9:30:33 AM6/28/11
to google-a...@googlegroups.com, Ikai Lan (Google)
I can't get it to run on production.
I get EncodeError: Message is missing required fields: instance
Apparently they have a notion of 'instance' and I can't figure it out.
Anyone got a clue?

JH

unread,
Jun 28, 2011, 9:37:42 AM6/28/11
to Google App Engine
I don't know but if you are using 1.4.3 you probably want to start by
using the latest sdk, 1.5.1:

http://code.google.com/appengine/downloads.html
Reply all
Reply to author
Forward
0 new messages