[appengine-java] I cannot delete a version of my app
My app victordolirioti, version 3 cannot be deleted. Can some one help me? best regards. []s -- 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: unable to use user services with java - 500 Server Error
Hii I m facing same problem. I've jst deployed a new application with a single servlet to fulfill all request. but when I deploy it using eclipse plugin. It show the error trace Is ther any work arround/ solution for this problem?? # 02-09 04:15AM 00.289 / 500 999ms 505cpu_ms 0kb Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009022007 Red Hat/3.0.7-1.el4 Firefox/3.0.7 GTB7.0,gzip(gfe) See details 220.227.161.170 - - [09/Feb/2010:04:15:01 -0800] "GET / HTTP/1.1" 500 0 - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/ 2009022007 Red Hat/3.0.7-1.el4 Firefox/3.0.7 GTB7.0,gzip(gfe)" "mywtapp.appspot.com" # W 02-09 04:15AM 01.250 EXCEPTION java.lang.ClassNotFoundException: rnd.webapp.mwt.server.ARBImpl at com.google.appengine.runtime.Request.process-5f37b4637b91afa0(Request.java) at java.lang.ClassLoader.loadClass(Unknown Source) at org.mortbay.util.Loader.loadClass(Loader.java:91) at org.mortbay.util.Loader.loadClass(Loader.java:71) at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java: 233) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 40) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java: 612) at org.mortbay.jetty.servlet.Context.startContext(Context.java:139) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java: 1218) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java: 500) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java: 448) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 40) at om.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java: 191) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java: 168) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 123) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5485) at om.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5483) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: 24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 363) at com.google.net.rpc.impl.Server$2.run(Server.java:837) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: 56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: 536) at com.google.net.rpc.impl.Server.startRpc(Server.java:792) at com.google.net.rpc.impl.Server.processRequest(Server.java:367) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: 448) at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java: 319) at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java: 290) at com.google.net.async.Connection.handleReadEvent(Connection.java: 474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: 774) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: 205) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 101) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: 251) at com.google.apphosting.runtime.JavaRuntime $RpcRunnable.run(JavaRuntime.java:394) at java.lang.Thread.run(Unknown Source) On Jan 22, 6:00 pm, ninjatux wrote: > Hi all, > > i'm trying to use google app engine to build my first apps using java. > i'm new to java but i would like to use app engine to train myself for > web app developing. > > i've got some issues using the users services. > > these are my servlets: > > /* > * TestingUsers.java > */ > package mytrainingapp; > > import java.io.IOException; > import javax.servlet.http.HttpServlet; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > import com.google.appengine.api.users.UserService; > import com.google.appengine.api.users.UserServiceFactory; > > public class TestingUsers extends HttpServlet { > public void doGet(HttpServletRequest req, HttpServletResponse resp) > throws IOException { > > UserService userService = UserServiceFactory.getUserService(); > String newline = System.getProperty("line.separator"); > String data = req.getParameter("date"); > String nick = req.getUserPrincipal().getName(); > resp.setContentType("text/plain"); > res
[appengine-java] Re: unable to use user services with java - 500 Server Error
Hii I m facing same problem. I've jst deployed a new application with a single servlet to fulfill all request. but when I deploy it using eclipse plugin. It show the error trace Is ther any work arround/ solution for this problem?? # 02-09 04:15AM 00.289 / 500 999ms 505cpu_ms 0kb Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009022007 Red Hat/3.0.7-1.el4 Firefox/3.0.7 GTB7.0,gzip(gfe) See details 220.227.161.170 - - [09/Feb/2010:04:15:01 -0800] "GET / HTTP/1.1" 500 0 - "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/ 2009022007 Red Hat/3.0.7-1.el4 Firefox/3.0.7 GTB7.0,gzip(gfe)" "mywtapp.appspot.com" # W 02-09 04:15AM 01.250 EXCEPTION java.lang.ClassNotFoundException: rnd.webapp.mwt.server.ARBImpl at com.google.appengine.runtime.Request.process-5f37b4637b91afa0(Request.java) at java.lang.ClassLoader.loadClass(Unknown Source) at org.mortbay.util.Loader.loadClass(Loader.java:91) at org.mortbay.util.Loader.loadClass(Loader.java:71) at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java: 233) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 40) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java: 612) at org.mortbay.jetty.servlet.Context.startContext(Context.java:139) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java: 1218) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java: 500) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java: 448) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java: 40) at om.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java: 191) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java: 168) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 123) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5485) at om.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5483) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: 24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 363) at com.google.net.rpc.impl.Server$2.run(Server.java:837) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: 56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: 536) at com.google.net.rpc.impl.Server.startRpc(Server.java:792) at com.google.net.rpc.impl.Server.processRequest(Server.java:367) at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: 448) at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java: 319) at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java: 290) at com.google.net.async.Connection.handleReadEvent(Connection.java: 474) at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: 774) at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: 205) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 101) at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: 251) at com.google.apphosting.runtime.JavaRuntime $RpcRunnable.run(JavaRuntime.java:394) at java.lang.Thread.run(Unknown Source) On Jan 26, 1:59 am, "Ikai L (Google)" wrote: > It looks like your web.xml is incorrectly formatted. I'm not sure if this > will cause the stack trace you are seeing, though, but let's try to > eliminate issues one at a time. Can you try putting servlet elements and > servlet-mapping elements under the same root element? Here's an example of a > web.xml showing what I mean: > > > "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" > "http://java.sun.com/dtd/web-app_2_3.dtd";> > > http://java.sun.com/xml/ns/javaee"; version="2.5"> > > guestbook > guestbook.GuestbookServlet > > > guestbook > /guestbook > > > /index.html > > > > On Fri, Jan 22, 2010 at 5:00 AM, ninjatux wrote: > > Hi all, > > > i'm trying to use google app engine to build my first apps using java. > > i'm new to java but i would like to use app engine to train myself for > > web app developing. > > > i've got some issues using the users services. > > > these are my servlets: > > > /* > > * TestingUsers.java > > */ > > package mytrainingapp; > > > import java.io.IOException; > > impor
[appengine-java] Re: Session handleing example
What issue are you encountering? When you make changes to a session object state, make sure to explicitly call the session.setAttribute("", ) again. i think there is an issue discussed about this before. On Nov 9, 10:58 am, IlyaE wrote: > Does anyone have a java session handleing example? It seems that > saving objects in the session only works locally. --~--~-~--~~~---~--~~ 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: Delete task queue
You might have a previous version of the app that still refers to the old queue. Delete those versions. On Nov 9, 7:29 am, Peter Ondruska wrote: > I have defined task queue using queue.xml but later decided not to use > it. It still appears in queue list in app engine. How do I delete this > task queue? Uploading queue.xml with empty ? Thanks, > Peter --~--~-~--~~~---~--~~ 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] Key and KeyFactory - privacy concern related
I use the com.google.appengine.api.datastore.Key as primary keys to my datastore and part of the Key generation strategy is to use an e-mail: Key ret = KeyFactory.createKey( + ) This generated key is then exposed to the browser via KeyFactory.keyToString. My concern is more on the privacy side. This serialized key could easily be converted back to its original form by somebody cut and pasting this key and running the following in their local machine: Key ret = KeyFactory.stringToKey() --thus exposing the e-mail from the key. My question is, is there a way for Google App Engine to make the "KeyFactory.stringToKey" only work to return the proper key if it is executed from the app where the data store is running from? Thanks again, --~--~-~--~~~---~--~~ 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] cron job being executed even though it is not yet time
I have a cron job that has the following definition --- Checks for Expired postings every mon, tue, wed 00:00 (UTC) 2009/10/19 00:00:01 on time Success - When I was checking my logs just now, I was surprised that it was run and today is Sunday. As can be seen on the cron definition, the job is supposed to run only on mon, tue, wed Anybody has encountered this issue before? The only correlation that I could make is I created a new version of the app and deleted the old one about 10 mins prior. --~--~-~--~~~---~--~~ 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] ETA is invalid in hosted development environment
I keep getting this error when I use the "TaskOptions.etaMillis" option in task queue. I do not get this error when I deploy my app in google app engine. If anybody has some clues that will be great. SEVERE: ETA is invalid : java.lang.IllegalArgumentException: ETA is invalid : at com.google.appengine.api.labs.taskqueue.QueueApiHelper.translateError (QueueApiHelper.java:86) at com.google.appengine.api.labs.taskqueue.QueueApiHelper.makeSyncCall (QueueApiHelper.java:32) at com.google.appengine.api.labs.taskqueue.QueueImpl.add (QueueImpl.java:220) at com.google.appengine.api.labs.taskqueue.QueueImpl.add (QueueImpl.java:210) --~--~-~--~~~---~--~~ 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] Task Queue: java.lang.IllegalArgumentException: ETA is invalid :
I was trying to use eta parameter in TaskOptions and I keep getting the following error: java.lang.IllegalArgumentException: ETA is invalid : Anybody has some clue about this one? My code is pasted below. My intention is to execute this task after two hours. Thanks! Queue queue = QueueFactory.getQueue("payments"); long eta = System.currentTimeMillis() + 2*60*60*1000; TaskOptions taskOptions = TaskOptions.Builder.url("/pollpayments"); taskOptions = taskOptions.etaMillis(eta); taskOptions = taskOptions.param(URLs.REQUEST_PARAM_POSTING_ID, postingId); taskOptions = taskOptions.param("task", "true"); TaskHandle queueHendle = queue.add(taskOptions); --~--~-~--~~~---~--~~ 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: Better or Tighter Google Check-out integration Please
I have found the following beta feature that might be a valid workaround: http://code.google.com/apis/checkout/developer/Google_Checkout_Beta_Polling_API.html On Aug 31, 12:29 am, victor wrote: > Looks like there is already an enhancement request for this > one:http://code.google.com/p/googleappengine/issues/detail?id=25&q=checko... > > On Aug 30, 9:19 am, David Fuelling wrote: > > > Currently the only solution here is to point Googlecheckoutto use > > SSL on the appengine domain for your app: > > >https://your-app-id.appspot.com/ > > > It's not ideal (and there's lots of clamoring for Google to support > > SSL on custom domains), but this solution should work for you since > > your customers/users aren't going to be seeing these notifications or > > the URL being used. > > > david > > > On Aug 30, 1:28 am, victor wrote: > > > > Please providebetterintegrationwith Google check-out. I am creating > > > a google app but I am having trouble integrating with Google Check-out > > > when it comes to supporting Notifications > > > --http://code.google.com/apis/checkout/developer/Google_Checkout_XML_AP > > > > From the Google Check-out requirements for processing > > > notifcation:"Your web service must be secured by SSL v3 or TLS and > > > must use a valid SSL certificate. The API callback URL that you use > > > for your production account must use port 443, which is the default > > > port for HTTPS. " --~--~-~--~~~---~--~~ 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: Better or Tighter Google Check-out integration Please
Looks like there is already an enhancement request for this one: http://code.google.com/p/googleappengine/issues/detail?id=25&q=checkout&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component On Aug 30, 9:19 am, David Fuelling wrote: > Currently the only solution here is to point Googlecheckoutto use > SSL on the appengine domain for your app: > > https://your-app-id.appspot.com/ > > It's not ideal (and there's lots of clamoring for Google to support > SSL on custom domains), but this solution should work for you since > your customers/users aren't going to be seeing these notifications or > the URL being used. > > david > > On Aug 30, 1:28 am, victor wrote: > > > Please provide better integration with Google check-out. I am creating > > a google app but I am having trouble integrating with Google Check-out > > when it comes to supporting Notifications > > --http://code.google.com/apis/checkout/developer/Google_Checkout_XML_AP > > > From the Google Check-out requirements for processing > > notifcation:"Your web service must be secured by SSL v3 or TLS and > > must use a valid SSL certificate. The API callback URL that you use > > for your production account must use port 443, which is the default > > port for HTTPS. " --~--~-~--~~~---~--~~ 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] Better or Tighter Google Check-out integration Please
Please provide better integration with Google check-out. I am creating a google app but I am having trouble integrating with Google Check-out when it comes to supporting Notifications -- http://code.google.com/apis/checkout/developer/Google_Checkout_XML_API_Notification_API.html#Receiving_and_Processing_Notifications. >From the Google Check-out requirements for processing notifcation:"Your web service must be secured by SSL v3 or TLS and must use a valid SSL certificate. The API callback URL that you use for your production account must use port 443, which is the default port for HTTPS. " --~--~-~--~~~---~--~~ 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: Which is the faster way in finding an entity??
getObjectbyId is faster On Aug 19, 6:03 am, mar_novice wrote: > I need you opinions and suggestions on this 2 kinds of implementation > in finding if an entity is > not in the datastore and doing a task if it is not in the datastore. > > 1. use getObjectbyID > > try { > Object object = pm.getObjectbyId(Object.class, "some-key"); > // since it is already in the datastore, do nothing > } catch (JDOObjectNotFoundException e){ > // since it is not in the datastore, do task > task(); > } > > 2. use query > > String query = "select from " + Object.class.getName() + > " where id == idParam parameters String > idParam"; > > List object = (List) pm.newQuery(query).execute > ("some-key"); > > if (object.isEmpty()){ > //since it is not in the datastore, do task > task(); > } > > I heard that using getObjectbyId is faster but it is inside the try- > catch block... My goal is to do task if the object is not in the > datastore. And when the object is not in the datastore, it will throw > an exception and we know that catching an exception takes more time > and processing compared to an if -else block in the sample 2, but we > used a pm.newQuery(), which is based from my understanding, slower > compared to pm.getObjectbyId(). > > So people, what do you think??? > > -mar_novice --~--~-~--~~~---~--~~ 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: Cold start in google app engine java
I am guessing it happens when you update your app to a different version? On Aug 19, 5:25 am, mar_novice wrote: > When does acoldstarthappen in google app engine java?? --~--~-~--~~~---~--~~ 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: class evolution -- Problem Solved
I have resolved this issue. The field that I was initially trying to add was of "int" type. I changed this to "Integer" type and all is well. Thank you all for your responses. On Aug 17, 7:27 pm, victor wrote: > It looks like "@Persistent(nullValue=NullValue.DEFAULT)" is not > supported: > > java.lang.UnsupportedOperationException: Default values not supported > at org.datanucleus.store.appengine.DatastoreProperty.setDefaultable > (DatastoreProperty.java:128) > > On Aug 17, 3:35 pm, datanucleus wrote: > > > > It looks like I have some missing parameters in the > > > @Persistentannotation? I was thinking it would be the "nullValue" > > > parameter but it does not seem to be the case. > > > nullValue as "default" perhaps. Doesn't mean that GAE/J supports it > > (yet) --~--~-~--~~~---~--~~ 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: class evolution
It looks like "@Persistent(nullValue=NullValue.DEFAULT)" is not supported: java.lang.UnsupportedOperationException: Default values not supported at org.datanucleus.store.appengine.DatastoreProperty.setDefaultable (DatastoreProperty.java:128) On Aug 17, 3:35 pm, datanucleus wrote: > > It looks like I have some missing parameters in the > > @Persistentannotation? I was thinking it would be the "nullValue" > > parameter but it does not seem to be the case. > > nullValue as "default" perhaps. Doesn't mean that GAE/J supports it > (yet) --~--~-~--~~~---~--~~ 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: class evolution
I tried what you suggested and I get the following exception: Datastore entity with kind ...has a null property named voteDownCount. This property is mapped to ..., which cannot accept null values. It looks like I have some missing parameters in the @Persistentannotation? I was thinking it would be the "nullValue" parameter but it does not seem to be the case. Does anyone know what would this be? Thanks! On Aug 16, 11:48 pm, Mujtaba Hassan wrote: > This issue has been discussed on the forum. > > Just add your the new field in the ClassA and start your development, the > old records will store null associated with the new field. > > On Mon, Aug 17, 2009 at 8:30 AM, victor wrote: > > > This seems to be a common use case but I cannot seem to find the > > answer to this in the forum. Let us say I have defined a persistent > > class: > > class A { > > private String field; > > //get set methods removed for clarity > > } > > > Supposed that this class worked out fine and I have already deployed > > my app and populated my tables with it. But then it just occurred to > > me that I have to add a new field: > > class A { > > private String field; > > private String newField; > > //get set methods removed for clarity > > } > > > What would be the best way to tackle this scenario? Can I just extend > > "A" instead? -- but class extension seems to be poorly supported in > > this JDO implementation. How do I migrate my old class versions? > > > I was thinking of putting class version on my classes and everytime I > > update it I would do the following steps: > > 1) Change the version ID of the class > > 2) Migrate all the tables in the table by retrieving it, changing the > > version ID, resave it with the new class. > > > Any pointers would be helpful. > > > 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] class evolution
This seems to be a common use case but I cannot seem to find the answer to this in the forum. Let us say I have defined a persistent class: class A { private String field; //get set methods removed for clarity } Supposed that this class worked out fine and I have already deployed my app and populated my tables with it. But then it just occurred to me that I have to add a new field: class A { private String field; private String newField; //get set methods removed for clarity } What would be the best way to tackle this scenario? Can I just extend "A" instead? -- but class extension seems to be poorly supported in this JDO implementation. How do I migrate my old class versions? I was thinking of putting class version on my classes and everytime I update it I would do the following steps: 1) Change the version ID of the class 2) Migrate all the tables in the table by retrieving it, changing the version ID, resave it with the new class. Any pointers would be helpful. 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 -~--~~~~--~~--~--~---