我已下载Google App Engine的源代码,我想更改此example中使用的某些方法(例如DatastoreService.put(Entity e)
)的行为:
import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import static com.google.appengine.api.datastore.FetchOptions.Builder.withLimit;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class LocalDatastoreTest {
private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
@Before
public void setUp() {
helper.setUp();
}
@After
public void tearDown() {
helper.tearDown();
}
// run this test twice to prove we're not leaking any state across tests
private void doTest() {
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
assertEquals(0, ds.prepare(new Query("yam")).countEntities(withLimit(10)));
ds.put(new Entity("yam"));
ds.put(new Entity("yam"));
assertEquals(2, ds.prepare(new Query("yam")).countEntities(withLimit(10)));
}
@Test
public void testInsert1() {
doTest();
}
@Test
public void testInsert2() {
doTest();
}
}
问题是我没有看到随源代码提供的build.xml文件对源.java
文件进行了任何编译。例如,当我向其中一个源文件添加一些垃圾并尝试使用ant dist
构建SDK时,它返回BUILD SUCCESSFUL而不是编译时错误。
我在哪里可以找到put(Entity e)方法的源文件?以及如何编译源代码?
答案 0 :(得分:0)
您无法对App Engine SDK进行任何更改。 SDK公开与App Engine及其数据存储区的内部操作直接相关并依赖于它的方法。您不应该单独从源代码编译SDK。