[appengine-java] Eclipse/Ant/SDK best practice

2010-07-03 Thread Roy
I do all my development in Eclipse, and then use ant for automated
test and building my distros.

Whenever there is a new G plugin for eclipes, I tend to have to
download the SDKs twice; Once as part of the eclipse plugin and then a
second time so I can include them in the classpaths in my ant scripts.

Is this normal? or is there a better way to share SDKs between Eclipse
and Ant


also ...

what are people's experiences with Helios and Google so far? I'm keen
to upgrade from Galileo but don't have much slack time in the event of
stuff not working

-- 
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] Re: gae log console

2009-12-11 Thread Roy
I log to xmpp and it works really well. I find the standard log viewer
with its foreign timestamps almost unusable for debugging.

On Dec 11, 6:07 pm, Ikai L (Google) ika...@google.com wrote:
 I was just thinking about this. You might be able to do something by
 creating your own wrapped logger and integrating it with the XMPP service,
 though I am pretty sure this will send you over quota pretty quickly.

 On Fri, Dec 11, 2009 at 10:06 AM, Ikai L (Google) ika...@google.com wrote:





  Ah, tailing in real time (or semi real time). This isn't currently
  possible. You might want to write something up and create a feature request
  for it:http://code.google.com/p/googleappengine/issues/list

  On Thu, Dec 10, 2009 at 7:18 PM, asianCoolz second.co...@gmail.comwrote:

  its only copy the log to local pc. can it append so that i look like i
  use tail -f each time got new records in the log?

  --

  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.comgoogle-appengine-java%2B
   unsubscr...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.

  --
  Ikai Lan
  Developer Programs Engineer, Google App Engine

 --
 Ikai Lan
 Developer Programs Engineer, Google 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.




[appengine-java] Preventing GWT compile during deployment

2009-11-12 Thread Roy
How do I stop the GAE Deploy process from doing a GWT compile?

--

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=.




[appengine-java] Re: Problem with gdata services

2009-11-11 Thread Roy

Check out

http://code.google.com/intl/zh-HK/appengine/kb/java.html#googledata

and

http://code.google.com/p/gdata-java-client/issues/detail?id=122


On Nov 11, 2:39 pm, Josh joshua.t.gr...@gmail.com wrote:
 The JAR files are being included in my build.  The first time I run
 the app, I get this error:

 HTTP ERROR: 500

 INTERNAL_SERVER_ERROR

 RequestURI=/view
 Caused by:

 java.lang.ExceptionInInitializerError
         at com.google.gdata.client.http.GoogleGDataRequest
 $Factory.createRequest(GoogleGDataRequest.java:73)
         at com.google.gdata.client.http.HttpGDataRequest$Factory.getRequest
 (HttpGDataRequest.java:162)
         at com.google.gdata.client.http.HttpGDataRequest$Factory.getRequest
 (HttpGDataRequest.java:168)
         at com.google.gdata.client.Service.createRequest(Service.java:713)
         at com.google.gdata.client.GoogleService.createRequest
 (GoogleService.java:535)
         at com.google.gdata.client.Service.createFeedRequest(Service.java:
 1174)
         at com.google.gdata.client.Service.getFeed(Service.java:994)
         at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:
 662)
         at com.google.gdata.client.Service.query(Service.java:1155)
         at com.google.gdata.client.Service.query(Service.java:1096)
         at contacts.ViewContacts.doGet(ViewContacts.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
 487)
         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
 (ServletHandler.java:1093)
         at
 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
 (TransactionCleanupFilter.java:43)
         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
 (ServletHandler.java:1084)
         at com.google.appengine.tools.development.StaticFileFilter.doFilter
 (StaticFileFilter.java:121)
         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
 (ServletHandler.java:1084)
         at org.mortbay.jetty.servlet.ServletHandler.handle
 (ServletHandler.java:360)
         at org.mortbay.jetty.security.SecurityHandler.handle
 (SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle
 (SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle
 (ContextHandler.java:712)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
 405)
         at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
 (DevAppEngineWebAppContext.java:54)
         at org.mortbay.jetty.handler.HandlerWrapper.handle
 (HandlerWrapper.java:139)
         at com.google.appengine.tools.development.JettyContainerService
 $ApiProxyHandler.handle(JettyContainerService.java:342)
         at org.mortbay.jetty.handler.HandlerWrapper.handle
 (HandlerWrapper.java:139)
         at org.mortbay.jetty.Server.handle(Server.java:313)
         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
 506)
         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
 (HttpConnection.java:830)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
         at org.mortbay.io.nio.SelectChannelEndPoint.run
 (SelectChannelEndPoint.java:396)
         at org.mortbay.thread.BoundedThreadPool$PoolThread.run
 (BoundedThreadPool.java:442)
 Caused by: java.security.AccessControlException: access denied
 (java.net.NetPermission getCookieHandler)
         at java.security.AccessControlContext.checkPermission
 (AccessControlContext.java:323)
         at java.security.AccessController.checkPermission
 (AccessController.java:546)
         at java.lang.SecurityManager.checkPermission(SecurityManager.java:
 532)
         at com.google.appengine.tools.development.DevAppServerFactory
 $CustomSecurityManager.checkPermission(DevAppServerFactory.java:151)
         at java.net.CookieHandler.getDefault(CookieHandler.java:58)
         at com.google.gdata.client.http.GoogleGDataRequest
 $GoogleCookieHandler.(GoogleGDataRequest.java:316)
         at com.google.gdata.client.http.GoogleGDataRequest
 $GoogleCookieHandler.(GoogleGDataRequest.java:305)
         at com.google.gdata.client.http.GoogleGDataRequest.
 (GoogleGDataRequest.java:408)
         ... 36 more

 Caused by:

 java.security.AccessControlException: access denied
 (java.net.NetPermission getCookieHandler)
         at java.security.AccessControlContext.checkPermission
 (AccessControlContext.java:323)
         at java.security.AccessController.checkPermission
 (AccessController.java:546)
         at java.lang.SecurityManager.checkPermission(SecurityManager.java:
 532)
         at com.google.appengine.tools.development.DevAppServerFactory
 

