Re: [appengine-java] App Engine SDK 1.3.1 is out!

2010-02-10 Thread yjun hu
i got a problem when i use sdk1.3.1 with compass2.3.0:
Nested in org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'compass' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested
exception is java.lang.IllegalArgumentException:
java.lang.IllegalArgumentException
at
com.google.appengine.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:74)
at
com.google.appengine.api.datastore.dev.LocalDatastoreService.getOrCreateProfile(LocalDatastoreService.java:1088)
at
com.google.appengine.api.datastore.dev.LocalDatastoreService.beginTransaction(LocalDatastoreService.java:883)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
com.google.appengine.tools.development.ApiProxyLocalImpl.makeSyncCall(ApiProxyLocalImpl.java:124)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:98)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:48)
at
com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:52)
at
com.google.appengine.api.datastore.DatastoreServiceImpl.beginTransaction(DatastoreServiceImpl.java:516)
at
org.compass.needle.gae.GoogleAppEngineDirectory.doInTransaction(GoogleAppEngineDirectory.java:434)
at
org.compass.needle.gae.GoogleAppEngineLockFactory$GoogleAppEngineLock.doRelease(GoogleAppEngineLockFactory.java:132)
at
org.compass.needle.gae.GoogleAppEngineLockFactory$GoogleAppEngineLock.access$000(GoogleAppEngineLockFactory.java:53)
at
org.compass.needle.gae.GoogleAppEngineLockFactory.clearLock(GoogleAppEngineLockFactory.java:50)
at org.apache.lucene.store.Directory.clearLock(Directory.java:122)
at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1066)
at org.apache.lucene.index.IndexWriter.(IndexWriter.java:686)
at
org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.createIndex(DefaultLuceneSearchEngineStore.java:507)
at
org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.verifyIndex(DefaultLuceneSearchEngineStore.java:546)
at
org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.verifyIndex(DefaultLuceneSearchEngineStore.java:541)
at
org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.verifyIndex(DefaultLuceneSearchEngineStore.java:533)
at
org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$4.doInTransaction(DefaultLuceneSearchEngineIndexManager.java:169)
at
org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$4.doInTransaction(DefaultLuceneSearchEngineIndexManager.java:167)
at
org.compass.core.impl.DefaultCompass$CompassTransactionContext.execute(DefaultCompass.java:428)
at
org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.verifyIndex(DefaultLuceneSearchEngineIndexManager.java:166)
at org.compass.core.impl.DefaultCompass.(DefaultCompass.java:164)
at org.compass.core.impl.DefaultCompass.(DefaultCompass.java:123)
at org.compass.core.impl.DefaultCompass.(DefaultCompass.java:116)
at
org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:288)
at org.compass.spring.LocalCompassBean.newCompass(LocalCompassBean.java:414)
at
org.compass.spring.LocalCompassBean.afterPropertiesSet(LocalCompassBean.java:404)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1288)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1257)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:394)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
at
org.springframework.context.support.A

Re: [appengine-java] App Engine SDK 1.3.1 is out!

2010-02-10 Thread John Patterson

Very cool!  Can't wait to replace my paging code with Cursors

Was Async Url Fetch for Java included in this release?

On 11 Feb 2010, at 06:15, Ikai L (Google) wrote:


Check it out!

http://googleappengine.blogspot.com/2010/02/app-engine-sdk-131-including-major.html

Here's the post:

App Engine SDK 1.3.1, Including Major Improvements to Datastore!
We are excited to announce the release of version 1.3.1 of the App  
Engine SDK for both Python and Java. While this release contains  
plenty of new features and fixes, we've concentrated on using our  
very first SDK release of 2010 to improve the heart of many App  
Engine applications: the Datastore.


