Re: [appengine-java] Google Plugin for Eclipse 1.3 plans
I think it all sounds very good, I've been waiting for these functionalities. Right now, I'm not using maven in my projects, manually copying jars from target folders of other maven projects, to the WEB-INF/lib folder of the GAE app... Sucks !! I'll give feedback when I've tried the preview. Cheers, :-) Kasper On Thu, Feb 4, 2010 at 8:52 PM, Keith Platfoot kplatf...@google.com wrote: Hey all, Many of you have reported incompatibilities between the Google Plugin for Eclipse and other build systems/project structures, most notably Maven and J2EE/Dynamic Web Projects. For example, issue 1515 (Eclipse plugin requires fixed location for war directory) has collected well over 100 stars, and a similar one in the GWT issue tracker has attracted a lot of attention as well. Based on this feedback, we've decided to try and address as many of the incompatibilities as possible with our upcoming 1.3 release of the plugin. To deliver on that goal, we want to share with your our current plans, and also let you know about a preview build that we'll make available so you can test the changes for yourself and give us feedback before final release. Our plans for the 1.3 release include 4 changes designed to make integration with Maven and J2EE projects easier: The WAR directory can now be configured to be any project-relative path (e.g. src/main/webapp if you're using Maven). You'll also be able to specify whether that directory is source-only (typical Maven/J2EE scenario), or whether it should also function as the WAR output directory from which to run/debug or deploy to App Engine. If your WAR directory is input and output (which will remain the default for new Web App projects), the plugin will manage synchronizing the contents of WEB-INF/lib WEB-INF/classes with your project's build path and compiled output. Otherwise, we'll leave your WAR source directory alone and you'll need to specify your WAR output location when launching, deploying, etc (the plugin will remember the location once you set it the first time). The Web App launch configuration UI is being redesigned to allow you to see, and if necessary change, any of the launch arguments. Previously, we were waiting until launch time to set many of these arguments based on heuristics that were invisible and inaccessible to you. Now you'll be in full control of how your projects get launched. Also, we're adding the capability to automatically migrate your launch configurations when necessary, for example, updating the -javaagent flag when changing App Engine SDKs. GWT/App Engine projects will no longer require our SDK library on the classpath. This means Maven users will be able to pull in JAR files from their M2 repository as they're accustomed to and the plugin won't mind a bit. The severity of any problem marker generated by the plugin will be fully customizable via an Errors/Warnings preference page (similar to the Java Errors/Warnings page), letting you specify either Error, Warning, or Ignore. We'll also be including a few smaller features and bug fixes as well. What does everyone think about the 4 changes outlined above? We've been testing the plugin against various Maven and J2EE configurations to try to ensure that we've eliminated the most critical roadblocks. However, we're very interested in also having you folks take it for a spin before the official release date (slated for next month). We're not quite ready yet, but stay tuned for a 1.3 preview build to be made available hopefully in a few weeks. We'll distribute it as a zip file for dropin installation so it will come with the standard warnings and caveats (use with a clean Eclipse install and workspace, use at your risk, etc.). However, it will hopefully give you a chance to give us any last-minute feedback about our changes before the final release. Thanks, Keith -- 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. -- 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.
Re: [appengine-java] how to share local_db.bin to others
I'd be curious to know what's the format of that database bin file. That would perhaps be interesting to be able to create such local dbs easily, for creating data fixtures for our unit and/or integration tests. Is it some form of SQLLite, or some custom object serialization? Guillaume On Wed, Feb 3, 2010 at 14:23, dreamy dreamy2c...@gmail.com wrote: we have 4 membership in google app engine project. we code in local Machine and manager source by subverion, in devolop ,when some one create a record(eg.create a company object) but others membership can't use this company object. is there any way to share local_db.bin to each other or all membership use same local_db.bin ? -- 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. -- Guillaume Laforge Groovy Project Manager Head of Groovy Development at SpringSource http://www.springsource.com/g2one -- 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: cron / app versions confusion
Filed as a bug: http://code.google.com/p/googleappengine/issues/detail?id=2725 v. On Feb 3, 1:34 pm, phraktle phrak...@gmail.com wrote: I have no issues with data store or memcache partitioning/versioning. I know how to evolve the schema, how to deal with serialization changes, applying version numbering schemes if needed, etc... My problem is specific to cron jobs: GAE does not dispatch the cron invocation to it's proper place. If your active production version simply does not have the implementation yet, your cron job scheduled in the test version will still be active, but yielding a bunch of errors - instead of calling the implementation in test. Regards, Viktor On Feb 3, 1:17 pm, John Patterson jdpatter...@gmail.com wrote: Cron jobs always execute against the default version. A feature I use a lot to compartmentalise data with Twig is versioned datastores. It basically just prepends a version number to the Entity kind for all instances stored or queried with that session. So effectively you have multiple separate name spaces in a single datastore. This is very handy for upgrading your data schema or starting fresh with a new data version when I update my entire database. Its undocumented at the moment but if you want more details let me know. http://code.google.com/p/twig-persist/ On 3 Feb 2010, at 17:57, Kasper Hansen wrote: Hi, It's the same with data. Data is for all versions. I don't want to say this is a bug, because in some regards it's nice that data is shared, but in other situations it's not. It would be nice to be able to compartmentalize an app somehow. :-) Kasper On Wed, Feb 3, 2010 at 11:40 AM, phraktle phrak...@gmail.com wrote: Hi, There appears to be a bug - or at least undesired behavior - regarding cron jobs. Let's say there's a test and a production (the active) version of an app. If you add a cron job to cron.xml in test, one would expect that job is bound to that specific version. Instead what I'm seeing: - the cron job is listed in the GAE administrator for both apps (ie. regardless of what you select in the app version dropdown) - the cron gets invoked on production - and fails, as that version doesn't have the implementation For me, this is clearly a problem. The documentation does not specify how versions relate to cron jobs... however, the docs imply it's okay to run several distinct versions, even with different runtimes (ie. mixing java and python). Based on this the only reasonable approach would be to bind the cron job to the specific version of the app. One also needs this separation to be able to test the cron job's operation before going live. If running the cron job in the test version is not desired (eg. if the same job is already active in production), the developer should simply disable it in that version (either in cron.xml, or by detect the current version in the job implementation). Regards, Viktor -- 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 athttp://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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group athttp://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] Re: is google app engine a real-time cloud?
would someone be so kind to give me an answer. thanks On Feb 4, 1:20 am, smile laugh uni...@gmail.com wrote: I have another question. to a unique field which cannot have same value, before I insert a record , I must check if there is same value in the field. it seems impossible to make the constraint in cloud platform. because when I insert the record , maybe other one can insert the same record at the same time. that will break uniqueness of the field . thanks in advance laughsmile -- 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] owned relationship ? - could it be a bug
This is a similar posting I had posted earlier incorrect number of entities returned. Hopefully, this posting may be more clean and I will get some replies. I have two classes 1) A 2) B A is in 1 to many relationship with B @PersistenceCapable(identityType = IdentityType.APPLICATION) public class A { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key=gae.encoded-pk, value=true) private String id; @Persistent @Extension(vendorName = datanucleus, key=gae.pk-name, value=true) private String name; } @PersistenceCapable(identityType = IdentityType.APPLICATION) public class B { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String id; @Persistent @Extension(vendorName = datanucleus, key = gae.pk-name, value = true) private String name; } public class BTest extends JDOTestCase { public void testB() throws Exception { A a = new A(); a.setName(a); B b = new B(); b.setName(b); a.getBList().add(b); beginTxn(); pm.makePersistent(a); a = pm.getObjectById(A.class, a.getId()); assertEquals(1, a.getBList().size()); commitTxn(); B b1 = new B(); b1.setName(b1); beginTxn(); pm.makePersistent(b1); b1 = pm.getObjectById(B.class, b1.getId()); b1.getId(); commitTxn(); } } The test fails at the last line b1.getId() If any of B entity is in relation with A earlier, then another entity of B cannot be persisted by itself. If I move the 2nd transaction to the beginning, the test passes. -Aswath -- 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: owned relationship ? - could it be a bug
B list is missing from class A in my previous posting. Here is the complete A class... @PersistenceCapable(identityType = IdentityType.APPLICATION) public class A { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key=gae.encoded-pk, value=true) private String id; @Persistent @Extension(vendorName = datanucleus, key=gae.pk-name, value=true) private String name; @Persistent private ListB bList ; } On Fri, Feb 5, 2010 at 4:32 PM, aswath satrasala aswath.satras...@gmail.com wrote: This is a similar posting I had posted earlier incorrect number of entities returned. Hopefully, this posting may be more clean and I will get some replies. I have two classes 1) A 2) B A is in 1 to many relationship with B @PersistenceCapable(identityType = IdentityType.APPLICATION) public class A { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key=gae.encoded-pk, value=true) private String id; @Persistent @Extension(vendorName = datanucleus, key=gae.pk-name, value=true) private String name; } @PersistenceCapable(identityType = IdentityType.APPLICATION) public class B { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String id; @Persistent @Extension(vendorName = datanucleus, key = gae.pk-name, value = true) private String name; } public class BTest extends JDOTestCase { public void testB() throws Exception { A a = new A(); a.setName(a); B b = new B(); b.setName(b); a.getBList().add(b); beginTxn(); pm.makePersistent(a); a = pm.getObjectById(A.class, a.getId()); assertEquals(1, a.getBList().size()); commitTxn(); B b1 = new B(); b1.setName(b1); beginTxn(); pm.makePersistent(b1); b1 = pm.getObjectById(B.class, b1.getId()); b1.getId(); commitTxn(); } } The test fails at the last line b1.getId() If any of B entity is in relation with A earlier, then another entity of B cannot be persisted by itself. If I move the 2nd transaction to the beginning, the test passes. -Aswath -- 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.
Re: [appengine-java] datacenter distribution policies?
Hi phracktle, Posts like this may be better suited to the google-appengine group, since they're not Java specific. On Thu, Feb 4, 2010 at 7:29 PM, phraktle phrak...@gmail.com wrote: Hi, Can the Google team please shed some light on the issue of multiple datacenters in various geographical locations pertaining GAE? I would like to understand what characteristics and what level of guarantees to expect from a GAE app, and didn't find any docs or posts on this... 1. Is static content delivered by a geographically distributed CDN? Would make sense for latency and international bandwidth costs. If you specify caching settings, yes, your content may be cached at the edges of our network. 2. Does GAE launch VMs of a single app in multiple datacenters? Same as above - latency would be quite bad for some geographical locations without this. No, currently we're single-homed, with failover. 3. If VMs are distributed, what's the deal with memcache? If it's distributed, does/can it split into distinct partitions? How does that affect atomic operations, such as increment, or things like grabTail? 4. If there's geographical distribution, how does it affect Datastore performance and latencies? My current (disappointing) impression based on latencies is that GAE VMs are not geographically distributed, based on the latencies. But would be good to get some clear information on this. In general, it would be quite useful to be able to monitor VMs better, eg. how many VM launches took place, where. This would provide more insight into the operation and performance of the app... (This may also be a stepping stone toward the pay to keep some VMs warm topic, an often requested feature - at least we could see ) Thanks, Viktor -- 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%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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.
Re: [appengine-java] how to share local_db.bin to others
http://code.google.com/appengine/docs/java/howto/unittesting.html#Writing_Datastore_Tests I wonder if your team members can share same test case and local_db.bin in each of your environment can have similar record. I just read it, so please try and advise if it work. Thanks -Chau On Wed, Feb 3, 2010 at 8:23 PM, dreamy dreamy2c...@gmail.com wrote: we have 4 membership in google app engine project. we code in local Machine and manager source by subverion, in devolop ,when some one create a record(eg.create a company object) but others membership can't use this company object. is there any way to share local_db.bin to each other or all membership use same local_db.bin ? -- 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%2bunsubscr...@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.
Re: [appengine-java] Re: can't send attachment via Java Mail API supported by GAE
Hi. I'm sorry for being not able to explain well. Please try the following sources. code MimeMessage msg = new MimeMessage(session); Multipart mp = new MimeMultipart(); //attachmentPart MimeBodyPart attachment = new MimeBodyPart(); attachment.setFileName(videoimage.jpeg); ByteArrayDataSource byteArrayDataSource = new ByteArrayDataSource(theByteArray, image/jpeg); javax.activation.DataHandler datahandler = new javax.activation.DataHandler(byteArrayDataSource); attachment.setDataHandler(datahandler); mp.addBodyPart(attachment); //MessagePart(body) MimeBodyPart body = new MimeBodyPart(); body.setText(Message_sample); //set message mp.addBodyPart(body); msg.setContent(mp); msg.setFrom(fromIaddress); // set from msg.addRecipient(Message.RecipientType.TO, toIaddress); // set to msg.setSubject(subject_sample); //set subject Transport.send(msg); /code I confirm that I received in Gmail. If it is useless in this method The value of theByteArray might have to be confirmed. thanks. 2010/2/5 Nehul neh...@gmail.com: Can you please explain what you mean? On Feb 4, 6:38 am, seleronm seler...@gmail.com wrote: Hi. I think that I can transmit if it is shape that stores msg and attachement in each Part Please try. thanks. Multi-Part Messages I can't send attachment (simple image file) to email but normal text email is working. code MimeMessage msg = new MimeMessage (session); Multipart mp = new MimeMultipart(); MimeBodyPart attachment = new MimeBodyPart(); attachment.setFileName(videoimage.jpeg); attachment.setContent(theByteArray, image/jpeg); attachment.setText(request.getParameter(msg)); mp.addBodyPart(attachment); msg.setContent(mp); msg.setFrom(new InternetAddress (neh...@gmail.com,Reply to)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(toe,1.3 users)); msg.setSubject(request.getParameter(subject)); Transport.send(msg); /code I am using GAE 1.3.0 for 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-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+ unsubscr...@googlegroups.com. For more options, visit this group athttp://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. -- 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: How to build a java desktop client for my hosted app engine application ?
I managed to hack together a Groovy script that seems to do the job. It has some hardcoded URLs and is pretty ugly, but it seems to work. On Feb 4, 9:28 pm, Sean Gilligan msgilli...@gmail.com wrote: That's a very helpful article. I used to to get a a Groovy client working. The only problem is that it doesn't seem to work with the local server which is currently preventing me from developing locally... On Feb 4, 12:32 pm, Ikai L (Google) ika...@google.com wrote: This article should help: http://krasserm.blogspot.com/2010/01/accessing-security-enabled-googl... On Mon, Feb 1, 2010 at 3:23 AM, Guwalani Mahendra guwalani.mahen...@gmail.com wrote: How to build a java desktop client for my hosted app engine application ? I have tried to write a code using google client login using that I could authenticate google account and got auth token. but how should I use this token to authenticate my app engine application thanks Mahendra -- 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 Enginehttp://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.
Re: [appengine-java] Re: vs-accounting.appspot.com - datastore viewer error
The issue is likely related to types that fail validation. Are you using Phone Number, Link property, or any other special properties? On Thu, Feb 4, 2010 at 7:25 PM, aswath satrasala aswath.satras...@gmail.com wrote: My application is running fine. I am still getting the datastore viewer error.What can we do in this scenario. How can we get support? -Aswath On Mon, Feb 1, 2010 at 12:36 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello GAE team, I am still not able to use the DataStore viewer for my app-id 'vs-accounting' Thanks -Aswath On Thu, Jan 28, 2010 at 11:08 AM, aswath satrasala aswath.satras...@gmail.com wrote: Local file: datastore-indexes !-- Used 2 times in query history -- datastore-index kind=Tenant ancestor=true source=auto property name=tenants_INTEGER_IDX direction=asc/ /datastore-index !-- Used 1 time in query history -- datastore-index kind=Party ancestor=true source=auto property name=partys_INTEGER_IDX direction=asc/ /datastore-index !-- Used 1 time in query history -- datastore-index kind=SecurityGroup ancestor=true source=auto property name=secGrpList_INTEGER_IDX direction=asc/ /datastore-index datastore-index kind=PartyRole ancestor=true source=auto property name=partyRoles_INTEGER_IDX direction=asc/ /datastore-index /datastore-indexes Production: Party partys_INTEGER_IDX ▲ Includes ancestors *Serving* PartyRole partyRoles_INTEGER_IDX ▲ Includes ancestors *Serving* SecurityGroup secGrpList_INTEGER_IDX ▲ Includes ancestors *Serving* Tenant tenants_INTEGER_IDX ▲ Includes ancestors 12hrs ago , the secGrpList_INTEGER_IDX was not shown on the production admin console. Now, it is showing up. The datastore viewer is still responding back error page. -Aswath On Thu, Jan 28, 2010 at 2:48 AM, Ikai L (Google) ika...@google.comwrote: What does you local indexes file look like? Can you post the indexes listed in your production admin console? On Tue, Jan 26, 2010 at 11:24 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello GAE team, Further observations made while testing the app. I am not able to write entities to the datastore. Upon examining the logs, I found the following error. com.veersoft.action.CreateTenantAction doCreate: com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found.. datastore-index kind=SecurityGroup ancestor=true source=manual property name=secGrpList_INTEGER_IDX direction=asc/ /datastore-index The application is fine on the local develpment server. -Aswath On Tue, Jan 26, 2010 at 8:51 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello, My app-id is vs-accounting. I login into appengine.google.com. I choose the above application. Then I click on the datastore viewer. I get the error Server Error A server error has occurred. Return to Applications screen » https://appengine.google.com/ -Aswath -- 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%2bunsubscr...@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 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.comgoogle-appengine-java%2bunsubscr...@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.comgoogle-appengine-java%2bunsubscr...@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 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
[appengine-java] Where to report server down time?
I tried to open http://folkertsfotografie.appspot.com and recieved Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it. several times. I followed the link to an app engine page, hoping that it would be a form to tell either Google or the author (me) that the application was down. Is this a frequent occurrence with AppEngine? Is there a log of application failures like this? Eventually, the application can up (with no change in code). My application is written in Grails with the AppEngine plugin. -- 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] Struts2 Project Gives This Error
This Message is only when deploying to appengine. On the PC, the GAE server runs fine. Uncaught exception from servlet java.lang.NullPointerException at org.apache.struts2.dispatcher.mapper.DefaultActionMapper.getUriFromActionMapping(DefaultActionMapper.java: 533) at org.apache.struts2.dispatcher.ServletActionRedirectResult.execute(ServletActionRedirectResult.java: 172) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java: 362) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 266) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java: 165) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java: 252) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java: 68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java: 122) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java: 195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java: 195) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java: 179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java: 75) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java: 94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java: 235) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java: 89) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java: 130) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java: 267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java: 126) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java: 138) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java: 87) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java: 165) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java: 164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java: 179) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java: 237) at
[appengine-java] Re: Getting the size of a http request?
Thanks, Ikai. For this to work, it seems like content-length should be set in the http headers of the request. If this is not set by the posting client, the question is whether there is a mechanism of detecting the number of bytes transferred (including header and URL bytes). On Jan 28, 4:31 am, Ikai L (Google) ika...@google.com wrote: Are there places where this isn't reliably set? In my servlet I am calling: int contentLength = request.getContentLength(); This works with the following form: form action=/content_length method=POST enctype=multipart/form-data input type=file name=somefile / input type=text name=sometext / input type=submit / /form On Mon, Jan 25, 2010 at 3:46 AM, armanuj arama...@gmail.com wrote: Hello, How can one get the byte size of a http request, esp. in the context of a Java servlet being used in the Google app. engine? Is there a way to do this where the 'Content-Length' is not set (or not reliably set) in the get/post headers? Appreciate your help in this. Thanks, Arun -- 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%2bunsubscr...@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 Enginehttp://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.
[appengine-java] Re: Getting the size of a http request?
One more clarification: in my get or post request, there is no file upload involved. I just want the total number of bytes transferred in a GET or a form-based POST request, and this is done by our custom client application (and not the browser). Thanks, Arun On Jan 28, 4:31 am, Ikai L (Google) ika...@google.com wrote: Are there places where this isn't reliably set? In my servlet I am calling: int contentLength = request.getContentLength(); This works with the following form: form action=/content_length method=POST enctype=multipart/form-data input type=file name=somefile / input type=text name=sometext / input type=submit / /form On Mon, Jan 25, 2010 at 3:46 AM, armanuj arama...@gmail.com wrote: Hello, How can one get the byte size of a http request, esp. in the context of a Java servlet being used in the Google app. engine? Is there a way to do this where the 'Content-Length' is not set (or not reliably set) in the get/post headers? Appreciate your help in this. Thanks, Arun -- 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%2bunsubscr...@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 Enginehttp://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.
[appengine-java] maven + GAE + Spring
Hi, I am building a maven+GAE+Spring project, i have a problem: it seems that GAE plugin ignores eclipse multiple projects as defined in the .classpath and .project I have to run mvn install (create jars) and eclipse:eclipse (copy jars to project-web/WEB-INF/war/) after every change in any resources outside of project-web. can anyone advice? Thanks, Omri -- 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] Persisting polymorphic classes using the low level API or Objectify
Hi, I am developing an application that requires persisting of different object categories that are all subclasses of a specific type. Say I have a super class Vehicle and two subclasses Car extends Vehicle and Ship extends Vehicle. Ideally what I would like to do is to be able to query across all Vehicle objects as well as Car and Ship objects separately. It looks like the PolyModel class from the app engine Python API does this ( http://code.google.com/appengine/docs/python/datastore/polymodelclass.html or http://code.google.com/appengine/articles/polymodel.html) However, from the following thread it seems like this is not (yet?) supported in the Java API: http://groups.google.com/group/google-appengine-java/browse_thread/thread/99f9b92322ccf862/7b4a53d780a033cf?lnk=gstq=PolyModel+java#7b4a53d780a033cf To get around this *limitation* I do something like this class Vehicle { String id; *String vehicleType;* // indicates what the vehicle type is, eg: Car / Ship. *Text vehicleData;* // a blob of text that is a String representation of a JSONObject that contains info specific to a vehicle type. } I am aware that one immediate flaw in my approach is that you cannot query by vehicleType specific fields contained in the vehicleData blob. This is * *NOT** important for my current app (I only need to query across vehicle properties but the view on the client side depends on the vehicleType). However, I am interested in knowing if it is possible to get around this? The front end for my app uses GWT and basically what it does is it gets Vehicle objects via RPC and triggers the corresponding presenter view based on the vehicleType. Each presenter in turn knows what to do with the corresponding vehicleData JSON blob. I am really not sure if this is a good approach and am wondering if there are any best practices when it comes to persisting polymorphic class hierarchies. Am currently using Objectify (http://code.google.com/p/objectify-appengine/) for persistence but there doesn't seem to be any built-in support for polymorphism as yet. Thanks, Krishna -- 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.
Re: [appengine-java] Re: Incorrect number of entities returned
Any chance you can post all the code? This way we can just load it up in our development environment of choice and run it. On Thu, Feb 4, 2010 at 7:21 PM, aswath satrasala aswath.satras...@gmail.com wrote: Any help here... Thanks. On Wed, Feb 3, 2010 at 5:35 PM, aswath satrasala aswath.satras...@gmail.com wrote: I did further investigation on my unittest (code is pasted in my previous email). The second transaction block is not persisting the SecurityGroup Entity. If I add the following line with in txn block, securityGroup = pm.getObjectById(SecurityGroup.class, securityGroup.getId()); I see the following in testresults file Testcase: testSecurityGroupNotBelongToTenant took 0.239 sec Caused an ERROR The key value passed to construct a SingleFieldIdentity of type class javax.jdo.identity.StringIdentity for class class com.veersoft.security.SecurityGroup is null. -Aswath On Wed, Feb 3, 2010 at 12:11 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello Anything wrong here. I have two classes Tenant and SecurityGroup. * Create Tenant * Create SecurityGroup * Add SecurityGroup to Tenant * Persist. * Create another SecurityGroup entity. * Persist When I query the datastore for SecurityGroup entities, I get back one entity instead of two. Any ideas? Following is the code for the two classes. @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Tenant { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key=gae.encoded-pk, value=true) private String id; @Persistent @Extension(vendorName = datanucleus, key=gae.pk-name, value=true) private String name; @Persistent private ListSecurityGroup secGrpList = new ArrayListSecurityGroup(); } @PersistenceCapable(identityType = IdentityType.APPLICATION) public class SecurityGroup { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String id; @Persistent @Extension(vendorName = datanucleus, key = gae.pk-name, value = true) private String name; } Thanks On Thu, Jan 28, 2010 at 5:14 PM, aswath satrasala aswath.satras...@gmail.com wrote: I have the following unittest code. I am persisting two SecurityGroup entities, one as a child of Tenant and one entity not having any parent. beginTxn(); Tenant tenant = new Tenant(); SecurityGroup securityGroup = new SecurityGroup(); securityGroup.setName(PARTYMGRADMIN); tenant.getSecGrpList().add(securityGroup); pm.makePersistent(tenant); commitTxn(); beginTxn(); securityGroup = new SecurityGroup(); securityGroup.setName(PARTYMGRADMIN1); pm.makePersistent(securityGroup); commitTxn(); beginTxn(); Query q = pm.newQuery(SecurityGroup.class); ListSecurityGroup results = (ListSecurityGroup) q.execute(); assertEquals(2, results.size()); commitTxn(); I get results.size() as one. I am expecting the results.size() as two -Aswath -- 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%2bunsubscr...@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 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.
Re: [appengine-java] Re: Getting the size of a http request?
It's not going to be pretty, but you can manually get the size using either getInputStream() or getReader() and just iterating until you get to the end, incrementing your count by your buffer size each time, then counting the final result: http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletRequest.html On Fri, Feb 5, 2010 at 3:37 AM, armanuj arun_rama...@yahoo.com wrote: One more clarification: in my get or post request, there is no file upload involved. I just want the total number of bytes transferred in a GET or a form-based POST request, and this is done by our custom client application (and not the browser). Thanks, Arun On Jan 28, 4:31 am, Ikai L (Google) ika...@google.com wrote: Are there places where this isn't reliably set? In my servlet I am calling: int contentLength = request.getContentLength(); This works with the following form: form action=/content_length method=POST enctype=multipart/form-data input type=file name=somefile / input type=text name=sometext / input type=submit / /form On Mon, Jan 25, 2010 at 3:46 AM, armanuj arama...@gmail.com wrote: Hello, How can one get the byte size of a http request, esp. in the context of a Java servlet being used in the Google app. engine? Is there a way to do this where the 'Content-Length' is not set (or not reliably set) in the get/post headers? Appreciate your help in this. Thanks, Arun -- 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%2bunsubscr...@googlegroups.com google-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%252bunsubscr...@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 Enginehttp:// 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.comgoogle-appengine-java%2bunsubscr...@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 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.
[appengine-java] Re: Google Plugin for Eclipse 1.3 plans
This sounds like a good plan and I look forward to testing the new plug-in. - Philip On Feb 4, 2:52 pm, Keith Platfoot kplatf...@google.com wrote: Hey all, Many of you have reported incompatibilities between the Google Plugin for Eclipse and other build systems/project structures, most notably Maven and J2EE/Dynamic Web Projects. For example, issue 1515 (Eclipse plugin requires fixed location for war directory)http://code.google.com/p/googleappengine/issues/detail?id=1515 has collected well over 100 stars, and a similar one in the GWT issue tracker has attracted a lot of attention as well. Based on this feedback, we've decided to try and address as many of the incompatibilities as possible with our upcoming 1.3 release of the plugin. To deliver on that goal, we want to share with your our current plans, and also let you know about a preview build that we'll make available so you can test the changes for yourself and give us feedback before final release. Our plans for the 1.3 release include 4 changes designed to make integration with Maven and J2EE projects easier: 1. The WAR directory can now be configured to be *any* project-relative path (e.g. src/main/webapp if you're using Maven). You'll also be able to specify whether that directory is source-only (typical Maven/J2EE scenario), or whether it should also function as the WAR output directory from which to run/debug or deploy to App Engine. If your WAR directory is input *and* output (which will remain the default for new Web App projects), the plugin will manage synchronizing the contents of WEB-INF/lib WEB-INF/classes with your project's build path and compiled output. Otherwise, we'll leave your WAR source directory alone and you'll need to specify your WAR output location when launching, deploying, etc (the plugin will remember the location once you set it the first time). 2. The Web App launch configuration UI is being redesigned to allow you to see, and if necessary change, *any* of the launch arguments. Previously, we were waiting until launch time to set many of these arguments based on heuristics that were invisible and inaccessible to you. Now you'll be in full control of how your projects get launched. Also, we're adding the capability to automatically migrate your launch configurations when necessary, for example, updating the -javaagent flag when changing App Engine SDKs. 3. GWT/App Engine projects will no longer require our SDK library on the classpath. This means Maven users will be able to pull in JAR files from their M2 repository as they're accustomed to and the plugin won't mind a bit. 4. The severity of any problem marker generated by the plugin will be fully customizable via an Errors/Warnings preference page (similar to the Java Errors/Warnings page), letting you specify either Error, Warning, or Ignore. We'll also be including a few smaller features and bug fixes as well. What does everyone think about the 4 changes outlined above? We've been testing the plugin against various Maven and J2EE configurations to try to ensure that we've eliminated the most critical roadblocks. However, we're very interested in also having you folks take it for a spin before the official release date (slated for next month). We're not quite ready yet, but stay tuned for a 1.3 preview build to be made available hopefully in a few weeks. We'll distribute it as a zip file for dropin installationhttp://code.google.com/eclipse/docs/install-from-zip.html so it will come with the standard warnings and caveats (use with a clean Eclipse install and workspace, use at your risk, etc.). However, it will hopefully give you a chance to give us any last-minute feedback about our changes before the final release. Thanks, Keith -- 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.
Re: [appengine-java] Persisting polymorphic classes using the low level API or Objectify
Hi Shrikrishna , Im not sure about Objectify but Twig supports storing and retrieving Polymorphic references. Your example could be persisted out-of-the- box with no extra configuration. Also Twig does handle querying on VehicleType - although you say that this is not yet a requirement. Currently to query across all vehicle types you would need to issue multiple queries and join them. But this is simple even when your results are sorted using the support class SortedMergeIterator. BTW, to fully support polymorphic queries is actually quite a simple extension that I just haven't had the need for yet and so haven't written. If you were willing to hack a patch I would be happy to give you some pointers where to start. http://code.google.com/p/twig-persist/ John On 5 Feb 2010, at 18:45, Shrikrishna Shrin wrote: Hi, I am developing an application that requires persisting of different object categories that are all subclasses of a specific type. Say I have a super class Vehicle and two subclasses Car extends Vehicle and Ship extends Vehicle. Ideally what I would like to do is to be able to query across all Vehicle objects as well as Car and Ship objects separately. It looks like the PolyModel class from the app engine Python API does this ( http://code.google.com/appengine/docs/python/datastore/polymodelclass.html or http://code.google.com/appengine/articles/polymodel.html) However, from the following thread it seems like this is not (yet?) supported in the Java API: http://groups.google.com/group/google-appengine-java/browse_thread/thread/99f9b92322ccf862/7b4a53d780a033cf?lnk=gstq=PolyModel+java#7b4a53d780a033cf To get around this *limitation* I do something like this class Vehicle { String id; String vehicleType; // indicates what the vehicle type is, eg: Car / Ship. Text vehicleData; // a blob of text that is a String representation of a JSONObject that contains info specific to a vehicle type. } I am aware that one immediate flaw in my approach is that you cannot query by vehicleType specific fields contained in the vehicleData blob. This is *NOT* important for my current app (I only need to query across vehicle properties but the view on the client side depends on the vehicleType). However, I am interested in knowing if it is possible to get around this? The front end for my app uses GWT and basically what it does is it gets Vehicle objects via RPC and triggers the corresponding presenter view based on the vehicleType. Each presenter in turn knows what to do with the corresponding vehicleData JSON blob. Am currently using Objectify (http://code.google.com/p/objectify-appengine/ ) for persistence but there doesn't seem to be any built-in support for polymorphism as yet. Thanks, Krishna -- 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.
Re: [appengine-java] Re: vs-accounting.appspot.com - datastore viewer error
You have an empty property of type e-mail, and that makes the datastore viewer unhappy. You need to either use a different type that can be non-empty (like String), or have non-empty e-mails. On Thu, Feb 4, 2010 at 10:25 PM, aswath satrasala aswath.satras...@gmail.com wrote: My application is running fine. I am still getting the datastore viewer error.What can we do in this scenario. How can we get support? -Aswath On Mon, Feb 1, 2010 at 12:36 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello GAE team, I am still not able to use the DataStore viewer for my app-id 'vs-accounting' Thanks -Aswath On Thu, Jan 28, 2010 at 11:08 AM, aswath satrasala aswath.satras...@gmail.com wrote: Local file: datastore-indexes !-- Used 2 times in query history -- datastore-index kind=Tenant ancestor=true source=auto property name=tenants_INTEGER_IDX direction=asc/ /datastore-index !-- Used 1 time in query history -- datastore-index kind=Party ancestor=true source=auto property name=partys_INTEGER_IDX direction=asc/ /datastore-index !-- Used 1 time in query history -- datastore-index kind=SecurityGroup ancestor=true source=auto property name=secGrpList_INTEGER_IDX direction=asc/ /datastore-index datastore-index kind=PartyRole ancestor=true source=auto property name=partyRoles_INTEGER_IDX direction=asc/ /datastore-index /datastore-indexes Production: Party partys_INTEGER_IDX ▲ Includes ancestors *Serving* PartyRole partyRoles_INTEGER_IDX ▲ Includes ancestors *Serving* SecurityGroup secGrpList_INTEGER_IDX ▲ Includes ancestors *Serving* Tenant tenants_INTEGER_IDX ▲ Includes ancestors 12hrs ago , the secGrpList_INTEGER_IDX was not shown on the production admin console. Now, it is showing up. The datastore viewer is still responding back error page. -Aswath On Thu, Jan 28, 2010 at 2:48 AM, Ikai L (Google) ika...@google.comwrote: What does you local indexes file look like? Can you post the indexes listed in your production admin console? On Tue, Jan 26, 2010 at 11:24 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello GAE team, Further observations made while testing the app. I am not able to write entities to the datastore. Upon examining the logs, I found the following error. com.veersoft.action.CreateTenantAction doCreate: com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found.. datastore-index kind=SecurityGroup ancestor=true source=manual property name=secGrpList_INTEGER_IDX direction=asc/ /datastore-index The application is fine on the local develpment server. -Aswath On Tue, Jan 26, 2010 at 8:51 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello, My app-id is vs-accounting. I login into appengine.google.com. I choose the above application. Then I click on the datastore viewer. I get the error Server Error A server error has occurred. Return to Applications screen » https://appengine.google.com/ -Aswath -- 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%2bunsubscr...@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 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.comgoogle-appengine-java%2bunsubscr...@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.comgoogle-appengine-java%2bunsubscr...@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
[appengine-java] Are you using multiple app versions and a mixture of java and python in GAE?
You can essentially gain the ability to deploy multiple applications around a single datastore if you deploy multiple versions of your app that have different code from each other. I'm curious as to how many of you are doing this and how positive your experience has been so far. Right now, we have a lot of data processing code written in Java that we could easily split up into at least a couple of applications that run in the background and don't need to be synchronous with the user interface. I'm considering leaving that all in Java and then writing the user interface in a separate Django or Gaelyk app to minimize boot times of all the various apps. I'd love to hear a bit of your story if you're deploying multiple codebases for a single datastore... 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-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.
Re: [appengine-java] Are you using multiple app versions and a mixture of java and python in GAE?
Hi, I split my original app into an admin app and a user app for exactly the reason you gave - reduced start up time. In my case it more than halved the load time of the public facing app. I share code between the two Eclipse projects using symlinks to the source folders. This saves a lot of time keeping the code synced and works well with the Eclipse plugins one-app-per-project concept. Because I am still refining my data model I need to upgrade the data a lot which is time consuming. So I bump up the schema version number (a Twig feature) upload just the updated admin app and process the data in the new format. When thats complete - maybe 8 hours later - I update the live version of the user app to use the new schema version number. John On 6 Feb 2010, at 02:42, Houston startup coder wrote: You can essentially gain the ability to deploy multiple applications around a single datastore if you deploy multiple versions of your app that have different code from each other. I'm curious as to how many of you are doing this and how positive your experience has been so far. Right now, we have a lot of data processing code written in Java that we could easily split up into at least a couple of applications that run in the background and don't need to be synchronous with the user interface. I'm considering leaving that all in Java and then writing the user interface in a separate Django or Gaelyk app to minimize boot times of all the various apps. I'd love to hear a bit of your story if you're deploying multiple codebases for a single datastore... 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 . -- 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.
Re: [appengine-java] Re: production memcache grabTail namespace isolation broken
Hey Viktor, I've been doing a bunch of research on this and it turns out my original post was incorrect. Unlike the version of Memcached that is out in the wild, the version of Memcached being used for App Engine *does* provide namespaced partitioning and nested namespace partitioning, with LRU expiration implemented both globally and per namespace (not 100% sure about namespaces deeper than root + 1). What this allows is constant time namespace flushing, among other security features. This is the mechanism that allows App Engine developers to all use Memcache without trampling over each others' data and is more sophisticated than prefixing a key - allowing us to track usage per user without have to iterate over a key range. I'm going to file a bug internally against this mirroring your bug report. It's possible we just haven't exposed the interface for nested LRU grabTail correctly. I'll update the external bug if I hear anything. On Thu, Feb 4, 2010 at 1:17 AM, phraktle phrak...@gmail.com wrote: Hi Ikai, Any updates? (I see there's a mention of adding grabTail in the 1.3.1 release notes - though it has been there in 1.3.0 already) In the meantime, I have implemented the queue with a head/tail pointer, using the increment call... This works, but if grabTail worked as advertised, that would be more elegant. Regards, Viktor On Feb 2, 7:28 pm, Ikai L (Google) ika...@google.com wrote: That's interesting. Let me follow up with the team to try to understand how this is supposed to work. On Tue, Feb 2, 2010 at 12:05 AM, phraktle phrak...@gmail.com wrote: Plus, it's working okay in the development server :) V. On Feb 2, 9:03 am, phraktle phrak...@gmail.com wrote: Hi, In this case grabTail would be quite useless, as one cannot really construct queues with it (ie. it would just force removing items from all namespaces that wouldn't even expire otherwise). The documentation also implies that there's a separate LRU list per namespace, which does make sense, but is not what's happening in production: http://code.google.com/appengine/docs/java/javadoc/com/google/appengi .. .) Grabs (atomically get and delete) items off the tail of LRU list. This can be used to implement queue system with high throughput and low latency, but low reliability. Current namespace should be set and not empty for the service. For each namespace memcache maintains a separate LRU list. Regards, Viktor On Feb 1, 9:22 pm, Ikai L (Google) ika...@google.com wrote: I'll raise the issue with some other members of the team, but it seems like this is working as expected. A memcache namespace is nothing more than a prefix applied to a memcache key. There's no true partitioning mechanism within memcache. grabTail simply returns the item that would be expired by the LRU mechanism if memcache needed more space. There isn't a different queue per namespace, only a queue for global expirations. On Mon, Feb 1, 2010 at 4:29 AM, phraktle phrak...@gmail.com wrote: Hi, On production, grabTail returns objects from other namespaces. This is a significant problem that makes grabTail (thus queue-like usage) unusable. I filed this as a bug, with a very simple example here: http://code.google.com/p/googleappengine/issues/detail?id=2706 Can you please look into this? I don't even see a workaround that I can implement in the meantime... Thanks, Viktor -- 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%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B 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 Enginehttp:// 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.comgoogle-appengine-java%2bunsubscr...@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 Enginehttp://
[appengine-java] Re: datacenter distribution policies?
Hi, Thanks. I have filed an enhancement request to support multiple datacenters. Please vote if you'd like to see improved latencies :) http://code.google.com/p/googleappengine/issues/detail?id= GAE apps are currently pinned to one datacenter (with failover). Please provide an option for VMs in multiple locations in the world to keep request latencies low. Current round-trip times of requests are really high from many locations (on a simple http ping ~100ms in the US, ~200ms in EU - presumably higher from Asia). Presumably this would also reduce bandwidth costs for Google. This may introduce some new consistency issues to be aware of (eg. memcache would need to split, the DS eventual consistency may become more eventual, etc), but would still be quite simple to manage for developers. (As a simpler workaround, being able to configure the geographical location for an app would be helpful - at least one could partition the app by geography with different URLs). Thanks, Viktor On Feb 5, 1:42 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi phracktle, Posts like this may be better suited to the google-appengine group, since they're not Java specific. On Thu, Feb 4, 2010 at 7:29 PM, phraktle phrak...@gmail.com wrote: Hi, Can the Google team please shed some light on the issue of multiple datacenters in various geographical locations pertaining GAE? I would like to understand what characteristics and what level of guarantees to expect from a GAE app, and didn't find any docs or posts on this... 1. Is static content delivered by a geographically distributed CDN? Would make sense for latency and international bandwidth costs. If you specify caching settings, yes, your content may be cached at the edges of our network. 2. Does GAE launch VMs of a single app in multiple datacenters? Same as above - latency would be quite bad for some geographical locations without this. No, currently we're single-homed, with failover. 3. If VMs are distributed, what's the deal with memcache? If it's distributed, does/can it split into distinct partitions? How does that affect atomic operations, such as increment, or things like grabTail? 4. If there's geographical distribution, how does it affect Datastore performance and latencies? My current (disappointing) impression based on latencies is that GAE VMs are not geographically distributed, based on the latencies. But would be good to get some clear information on this. In general, it would be quite useful to be able to monitor VMs better, eg. how many VM launches took place, where. This would provide more insight into the operation and performance of the app... (This may also be a stepping stone toward the pay to keep some VMs warm topic, an often requested feature - at least we could see ) Thanks, Viktor -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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.
Re: [appengine-java] Re: queue task timeout
This must be it since timeout occurs only when multiple tasks are fired at the same time. thanks, -aj On Thu, Feb 4, 2010 at 6:11 PM, cowper iamco...@gmail.com wrote: I believe that this may be due to the fact that the URL you are requesting is on the local SDK server, which is single threaded and as you are already using the only thread for the original request you get the timeout ... On Feb 1, 11:23 pm, AJ Chen ajc...@web2express.org wrote: I'm using queued tasks to fetch feeds, one feed per task. each task takes about a couple of seconds. but, the tasks get unexpected timeout easily with the following error message. any idea how task timeout happens? is it possible to control the timeout period? thanks, Feb 2, 2010 7:00:54 AM org.quartz.core.JobRunShell run SEVERE: Job feed-fetch.task4 threw an unhandled Exception: com.google.apphosting.api.ApiProxy$ApplicationException: ApplicationError: 2: Received exception executing http method POST against URLhttp:// 127.0.0.1:/task:Timeout waiting for connection at com.google.appengine.api.urlfetch.dev.LocalURLFetchService.fetch(LocalURLFetchService.java:223) at com.google.appengine.api.labs.taskqueue.dev.UrlFetchJob.execute(UrlFetchJob.java:53) at com.google.appengine.api.labs.taskqueue.dev.UrlFetchJob.execute(UrlFetchJob.java:46) at org.quartz.core.JobRunShell.run(JobRunShell.java:195) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520) -aj-- AJ Chen, PhD Chair, Semantic Web SIG, sdforum.orghttp://web2express.org @web2express on twitter Palo Alto, CA, USA 650-283-4091 *Monitoring social media in real time* -- 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%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- AJ Chen, PhD Chair, Semantic Web SIG, sdforum.org http://web2express.org @web2express on twitter Palo Alto, CA, USA 650-283-4091 *Monitoring social media in real time* -- 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] Best option to scope transactions for fast RPC calls
I'm working on a RPC like service and I was wondering if I picked the right method to implement my classes that I'll be persisting to the datastore. Also note that I allow users to create their own keys used to lookup their data. Currently I have a MerchantClass Entity that holds my merchants and a DataWrapper Entity that holds the data they are looking for. Several merchants could be making requests at the same time, and as I understand it could cause (read/write) transactions to fail. I don't have any relationships at the moment because I don't want opening a Transaction on the MerchantClass Entity to prevent read/writes to the DataWrapper Entities. However, I do want to limit the scope in a more modular way to keep a merchants transactions from interfering with other merchants transactions. My overall goal is speed if I just need to keep it simple. Currently I can get a merchant and verify their status, then get their requested transaction without any problems. But I merchants can't register two transactions with the same key, and I'm a little worried that one merchant could interfere with the success of another merchants successful transactions. Thanks for input! -- 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] Russian documentation omission
i am reading docs in English and by accident took a look at russian version russian version seems to be missing XMPP part -- 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: Can't run the Java version of GAE.
On Feb 2, 11:38 pm, seleronm seler...@gmail.com wrote: Please refer to the following linkshttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044 Awesome, this has fixed it. Thank you very much! Please Try. thanks. -- Tordek -- 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] Problems with Spring and GAE.
Hi!! I'm a newbie with GAE... and I was just testing an web app we made and we got the following error: Failed startup of context com.google.apphosting.utils.jetty.runtimeappenginewebappcont...@d36ff3{/,/base/data/home/apps/askme-test/1.339677427231250825} java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355) at java.security.AccessController.checkPermission(AccessController.java:567) at java.lang.SecurityManager.checkPermission(Unknown Source) at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:45) at java.lang.ClassLoader.getSystemClassLoader(Unknown Source) at org.springframework.beans.BeanUtils.findEditorByConvention(BeanUtils.java:392) at org.springframework.beans.TypeConverterDelegate.findDefaultEditor(TypeConverterDelegate.java:360) at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:213) at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:104) at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:419) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:657) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:984) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:886) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:479) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:557) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:842) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:416) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:261) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:530) at org.mortbay.jetty.servlet.Context.startContext(Context.java:135) 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 com.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:5235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5233) 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:838) at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) at
Re: [appengine-java] dynamic class load
Thanks Ikai, but I wrote Groovy classes and whenever I save the file Eclipse wants to restart. Probably because of interpretation phase of Groovy classes. Anyway is there a way to handle the situation. Thanks in advance.. On Wed, Feb 3, 2010 at 2:43 AM, Ikai L (Google) ika...@google.com wrote: Yes. Run your server using Debug. Eclipse will automatically compile your classes on save. The only exception is certain types of changes to classes that need to be enhanced after compilation. Eclipse will prompt you to restart. On Tue, Feb 2, 2010 at 4:04 PM, javaness enesa...@gmail.com wrote: Hi; I am trying Java on Eclipse by App engine plugin. Is it possible to dynamically load classes? (maybe hot-swapping is the correct term) In an another project, I use Jetty plugin of Maven, and whenever I compile a java class, Jetty automically loads it. So no restart is needed on code modifications. Is that possible on Eclipse configuration of App Engine. 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-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Enes Akar http://www.linkedin.com/pub/enes-akar/7/835/3aa -- 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: production memcache grabTail namespace isolation broken
Hi Ikai, If the grab tail do intend to only return objects belong to a specific namespace, it will be nice if the memchace clear all function only delete objects in a specific namespace as well. At first I thought the clear all don't respect namespace is due to memcache implementation constraint. But if grab tail can respect namespace, there's no reason why clear all can't respect namespace right? It will be very helpful if we can flush a specific type of objects (that belong to same namespace) in memcache. Right now we either flush everything or maintain a set of keys and do a delete all. Thanks. On Feb 5, 12:04 pm, Ikai L (Google) ika...@google.com wrote: Hey Viktor, I've been doing a bunch of research on this and it turns out my original post was incorrect. Unlike the version of Memcached that is out in the wild, the version of Memcached being used for App Engine *does* provide namespaced partitioning and nested namespace partitioning, with LRU expiration implemented both globally and per namespace (not 100% sure about namespaces deeper than root + 1). What this allows is constant time namespace flushing, among other security features. This is the mechanism that allows App Engine developers to all use Memcache without trampling over each others' data and is more sophisticated than prefixing a key - allowing us to track usage per user without have to iterate over a key range. I'm going to file a bug internally against this mirroring your bug report. It's possible we just haven't exposed the interface for nested LRU grabTail correctly. I'll update the external bug if I hear anything. On Thu, Feb 4, 2010 at 1:17 AM, phraktle phrak...@gmail.com wrote: Hi Ikai, Any updates? (I see there's a mention of adding grabTail in the 1.3.1 release notes - though it has been there in 1.3.0 already) In the meantime, I have implemented the queue with a head/tail pointer, using the increment call... This works, but if grabTail worked as advertised, that would be more elegant. Regards, Viktor On Feb 2, 7:28 pm, Ikai L (Google) ika...@google.com wrote: That's interesting. Let me follow up with the team to try to understand how this is supposed to work. On Tue, Feb 2, 2010 at 12:05 AM, phraktle phrak...@gmail.com wrote: Plus, it's working okay in the development server :) V. On Feb 2, 9:03 am, phraktle phrak...@gmail.com wrote: Hi, In this case grabTail would be quite useless, as one cannot really construct queues with it (ie. it would just force removing items from all namespaces that wouldn't even expire otherwise). The documentation also implies that there's a separate LRU list per namespace, which does make sense, but is not what's happening in production: http://code.google.com/appengine/docs/java/javadoc/com/google/appengi .. .) Grabs (atomically get and delete) items off the tail of LRU list. This can be used to implement queue system with high throughput and low latency, but low reliability. Current namespace should be set and not empty for the service. For each namespace memcache maintains a separate LRU list. Regards, Viktor On Feb 1, 9:22 pm, Ikai L (Google) ika...@google.com wrote: I'll raise the issue with some other members of the team, but it seems like this is working as expected. A memcache namespace is nothing more than a prefix applied to a memcache key. There's no true partitioning mechanism within memcache. grabTail simply returns the item that would be expired by the LRU mechanism if memcache needed more space. There isn't a different queue per namespace, only a queue for global expirations. On Mon, Feb 1, 2010 at 4:29 AM, phraktle phrak...@gmail.com wrote: Hi, On production, grabTail returns objects from other namespaces. This is a significant problem that makes grabTail (thus queue-like usage) unusable. I filed this as a bug, with a very simple example here: http://code.google.com/p/googleappengine/issues/detail?id=2706 Can you please look into this? I don't even see a workaround that I can implement in the meantime... Thanks, Viktor -- 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%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B 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
Re: [appengine-java] maven + GAE + Spring
By GAE plugin are you referring to the Maven GAE plugin or the Google flugin for Eclipse? Anyhow, a while ago I blogged about Eclipse, GAE and Maven working nicely together at http://hamandeggs.wordpress.com/2010/01/26/how-to-gae-eclipse-maven/ But if your issue is more related to the multiproject structure, I'm afraid I can't help you much, since I'm not really familiar with that. Regards, Hannu On 5.2.2010 19:15, Omri Cohen wrote: Hi, I am building a maven+GAE+Spring project, i have a problem: it seems that GAE plugin ignores eclipse multiple projects as defined in the .classpath and .project I have to run mvn install (create jars) and eclipse:eclipse (copy jars to project-web/WEB-INF/war/) after every change in any resources outside of project-web. can anyone advice? Thanks, Omri -- 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. -- 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.
Re: [appengine-java] dynamic class load
Ah, you're using Groovy. Unfortunately, I'm not a Groovy expert, so I couldn't say. The Groovy FAQ seems to indicate that you can do this: http://docs.codehaus.org/display/GROOVY/Eclipse+Plugin+2.0.0+FAQ#EclipsePlugin2.0.0FAQ-Q.Doesitsupportincrementalcompilation%3F On Fri, Feb 5, 2010 at 3:36 PM, enes akar enesa...@gmail.com wrote: Thanks Ikai, but I wrote Groovy classes and whenever I save the file Eclipse wants to restart. Probably because of interpretation phase of Groovy classes. Anyway is there a way to handle the situation. Thanks in advance.. On Wed, Feb 3, 2010 at 2:43 AM, Ikai L (Google) ika...@google.com wrote: Yes. Run your server using Debug. Eclipse will automatically compile your classes on save. The only exception is certain types of changes to classes that need to be enhanced after compilation. Eclipse will prompt you to restart. On Tue, Feb 2, 2010 at 4:04 PM, javaness enesa...@gmail.com wrote: Hi; I am trying Java on Eclipse by App engine plugin. Is it possible to dynamically load classes? (maybe hot-swapping is the correct term) In an another project, I use Jetty plugin of Maven, and whenever I compile a java class, Jetty automically loads it. So no restart is needed on code modifications. Is that possible on Eclipse configuration of App Engine. 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-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Enes Akar http://www.linkedin.com/pub/enes-akar/7/835/3aa -- 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%2bunsubscr...@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 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.
[appengine-java] Re: cron job - too many continues
I figured out what the problem is. The problem started when we turned on HTTPS for our app. I saw a posting in the Google App Engine group that too many continues and 302 is due to scheduled jobs will not follow redirects and the scheduled jobs use HTTP and gets redirected to HTTPS and it fails. http://groups.google.com/group/google-appengine/browse_frm/thread/8ad1d04a50deff53/ba7db7e75ec5e81a?lnk=gstq=cron+job+302#ba7db7e75ec5e81a Len On Feb 5, 9:38 am, lent lentakeu...@gmail.com wrote: Hello, The cron job that I have scheduled to run displays status: on time Too many continues And in the log all the cron jobs requests show a status of 302. What does Too many continues mean and how can I get the cron jobs back working again? Regards, Len -- 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.
Re: [appengine-java] Re: Incorrect number of entities returned
Hello Ikai, I posted all the code in a new thread. owned relationship ? - could it be a bugThanks -Aswath On Sat, Feb 6, 2010 at 12:13 AM, Ikai L (Google) ika...@google.com wrote: Any chance you can post all the code? This way we can just load it up in our development environment of choice and run it. On Thu, Feb 4, 2010 at 7:21 PM, aswath satrasala aswath.satras...@gmail.com wrote: Any help here... Thanks. On Wed, Feb 3, 2010 at 5:35 PM, aswath satrasala aswath.satras...@gmail.com wrote: I did further investigation on my unittest (code is pasted in my previous email). The second transaction block is not persisting the SecurityGroup Entity. If I add the following line with in txn block, securityGroup = pm.getObjectById(SecurityGroup.class, securityGroup.getId()); I see the following in testresults file Testcase: testSecurityGroupNotBelongToTenant took 0.239 sec Caused an ERROR The key value passed to construct a SingleFieldIdentity of type class javax.jdo.identity.StringIdentity for class class com.veersoft.security.SecurityGroup is null. -Aswath On Wed, Feb 3, 2010 at 12:11 PM, aswath satrasala aswath.satras...@gmail.com wrote: Hello Anything wrong here. I have two classes Tenant and SecurityGroup. * Create Tenant * Create SecurityGroup * Add SecurityGroup to Tenant * Persist. * Create another SecurityGroup entity. * Persist When I query the datastore for SecurityGroup entities, I get back one entity instead of two. Any ideas? Following is the code for the two classes. @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Tenant { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key=gae.encoded-pk, value=true) private String id; @Persistent @Extension(vendorName = datanucleus, key=gae.pk-name, value=true) private String name; @Persistent private ListSecurityGroup secGrpList = new ArrayListSecurityGroup(); } @PersistenceCapable(identityType = IdentityType.APPLICATION) public class SecurityGroup { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String id; @Persistent @Extension(vendorName = datanucleus, key = gae.pk-name, value = true) private String name; } Thanks On Thu, Jan 28, 2010 at 5:14 PM, aswath satrasala aswath.satras...@gmail.com wrote: I have the following unittest code. I am persisting two SecurityGroup entities, one as a child of Tenant and one entity not having any parent. beginTxn(); Tenant tenant = new Tenant(); SecurityGroup securityGroup = new SecurityGroup(); securityGroup.setName(PARTYMGRADMIN); tenant.getSecGrpList().add(securityGroup); pm.makePersistent(tenant); commitTxn(); beginTxn(); securityGroup = new SecurityGroup(); securityGroup.setName(PARTYMGRADMIN1); pm.makePersistent(securityGroup); commitTxn(); beginTxn(); Query q = pm.newQuery(SecurityGroup.class); ListSecurityGroup results = (ListSecurityGroup) q.execute(); assertEquals(2, results.size()); commitTxn(); I get results.size() as one. I am expecting the results.size() as two -Aswath -- 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%2bunsubscr...@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 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.comgoogle-appengine-java%2bunsubscr...@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] jdo query question
how do i do query with 4 params? query.setFilter( x x1 x x2 y y1 y y2 ); query.declareParameters( int x1, int x2, int y1, int y2 ); Object arr[] = new Integer[4]; arr[0] = Integer.valueOf( x1 ); arr[1] = Integer.valueOf( x2 ); arr[2] = Integer.valueOf( y1 ); arr[3] = Integer.valueOf( y2 ); ListLocation results = (ListLocation)query.executeWithArray( arr ); this gives me Exception -- 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] Unable to upload application - Total refill rate must not exceed 20 per second
hi, I'm unable to upload the application to GAE. Check logs Unable to update: java.io.IOException: Error posting to URL: http://appengine.google.com/api/queue/update?app_id=nsecharts-testversion=1; 400 Bad Request Invalid queue configuration. Total refill rate must not exceed 20 per second (is 24.0). at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 143) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 81) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 427) at com.google.appengine.tools.admin.AppVersionUpload.updateQueue(AppVersionUpload.java: 157) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 121) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) at com.google.appengine.tools.admin.AppCfg $UpdateAction.execute(AppCfg.java:521) at com.google.appengine.tools.admin.AppCfg.init(AppCfg.java:130) at com.google.appengine.tools.admin.AppCfg.init(AppCfg.java:58) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:54) com.google.appengine.tools.admin.AdminException: Unable to update app: Error posting to URL: http://appengine.google.com/api/queue/update?app_id=nsecharts-testversion=1; 400 Bad Request Invalid queue configuration. Total refill rate must not exceed 20 per second (is 24.0). at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 62) at com.google.appengine.tools.admin.AppCfg $UpdateAction.execute(AppCfg.java:521) at com.google.appengine.tools.admin.AppCfg.init(AppCfg.java:130) at com.google.appengine.tools.admin.AppCfg.init(AppCfg.java:58) at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:54) Caused by: java.io.IOException: Error posting to URL: http://appengine.google.com/api/queue/update?app_id=nsecharts-testversion=1; 400 Bad Request Invalid queue configuration. Total refill rate must not exceed 20 per second (is 24.0). at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 143) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 81) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 427) at com.google.appengine.tools.admin.AppVersionUpload.updateQueue(AppVersionUpload.java: 157) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 121) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) ... 4 more -- 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.
Re: [appengine-java] maven + GAE + Spring
thnaks for replying, i am using as a profile, including all needed GAE jars the problem is that i have to recreate internal project jars and copy them to you WEB-INF/war/lib folder. what is the standard way of integrating GAE to MVN? thanks, On Sat, Feb 6, 2010 at 2:13 AM, Hannu Leinonen hlein...@gmail.com wrote: By GAE plugin are you referring to the Maven GAE plugin or the Google flugin for Eclipse? Anyhow, a while ago I blogged about Eclipse, GAE and Maven working nicely together at http://hamandeggs.wordpress.com/2010/01/26/how-to-gae-eclipse-maven/ But if your issue is more related to the multiproject structure, I'm afraid I can't help you much, since I'm not really familiar with that. Regards, Hannu On 5.2.2010 19:15, Omri Cohen wrote: Hi, I am building a maven+GAE+Spring project, i have a problem: it seems that GAE plugin ignores eclipse multiple projects as defined in the .classpath and .project I have to run mvn install (create jars) and eclipse:eclipse (copy jars to project-web/WEB-INF/war/) after every change in any resources outside of project-web. can anyone advice? Thanks, Omri -- 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%2bunsubscr...@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.comgoogle-appengine-java%2bunsubscr...@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.