[appengine-java] Re: AppEngine Java stability concerns

2009-11-10 Thread Roy

+1

It's critical that the GAE team take these concerns on board. The two
selling points of GAE are performance and reliability, yet thanks to
the aggressive unloading of idle instances and the constant glitches
of the GAE infrastructure, GAE is dramatically underperforming against
expectations and of course the competition.

As an IT manager, my observation is this really needs a team
dedicating to the systemic problems that GAE currently faces. For
example, where is the sandbox in which developers can test their apps
against new releases? Where is a list of infrastructure problems/
exceptions and how each one should be dealt with? I'm sure the answer
is that the nature of the bigtable/google infrastructure makes it hard
to conceive a sandbox. Well somebody needs to focus on what needs to
be done to achieve one.

Just pretend for a moment that Steve Ballmer and the entire M$
competitive marketing dept. is monitoring this thread.

Optimistically yours
Roy

PS. @Jerome.  Throughput and response times are the 2 competing faces
of performance. To achieve high throughput through a system, you
sacrifice response time, and vice versa. I'm actually fairly confident
that the GAE infrastructure can provide the throughput and the Google
IO talk about the Whitehouse thingy shows that. What GAE can't seem to
provide is reliably good response times, so much so that apps fall
foul of the 30 second timeout.




On Nov 9, 6:10 pm, James H james.hollier...@gmail.com wrote:
 Jerome,

 I am concerned about uptime and throughput too.  Are there any GAE
 sites that boast large volume yet?  It would be reassuring to see
 stats on such sites that prove the price/performance viability of
 GAE.  How much traffic are you seeing and at what price and
 performance?

 On Nov 4, 2:21 pm, Rusty Wright rwright.li...@gmail.com wrote:



  Could you have an automated message (monthly, weekly, whatever) that's 
  posted to the GAE groups that informs people about this downtime notify 
  group?

  Max Ross (Google) wrote:
   Hi Jerome,

   There is planned maintenance going on right now.  I'd strongly encourage
   you to subscribe to the App Engine Downtime Notify group where you can
   learn about these things in advance:

  http://groups.google.com/group/google-appengine-downtime-notify

   Thanks,
   Max

   On Tue, Nov 3, 2009 at 6:18 PM, Jerome jerome.mou...@gmail.com
   mailto:jerome.mou...@gmail.com wrote:

       Hello,

       Our app has been running on AppEngine Java for 2 months. We are now
       ramping up on traffic and have enabled the billing feature. We are
       seeing on a daily basis short (1-2 minutes) outages. Most of the time,
       this is on the datastore, but these short outages sometimes affect
       other areas as well, like for instance serving static content.

       Today, we are seeing a data store in anomaly. This has been going on
       for over an our now:
       Uncaught exception from servlet
       com.google.apphosting.api.ApiProxy$CapabilityDisabledException: The
       API call datastore_v3.Put() is temporarily unavailable.
       We are completely dead in the water...

       My 2 questions are:
       - how/where can we report short outages that are usually not reflected
       on the AppEngine system status?
       - what is the AppEngine team plan to ensure a reliable service

       Jerome- Hide quoted text -

  - Show quoted text -
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: the question in ubuntu9.10 and eclipse 3.5

2009-11-08 Thread Roy Smith
The clue is libstdc++.so.5: cannot open shared object file: No such file or
directory

Try googling this along with apt-get.

9.10 switched from stdc5 to stdc6, so you need to install the legacy stdc5
package. It's a common problem with 9.10 and nothing to do with Eclipse or
GAE



On Mon, Nov 9, 2009 at 5:08 AM, Iqbal Yusuf Dipu
iqbalyusufd...@gmail.comwrote:


 I'm a total newbi as far as Ubuntu/Linux is concern. I'm using Ubuntu
 9.10, Eclipse 3.5 and having the problem as mentioned above even
 though I've set my environment as

 export GDK_NATIVE_WINDOWS=1

 ** Unable to load Mozilla for hosted mode **
 java.lang.UnsatisfiedLinkError: /home/iyusuf/bin/packages/eclipse3.5/
 plugins/com.google.gwt.eclipse.sdkbundle.linux_1.7.1.v200909221731/gwt-
 linux-1.7.1/mozilla-1.7.12/libxpcom.so: libstdc++.so.5: cannot open
 shared object file: No such file or directory
 at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1674)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1003)
