I just wanted an instance of PersistenceManager to use in unit tests and I was able to setup it up. I'm not sure how to get it through LocalDatastoreServiceTestConfig. Anyway, it is working now as per the code I sent earlier.
Thanks > On Mon, Apr 26, 2010 at 1:33 PM, Max Ross (Google) < [email protected] <maxr%[email protected]>> wrote: > What aspect of the local datastore are you trying to configure that isn't > covered by LocalDatastoreServiceTestConfig()? I don't think you should have > to configure the ApiProxyLocal or the LocalServerEnvironment directly. > > > On Sun, Apr 25, 2010 at 3:40 PM, mvsoares <[email protected]> wrote: > >> Indeed, ApiProxyLocalImpl is not public anymore in newer versions of >> google app engine. >> >> Find below one solution to the problem: >> >> import java.io.File; >> import java.util.Properties; >> >> import javax.jdo.JDOHelper; >> import javax.jdo.PersistenceManager; >> import javax.jdo.PersistenceManagerFactory; >> >> import junit.framework.TestCase; >> >> import com.google.appengine.api.datastore.dev.LocalDatastoreService; >> import com.google.appengine.tools.development.ApiProxyLocal; >> import com.google.appengine.tools.development.ApiProxyLocalFactory; >> import com.google.appengine.tools.development.LocalServerEnvironment; >> import >> com.google.appengine.tools.development.testing.LocalServiceTestHelper; >> import >> com.google.appengine.tools.development.testing.LocalTaskQueueTestConfig; >> import com.google.apphosting.api.ApiProxy; >> >> public class BaseTest extends TestCase { >> >> private final LocalServiceTestHelper helper = >> new LocalServiceTestHelper(new LocalTaskQueueTestConfig()); >> >> protected PersistenceManagerFactory pmf; >> protected PersistenceManager pm; >> >> @Override >> public void tearDown() { >> helper.tearDown(); >> } >> >> @Override >> public void setUp() throws Exception { >> super.setUp(); >> helper.setUp(); >> Properties newProperties = new Properties(); >> >> newProperties.put("javax.jdo.PersistenceManagerFactoryClass", >> "org.datanucleus.store.appengine.jdo." >> + >> "DatastoreJDOPersistenceManagerFactory"); >> newProperties.put("javax.jdo.option.ConnectionURL", >> "appengine"); >> newProperties.put("javax.jdo.option.NontransactionalRead", >> "true"); >> newProperties.put("javax.jdo.option.NontransactionalWrite", >> "true"); >> newProperties.put("javax.jdo.option.RetainValues", "true"); >> >> newProperties.put("datanucleus.appengine.autoCreateDatastoreTxns", >> "true"); >> >> newProperties.put("datanucleus.appengine.autoCreateDatastoreTxns", >> "true"); >> pmf = >> JDOHelper.getPersistenceManagerFactory(newProperties); >> pm = pmf.getPersistenceManager(); >> ApiProxyLocalFactory factory = new ApiProxyLocalFactory(); >> ApiProxyLocal proxy = factory.create(new >> LocalServerEnvironment() { >> public void waitForServerToStart() >> throws >> InterruptedException { >> } >> public int getPort() { >> return 0; >> } >> public File getAppDir() { >> return new File("."); >> } >> public String getAddress() { >> return null; >> } >> }); >> proxy.setProperty( >> // >> LocalDatastoreService.BACKING_STORE_PROPERTY, >> LocalDatastoreService.NO_STORAGE_PROPERTY, >> Boolean.TRUE.toString()); >> ApiProxy.setDelegate(proxy); >> } >> >> } >> >> -- >> 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 >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-appengine-java%[email protected]> >> . >> 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