Here are the three major improvements that 1.3.1 has in store for  
datastore users:
Datastore Query Cursors - Cursors allow applications to save and  
'bookmark' their progress through a query, so that it can be resumed  
later. This works great in combination with paging URLs, as well as  
processing in the Task Queue API, but there are many other uses.  
Watch for an upcoming blog post that explores Cursors in the near  
future. They're also really handy in the context of the next change...
No more 1000 result limit - That's right: with addition of Cursors  
and the culmination of many smaller Datastore stability and  
performance improvements over the last few months, we're now  
confident enough to remove the maximum result limit altogether.  
Whether you're doing a fetch, iterating, or using a Cursor, there's  
no limits on the number of results.
Reduced error rate with Automatic Datastore Retries - We've heard a  
lot of feedback that you don't want to deal with the Datastore's  
sporadic errors. In response, App Engine now automatically retries  
all datastore calls (with the exception of transaction commits) when  
your applications encounters a datastore error caused by being  
unable to reach Bigtable. Datastore retries automatically builds in  
what many of you have been doing in your code already, and our tests  
have shown it drastically reduces the number of errors your  
application experiences (by up to 3-4x error reduction for puts,  
10-30x for gets).
But even with our focus on the Datastore, we were able to sneak in a  
quite a number of other new goodies into 1.3.1 as well:


For Python, we've included the AppStats RPC instrumentation library.  
AppStats lets users easily profile the performance of calls from  
their app to the App Engine backend services to identify and isolate  
issues such as ineffective caching, bottlenecks, and redundant RPC  
calls in their app. (A Java version is in beta testing now.)


And for Java, we've included a comprehensive new unit-testing  
framework for your App Engine apps. The unit-testing framework  
enables you to test your application code in a natural, fully  
supported manner, and also allows you to integrate your App Engine  
apps into other existing testing and automation frameworks.


The list of changes in 1.3.1 goes on and on (Custom Admin Console  
pages! Support for wildcard domain mappings! Java precompilation on  
by default for all applications!), so make sure to download the new  
version and read our release notes for the complete list (Python,  
Java).


Posted by the App Engine Team


--
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

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


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



[appengine-java] App Engine SDK 1.3.1 is out!

2010-02-10 Thread Ikai L (Google)
Check it out!

http://googleappengine.blogspot.com/2010/02/app-engine-sdk-131-including-major.html

Here's
the post:

App Engine SDK 1.3.1, Including Major Improvements to
Datastore!
We are excited to announce the release of version 1.3.1 of the App Engine
SDK for both Python and Java. While this release contains plenty of new
features and fixes, we've concentrated on using our very first SDK release
of 2010 to improve the heart of many App Engine applications: the Datastore.

Here are the three major improvements that 1.3.1 has in store for datastore
users:

   - *Datastore Query Cursors* - Cursors allow applications to save and
   'bookmark' their progress through a query, so that it can be resumed later.
   This works great in combination with paging URLs, as well as processing in
   the Task Queue API, but there are many other uses. Watch for an upcoming
   blog post that explores Cursors in the near future. They're also really
   handy in the context of the next change...
   - *No more 1000 result limit* - That's right: with addition of Cursors
   and the culmination of many smaller Datastore stability and performance
   improvements over the last few months, we're now confident enough to remove
   the maximum result limit altogether. Whether you're doing a fetch,
   iterating, or using a Cursor, there's no limits on the number of results.
   - *Reduced error rate with Automatic Datastore Retries* - We've heard a
   lot of feedback that you don't want to deal with the Datastore's sporadic
   errors. In response, App Engine now automatically retries all datastore
   calls (with the exception of transaction commits) when your applications
   encounters a datastore error caused by being unable to reach Bigtable.
   Datastore retries automatically builds in what many of you have been doing
   in your code already, and our tests have shown it drastically reduces the
   number of errors your application experiences (by up to *3-4x error
   reduction for puts, 10-30x for gets*).

But even with our focus on the Datastore, we were able to sneak in a quite a
number of other new goodies into 1.3.1 as well:

For Python, we've included the *AppStats* RPC instrumentation library.
AppStats lets users easily profile the performance of calls from their app
to the App Engine backend services to identify and isolate issues such as
ineffective caching, bottlenecks, and redundant RPC calls in their app. (A
Java version is in beta testing now.)

And for Java, we've included a comprehensive new *unit-testing framework* for
your App Engine apps. The unit-testing framework enables you to test your
application code in a natural, fully supported manner, and also allows you
to integrate your App Engine apps into other existing testing and automation
frameworks.

The list of changes in 1.3.1 goes on and on (Custom Admin Console pages!
Support for wildcard domain mappings! Java precompilation on by default for
all applications!), so make sure to
download the
new version and read our release notes for the complete list
(Python
, Java
).

Posted by the App Engine Team


-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine

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