at com.google.gwt.dev.shell.moz.MozillaInstall.load
 (MozillaInstall.java:190)
at com.google.gwt.dev.BootStrapPlatform.initHostedMode
 (BootStrapPlatform.java:53)
at com.google.gwt.dev.HostedModeBase.init(HostedModeBase.java:362)
at
 com.google.gwt.dev.SwtHostedModeBase.init(SwtHostedModeBase.java:
 127)
at com.google.gwt.dev.HostedMode.init(HostedMode.java:271)
at com.google.gwt.dev.HostedMode.main(HostedMode.java:230)

 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Recommendations for GWT +GAE

2009-11-07 Thread Roy Smith
I think you'll get better answers in the GWT group
http://groups.google.com/group/google-web-toolkit?hl=en



On Sat, Nov 7, 2009 at 7:25 PM, Vik vik@gmail.com wrote:

 Hie

 I am a newbie in GWT and so very much confused for what to use for
 desigining my ui. I mean should i use the widgets comes with GWT or other
 open source libs available.

 Few things:
 1. Please suggest which is compatible with GAE as my APP is gonna be on GAE
 only.
 2. Right now I do not have very high-fi or a super cool UI requirements but
 definitely then one which has great widgets and does not easily break GAE
 free app file limits
 will be great for me to start with.

 Please advise

 Thankx and Regards

 Vik
 Founder
 www.sakshum.com
 www.sakshum.blogspot.com

 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: How can I change the temp dir when gae try deploying,

2009-11-06 Thread Roy Smith
symbolic link?

It might be worth raising an issue, requesting that the temp files be pushed
down one level. Thus /tmp/appengine/stuff, instead of the current
/tmp/stuff.

That would make it easier for you to relocate using a symlink, and also help
me tidy up my /tmp directory :-)


On Fri, Nov 6, 2009 at 3:16 PM, magic.yang zju...@gmail.com wrote:


 When I run ...appcfg.cmd update warlocation, there is not enough disk
 for store the temp data, and run into java.io.IOException, How can I
 change the temp dir when updating app to GAE, or any other choice for
 solve this problem?
 advanced thanks!

 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Inequality operator is !=, but can we add

2009-11-05 Thread Roy Smith
On Thu, Nov 5, 2009 at 9:17 PM, Max Ross (Google)
maxr+appeng...@google.commaxr%2bappeng...@google.com
 wrote:

 The next SDK (1.2.8) is working its way through QA right now so hopefully
 it will be available in the next week or two.


Please can we get a bit more notice on the changes and the make-live date
than we did with 1.2.6

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Inequality operator is !=, but can we add

2009-11-05 Thread Roy Smith
1.2.6 broke a few items based on the posts in this group and was implemented
with no prior notice.

Had we known what the changes were, and were given a couple of day's notice,
we could have been monitoring our live apps and reviewing our code for
incompatibilities, implemented some contingencies, downloaded the new SDK
and locally regression tested our apps, etc.

As it happened, the first that many of us knew of any problems was when live
users complained to us. We then waste a bunch of time looking for problems,
only to subsequently learn that a new SDK/API had been deployed.

So my concern is operational rather than around any design/development
decisions. I'm not asking for a firm date, just a couple of day's notice

Having said that a roadmap would be extremely welcome :-)

best
Roy


On Fri, Nov 6, 2009 at 3:36 AM, Max Ross (Google)
maxr+appeng...@google.commaxr%2bappeng...@google.com
 wrote:

 Hi Roy,

 I don't have a firm date to give you on the next release because we're
 going to test it until we're satisfied with the quality.  The release will
 be backwards compatible with the current release.  What sorts of decisions
 are you looking to make based on the release date?  Maybe there's some other
 way I can help you with them.

 Max

 On Thu, Nov 5, 2009 at 6:09 PM, Roy Smith roy.smith@googlemail.comwrote:

 On Thu, Nov 5, 2009 at 9:17 PM, Max Ross (Google) 
 maxr+appeng...@google.com maxr%2bappeng...@google.com wrote:

 The next SDK (1.2.8) is working its way through QA right now so hopefully
 it will be available in the next week or two.


 Please can we get a bit more notice on the changes and the make-live date
 than we did with 1.2.6






 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: GWT Vs JQuery

2009-11-05 Thread Roy Smith
Horses for courses.

Do you know Javascript?
Does GWT-RPC work for you, or do you prefer REST, DWR or your home-grown c-s
protocol?
Will you be using other APIs such as Gdata?
Do you require any particular widgets from either GWT or Jquery?

...the list goes on

GAE is agnostic. The biggest issue you will face with either approach is
authentication. Right now GAE authentication is a pretty blunt instrument.



On Fri, Nov 6, 2009 at 3:56 AM, Vik vik@gmail.com wrote:

 Hie

 My App is currently writen and hosted on GAE which used conventional MVC1
 pattern and using jsps for views layer.

 I am looking forward to enhance the UI layer. So which one is more
 recommended GWT or JQuery or anything else that works with GAE?

 Thankx and Regards

 Vik
 Founder
 www.sakshum.com
 www.sakshum.blogspot.com

 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Inequality operator is !=, but can we add

