我已经下载了谷歌应用程序引擎的源代码,我想更改本例中使用的一些方法(例如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(实体e)方法的源文件?以及如何编译源代码?
您不能对App Engine SDK进行任何更改。SDK公开了与应用程序引擎及其数据存储的内部操作直接相关和依赖的方法。您不应该将SDK与源代码分开编译。