2009-11-05 Thread Roy Smith
Thx for taking the issue on board.

I have seen the roadmap page, but ideally I'd like the next level of detail
in terms of planned releases and feature sets. Think Trac milestones. Of
course these things change, but we can live with that. As an example, I'm
currently wrestling with authentication. I can't decide whether I need to
roll my own, or do you guys have anything in the pipeline to natively
support OAUTH, or OpenId.

Honestly I love your notifications so promise never to tune them out :-)

Pre-releasing the SDK with deploy-disabled seems a pretty easy thing to do.
If it's only advertised here, along with some release notes, a couple of
days before live, that would help us and possibly help you with your
regression testing.

On Fri, Nov 6, 2009 at 4:02 AM, Max Ross (Google)
maxr+appeng...@google.commaxr%2bappeng...@google.com
 wrote:

 Have you seen this?
 http://code.google.com/appengine/docs/roadmap.html

 I understand the operational difficulties you're describing.  Ideally we
 would have a way to let early adopters try out the new runtime before we
 roll it out to all our servers, thus giving us the opportunity to learn
 about incompatibilities before they became widespread.  We've talked about
 this quite a bit but we don't have anything coming in the near term.

 As for notification of new server-side deployments, the reality is that we
 push new code into production all the time.  The vast majority of the time
 nobody notices because we didn't break anything and we didn't introduce any
 user visible features.  If we sent out notifications every time we did this
 I'm pretty sure you would tune these notifications out within a week or
 two.  Still, if you're running a real service with real users it makes sense
 that you would want to know about periods of increased risk ahead of
 time.  I'm just not sure how we would identify those for you.

 The trick with a new SDK is that we can't release it until we've updated
 our servers with new code that is prepared to handle the new SDK, and by
 that time, if we've goofed and introduced an incompatibility, your app has
 already run into it.  I suppose we could make the SDK available ahead of
 time in some form where it can only be run locally, but I can imagine it
 being pretty confusing to have an SDK that is only half-functional.  What do
 you think?

 Max

 On Thu, Nov 5, 2009 at 7:44 PM, Roy Smith roy.smith@googlemail.comwrote:

 1.2.6 broke a few items based on the posts in this group and was
 implemented with no prior notice.

 Had we known what the changes were, and were given a couple of day's
 notice, we could have been monitoring our live apps and reviewing our code
 for incompatibilities, implemented some contingencies, downloaded the new
 SDK and locally regression tested our apps, etc.

 As it happened, the first that many of us knew of any problems was when
 live users complained to us. We then waste a bunch of time looking for
 problems, only to subsequently learn that a new SDK/API had been deployed.

 So my concern is operational rather than around any design/development
 decisions. I'm not asking for a firm date, just a couple of day's notice

 Having said that a roadmap would be extremely welcome :-)

 best
 Roy


 On Fri, Nov 6, 2009 at 3:36 AM, Max Ross (Google) 
 maxr+appeng...@google.com maxr%2bappeng...@google.com wrote:

 Hi Roy,

 I don't have a firm date to give you on the next release because we're
 going to test it until we're satisfied with the quality.  The release will
 be backwards compatible with the current release.  What sorts of decisions
 are you looking to make based on the release date?  Maybe there's some other
 way I can help you with them.

 Max

 On Thu, Nov 5, 2009 at 6:09 PM, Roy Smith 
 roy.smith@googlemail.comwrote:

 On Thu, Nov 5, 2009 at 9:17 PM, Max Ross (Google) 
 maxr+appeng...@google.com maxr%2bappeng...@google.com wrote:

 The next SDK (1.2.8) is working its way through QA right now so
 hopefully it will be available in the next week or two.


 Please can we get a bit more notice on the changes and the make-live
 date than we did with 1.2.6












 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Timeout using GData API

2009-11-05 Thread Roy

Recently I've started getting timeouts fetching a spreadsheet using
the Gdata API library. How do I increase the timeout?



Stack trace follows:-

java.io.IOException: Timeout while fetching:
http://spreadsheets.google.com/feeds/worksheets/tPigPq5454wZIlYT_Vy7jY-ewerb2XQ/private/full/defaultjava.io.IOException:
Timeout while fetching: 
http://spreadsheets.google.com/feeds/worksheets/tPigPqwZIlYT_Vy7jY-b2XQ/private/full/default
com.google.appengine.api.urlfetch.URLFetchServiceImpl.handleApplicationException
(URLFetchServiceImpl.java:69)
 com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch
(URLFetchServiceImpl.java:42)
com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler
$Connection.fetchResponse(URLFetchServiceStreamHandler.java:408)
com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler
$Connection.getInputStream(URLFetchServiceStreamHandler.java:290)
com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler
$Connection.getResponseCode(URLFetchServiceStreamHandler.java:131)
com.google.gdata.client.http.HttpGDataRequest.checkResponse
(HttpGDataRequest.java:535)
com.google.gdata.client.http.HttpGDataRequest.execute
(HttpGDataRequest.java:515)
 com.google.gdata.client.http.GoogleGDataRequest.execute
(GoogleGDataRequest.java:515)
com.google.gdata.client.Service.getEntry(Service.java:1270)
com.google.gdata.client.GoogleService.getEntry(GoogleService.java:567)
com.google.gdata.client.Service.getEntry(Service.java:1196)
com.google.gdata.data.spreadsheet.SpreadsheetEntry.getDefaultWorksheet
(SpreadsheetEntry.java:143)
couk.cleverthinking.cc.server.google.GoogleDoc.fetchSpreadsheetContents
(GoogleDoc.java:225)
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Recommended scope for DatastoreService

2009-11-04 Thread Roy

Should I be creating a DatastoreService for each session, or are
they inexpensive enough that I can have one for each Kind? I realise
that for transactions, the latter doesn't work.

A related question is how threadsafe is an instance of
DatastoreService?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Recommended scope for DatastoreService

2009-11-04 Thread Roy Smith
Hi Max

Thx for the answer, especially the correction on the transaction
implementation.

The solution I'd arrived at is to use Guice to instantiate my DsS with a
scope of @RequestScoped. Do you see any problems with that approach?

best
Roy


On Wed, Nov 4, 2009 at 7:02 PM, Max Ross (Google)
maxr+appeng...@google.commaxr%2bappeng...@google.com
 wrote:

 A DatastoreService instance is extremely lightweight so feel free to create
 them as-needed.  In addition, transactions are not tied to a specific
 DatastoreService instance but rather to the thread that started the
 transaction.  Finally, assume that all classes in the api are _not_
 threadsafe unless explicitly documented otherwise.

 Hope this helps,
 Max


 On Wed, Nov 4, 2009 at 4:35 AM, Roy roy.sm...@cleverthinking.co.ukwrote:


 Should I be creating a DatastoreService for each session, or are
 they inexpensive enough that I can have one for each Kind? I realise
 that for transactions, the latter doesn't work.

 A related question is how threadsafe is an instance of
 DatastoreService?





 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: SimpleDS: an alternative for Datastore persistence

2009-11-02 Thread Roy Smith
Hi Vince

Thanks for sharing.
I've modified my persistence framework to incorporate your class and it
works very well.

kind regards
Roy


On Mon, Nov 2, 2009 at 8:15 PM, Vince Bonfanti vbonfa...@gmail.com wrote:


 P.S. Because of issue 2097
 (http://code.google.com/p/googleappengine/issues/detail?id=2097), the
 write-behind task doesn't work on the development server, so it always
 defaults to write-through (which is a nice test of the watchdog
 mechanism). The write-behind task works fine on the production
 servers.

 On Mon, Nov 2, 2009 at 3:12 PM, Vince Bonfanti vbonfa...@gmail.com
 wrote:
  You might be interested in my CachingDatastoreService class:
 
 
 http://code.google.com/p/gaevfs/source/browse/trunk/src/com/newatlanta/appengine/datastore/CachingDatastoreService.java
 
  It has the following features:
 
   - Implements the com.google.appengine.api.datastore.DatastoreService,
  so it's a plug-in replacement for the standard implementation.
   - Automatically caches entities in memcache for datastore reads and
 writes.
   - Has a write-behind option (the default) that queues all datastore
  writes as background tasks (except for transactions, which are always
  write-through directly to the datastore).
   - A watchdog task makes sure the write-behind task is always available.
   - If the write-behind task isn't available, defaults to write-through
  to insure no loss of data.
   - Supports configurable expiration of memcache entities (the default
  is no expiration).
 
  In order to use the CachingDatastoreService, first configure the
  write-behind task in web.xml:
 
 servlet
 servlet-nameCachingDatastoreService/servlet-name
 
  
 servlet-classcom.newatlanta.appengine.datastore.CachingDatastoreService/servlet-class
 /servlet
 servlet-mapping
 servlet-nameCachingDatastoreService/servlet-name
 url-pattern/_ah/queue/write-behind-task/url-pattern
 /servlet-mapping
 
  Then configure the write-behind-task queue in queue.xml (use whatever
  rate you want):
 
 queue
 namewrite-behind-task/name
 rate5/s/rate
 /queue
 
  Then replace the following code:
 
 DatastoreService ds = DatastoreServiceFactory().getDatastoreService();
 
  with this code, and then use the DatastoreService methods as you normally
 would:
 
 DatastoreService ds = new CachingDatastoreService();
 
  The default CachingDatastoreService constructor enables the
  CacheOptions.WRITE_BEHIND option and sets the expiration to null (no
  expiration). There are additional constructors that allow you to
  specify CacheOptions.WRITE_THROUGH and/or specify a memcache
  expiration value.
 
  Vince
 
  On Mon, Nov 2, 2009 at 2:21 PM, Stakka henrik.lindqv...@gmail.com
 wrote:
 
  One feature I see useful for a layer atop the Low-Level API is
  asynchronization. Since you'll never know how much time a Low-Level
  API call will take it should automatically create Tasks for them,
  writes atleast.
 
 
  On Oct 22, 10:37 am, Nacho Coloma icol...@gmail.com wrote:
  Hi all,
 
  We have been developing a persistence framework for the AppEngine
  Datastore based on the raw DatastoreService API. For our (simple)
  persistence case, both JDO and JPA were a bit overkill as we were
  spending a significant amount of time jumping through hoops to make
  our application roll, but at the same time the Datastore API was a too
  low-level solution to be usable.
 
  So we reinvented our wheel. In two days.
 
  SimpleDS is a light wrapper around the DatastoreService APIs that
  provide a simple interface for java persistent classes. It does not
  include fancy stuff or any super features, it's just the
  DatastoreService ported to a world where Java entities can be
  persisted directly (using a subset of JPA annotations).  This is _not_
  a JPA/JDO replacement, and will never be. But we have been using it
  for some weeks and are quite happy with it.
 
  Any kind of feedback from the AppEngine  community would be welcome.
  Before calling the typical but we already have JPA/JDO! argument,
  please notice the following:
 
  * There are lots of considerations in a relational database that do
  not apply to AppEngine. This allows a specific solution to be
  simplified big time. Just see the depth of your typical stack trace to
  understand what I am talking about.
  * Solutions can be designed for specific cases that are common
  practice in AppEngine but do not apply to a relational database. See,
  for example, saving entities with a parent instance.
  * Transactions also behave a bit differently, where a one size fits
  all approach would probably not be the best solution.
 
  To better ilustrate with an example, these are some typical tasks
  performed with SimpleDS:
 
  Retrieve instance:
  FooBar bar = entityManager.get(key);
 
  Transform from Google Datastore Entity to java and viceversa:
  Entity entity = entityManager.datastoreToJava(bar);
 
  Save generating a  primary key, with a parent

[appengine-java] Re: Servlet widgets - an alternative to GWT or servlet dispatch jsp paradigm

2009-10-24 Thread Roy Smith
Have a look at Apache Click

On Fri, Oct 23, 2009 at 1:01 PM, Tor adm...@toolboxsystems.com wrote:


 I'm very pleased with the Google Web Toolkit (GWT) and it would very
 nice to adopt the same way of building html code user interfaces in
 servlets in GAE - as an alternative to the servlet dispatching jsp
 paradigm.

 In short - from inside servlet doPost (or doGet) method - it would be
 nice to add widgets like panels, buttons ... and basic html (with
 attributes and parameters) - to the document before written to the
 response.

 - a GWT-clone creating html code directly to the servlet response
 instead of GWT creating javascript in the server that creates html in
 the browser.

 Any tips to java html-widget libraries?








 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Gadget Hosting on App Engine

2009-10-24 Thread Roy Smith
I think this is more likely to be a gadget issue than an appengine issue.
Check the gadgets discussion group as a few other people are experiencing
the same issue


On Sat, Oct 24, 2009 at 3:24 PM, Brian Dorry brian.do...@gmail.com wrote:


 I have recently been tasked with working on creating a gadget for a
 project that is hosted on app engine. I am also hosting the gadget
 specification on app engine.

 The gadget specification is generated on the server side as it refers
 back to the application id that the gadget is hosted on (this project
 may be hosted on multiple IDs), so I suspect that the gadget is
 subject to the same start up times that application is subject to when
 it has been inactive for a period of time (I don't know that this has
 anything to do with the issue I am having).

 Now to my problems. I have observed the following behavior:

 1. After coming back to the mail inbox that I installed the gadget to
 the gadget has more often that not disappeared from the left side
 menu.

 2. I came back to the mailbox after leaving Firefox open for an
 extended period of time, and after trying to use my gadget I received
 a 504 error Unable to retrieve gadget spec

 Are these related? Does anyone have experience with this issue? The
 gadget itself is working great hosted on app engine aside from this.


 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: Authentication with Google Apps

2009-10-23 Thread Roy Smith
 For example I'd like my users to enter their u...@mycompany.com email
 rather than someb...@gmail.com.  Is this possible?
I have a GAE app defined as public which I can authenticate to using
u...@mycompany.com. The rules for when this does and doesn't work seem ill
defined.

 then you need to
 create a new application-id specifying which domain users can
 authenticate on your application.

Remember you need to get prior approval from Google before you create
multiple duplicate applications



On Fri, Oct 23, 2009 at 1:34 PM, Mansoor khaja.mans...@gmail.com wrote:


 At the time of creating an application-id on appengine, you have an
 option to allow authentication only for users of a particular domain
 or for all google account users. If you already have the application
 setup for universal google account authentication, then you need to
 create a new application-id specifying which domain users can
 authenticate on your application.

 On Oct 22, 7:20 pm, sportrider sportri...@gmail.com wrote:
  I am working to publish a site on App Engine and would like to
  authenticate users by using their Google Apps email rather than a
  gmail email.
 
  For example I'd like my users to enter their u...@mycompany.com email
  rather than someb...@gmail.com.  Is this possible?
 
  I've tried adding mycompany.com to the authDomain argument on
  userService.createLoginURL(), but this didn't seem to do anything.
 
  Many thanks,
  Chris
 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Runtime Exceptions

2009-10-23 Thread Roy

I read a lot about failures and timeouts from the datastore, but I
can't find any documentation and of course the development environment
doesn't simulate them.

Has anybody compiled a list of the various error states and exceptions
that we need to code for?


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: SimpleDS: an alternative for Datastore persistence

2009-10-22 Thread Roy Smith
I did more or less the same thing for the same reasons, and with the same
happy result.The only difference for me was instead of annotations, I
generate my model from an RDBMS. This way I know I can port my app to an
RDBMS world should GAE ever go the same way as Google Notebook.


On Thu, Oct 22, 2009 at 11:43 AM, Richard richard.wat...@gmail.com wrote:


 Sounds good.  I also think I'll focus much of my attention on the low-
 level API, so this could be very useful!

 Regards,
 Richard

 On Oct 22, 11:37 am, Nacho Coloma icol...@gmail.com wrote:
  Hi all,
 
  We have been developing a persistence framework for the AppEngine
  Datastore based on the raw DatastoreService API. For our (simple)
  persistence case, both JDO and JPA were a bit overkill as we were
  spending a significant amount of time jumping through hoops to make
  our application roll, but at the same time the Datastore API was a too
  low-level solution to be usable.
 
  So we reinvented our wheel. In two days.
 
  SimpleDS is a light wrapper around the DatastoreService APIs that
  provide a simple interface for java persistent classes. It does not
  include fancy stuff or any super features, it's just the
  DatastoreService ported to a world where Java entities can be
  persisted directly (using a subset of JPA annotations).  This is _not_
  a JPA/JDO replacement, and will never be. But we have been using it
  for some weeks and are quite happy with it.
 
  Any kind of feedback from the AppEngine  community would be welcome.
  Before calling the typical but we already have JPA/JDO! argument,
  please notice the following:
 
  * There are lots of considerations in a relational database that do
  not apply to AppEngine. This allows a specific solution to be
  simplified big time. Just see the depth of your typical stack trace to
  understand what I am talking about.
  * Solutions can be designed for specific cases that are common
  practice in AppEngine but do not apply to a relational database. See,
  for example, saving entities with a parent instance.
  * Transactions also behave a bit differently, where a one size fits
  all approach would probably not be the best solution.
 
  To better ilustrate with an example, these are some typical tasks
  performed with SimpleDS:
 
  Retrieve instance:
  FooBar bar = entityManager.get(key);
 
  Transform from Google Datastore Entity to java and viceversa:
  Entity entity = entityManager.datastoreToJava(bar);
 
  Save generating a  primary key, with a parent instance:
  FooBar bar = new FooBar();
  entityManager.put(parentKey, bar);
 
  More can be seen here:http://code.google.com/p/simpleds/wiki/SimpleTasks
 
  Any discussion about the current API state is welcome. This entire
  thing was rolled in two days and tested in a couple of weeks so there
  should be some bugs in between.
 
  It is important to keep in mind the current list of limitations:
 
  * Only the Key class is a supported primary key.
  * IN and != are not supported (yet). I have big concerns about
  supporting this, performance-wise.
  * Relationships are not supported. You can use Keys and collections of
  Keys for that purpose.
  * Transactions are not yet included. We are not yet sure about how to
  proceed here.
 
  As I said, this is not conceived to become a feature-complete JPA
  replacement, so please don't treat it like that.
 
  Best regards,
 
  Nacho.
 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: SimpleDS: an alternative for Datastore persistence

2009-10-22 Thread Roy Smith
My goal wasn't to economise on api _ms so I haven't done any comparisons.
afaik, commit is done at an entity level, so I don't monitor individual
fields for changes. If I'm wrong then it wouldn't be too difficult to
build dirty flags into my DTO setters.

My advice to anybody building apps for GAE is to have your own abstraction
layer between JDO/JPA/LLAPI so any porting between regimes is painless. This
is why I took the approach of modelling my data in an RDBMS and then
generating my object data model automatically. At first it sounds like a
retrograde step, but the benefit is that my data model is independent of any
specific persistence framework (and the design tools are more mature).

On Thu, Oct 22, 2009 at 11:37 PM, Peter Liu tinyee...@gmail.com wrote:


 Awesome!

 I recently played with the lower level API as well. Some of the
 features are not available in JDO, like reserving a key before
 committing a new object. The detach/attach is also problematic when
 dealing with caching and transaction. I also noticed small JDO objects
 are much bigger than it needs to be when serialized.

 Just wondering do you have any performance profiling stats? I also
 feel like JDO is overkill, but I couldn't justify porting all JDO
 objects to another simple type without knowing how much cpu_ms it will
 save.

 Also, do you keep track of which field is dirty and avoid committing
 unmodified fields? I believe this is important to minimize api_cpu to
 avoid unnecessary index updates.


 On Oct 22, 2:37 am, Nacho Coloma icol...@gmail.com wrote:
  Hi all,
 
  We have been developing a persistence framework for the AppEngine
  Datastore based on the raw DatastoreService API. For our (simple)
  persistence case, both JDO and JPA were a bit overkill as we were
  spending a significant amount of time jumping through hoops to make
  our application roll, but at the same time the Datastore API was a too
  low-level solution to be usable.
 
  So we reinvented our wheel. In two days.
 
  SimpleDS is a light wrapper around the DatastoreService APIs that
  provide a simple interface for java persistent classes. It does not
  include fancy stuff or any super features, it's just the
  DatastoreService ported to a world where Java entities can be
  persisted directly (using a subset of JPA annotations).  This is _not_
  a JPA/JDO replacement, and will never be. But we have been using it
  for some weeks and are quite happy with it.
 
  Any kind of feedback from the AppEngine  community would be welcome.
  Before calling the typical but we already have JPA/JDO! argument,
  please notice the following:
 
  * There are lots of considerations in a relational database that do
  not apply to AppEngine. This allows a specific solution to be
  simplified big time. Just see the depth of your typical stack trace to
  understand what I am talking about.
  * Solutions can be designed for specific cases that are common
  practice in AppEngine but do not apply to a relational database. See,
  for example, saving entities with a parent instance.
  * Transactions also behave a bit differently, where a one size fits
  all approach would probably not be the best solution.
 
  To better ilustrate with an example, these are some typical tasks
  performed with SimpleDS:
 
  Retrieve instance:
  FooBar bar = entityManager.get(key);
 
  Transform from Google Datastore Entity to java and viceversa:
  Entity entity = entityManager.datastoreToJava(bar);
 
  Save generating a  primary key, with a parent instance:
  FooBar bar = new FooBar();
  entityManager.put(parentKey, bar);
 
  More can be seen here:http://code.google.com/p/simpleds/wiki/SimpleTasks
 
  Any discussion about the current API state is welcome. This entire
  thing was rolled in two days and tested in a couple of weeks so there
  should be some bugs in between.
 
  It is important to keep in mind the current list of limitations:
 
  * Only the Key class is a supported primary key.
  * IN and != are not supported (yet). I have big concerns about
  supporting this, performance-wise.
  * Relationships are not supported. You can use Keys and collections of
  Keys for that purpose.
  * Transactions are not yet included. We are not yet sure about how to
  proceed here.
 
  As I said, this is not conceived to become a feature-complete JPA
  replacement, so please don't treat it like that.
 
  Best regards,
 
  Nacho.
 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: LIKE query workaround for the Low Level API

2009-10-21 Thread Roy Smith
Answered in this thread
http://groups.google.com/group/google-appengine-java/browse_thread/thread/958851cc674d0c70/7403586fae9ffe20?lnk=gstq=startswith#7403586fae9ffe20

On Wed, Oct 21, 2009 at 6:34 PM, George Moschovitis 
george.moschovi...@gmail.com wrote:


 Hi,

 what is the suggested way to emulate an SQL LIKE 'prefix%' query using
 the low level Datastore API?

 thanks,
 George.
 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: JDO vs low level API

2009-09-24 Thread Roy

I'm about to quit on JPA/JDO after 2 days of pure frustration. The
final straw is:-

System.out.println(emp.dept name= + emp.getDept().getName
());// throws an NPE
vs.
System.out.println(emp.dept name= + 
emp.dto.getDept().getName());
System.out.println(emp.dept name= + emp.getDept().getName()); 
 //
now works just fine

I can't cope with that much non-deterministic behaviour.

fwiw, I have my own ant task to reverse engineer a database schema
into JPA, Hibernate, JDO, etc.
The approach I'm taking is to do my design using an RDBMS and design
tool and then generate a GAE LLAPI DAO layer from the database.
That way its fairly easy for me to switch from LLAPI to say JDO in the
future (not that I can ever imagine wanting to given my app is
dependent on so many GAE features anyway).

I'm guessing that an interesting side benefit is that the DTO classes
are now RPCable to GWT, unike the annotated JDO/JPA stuff

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[appengine-java] Re: JDO vs low level API

2009-09-24 Thread Roy Smith
I realise that non-deterministic is a relative term, and that given enough
time, reading, research, etc etc I will be able to determine why adding a
println prevents an NPE.
My point (and I think of others) is why?. Especially since it's taken me 2
days already that I was supposed to have spent working on business logic,
not figuring out why mappedsuperclasses misbehave and whether JPA or JDO is
the better option.

A GAE app is inherently non-portable to other environments (or at least mine
is) so that is of no value.
I'm not porting the app. from an existing RDBMS/ORM environment so that
isn't a win either.

Sure I may have to adjust my code if the datastore API changes, but I can
live with that, in fact I'd rather do that than hope that any API changes
have been correctly absorbed by the Datanucleus stack.

I don't want to appear negative towards Datanucleus, but for my situation
it's a sledgehammer to crack a nut




On Thu, Sep 24, 2009 at 8:19 AM, datanucleus andy_jeffer...@yahoo.comwrote:


  The final straw is:-
  System.out.println(emp.dept name= +
 emp.getDept().getName
  ());// throws an NPE

 So why not address what the difference is in calls to your persistable
 class ? Nothing is non-deterministic by definition that you have a
 programming language here and rules are followed (and JDO behaviour is
 defined in a spec). Pay particular attention to object states and
 fetch groups (and the DataNucleus docs define all you should need to
 know around that).

 


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---