Skip to content
Permalink
Browse files

Add persistence.xml to the war files (#293)

* Add persistence.xml to the war files
* Always use the DummyJpaTransactionManager

Use the DJTM until we get all of the dependencies set up for all of the
environments.

This shouldn't affect any of the unit tests, these use the
JpaTransactionManagerRule to set up a local database and connection.

This fixes the App Engine build.
  • Loading branch information...
mindhog committed Oct 7, 2019
1 parent e9ce389 commit ebc8d54f945065997d0ba03c13253ba590a1db1b
@@ -25,14 +25,19 @@ project.convention.plugins['war'].webAppDirName =

apply plugin: 'com.google.cloud.tools.appengine'

def coreResourcesDir = "${rootDir}/core/build/resources/main"

// Get the web.xml file for the service.
war {
webInf {
from "../../core/src/main/java/google/registry/env/common/${project.name}/WEB-INF"

from("${coreResourcesDir}/META-INF/persistence.xml") {
into "classes/META-INF"
}
}
}

def coreResourcesDir = "${rootDir}/core/build/resources/main"
war {
from("${coreResourcesDir}/google/registry/ui/html") {
include "*.html"
@@ -14,11 +14,8 @@

package google.registry.model.transaction;

import com.google.appengine.api.utils.SystemProperty;
import com.google.appengine.api.utils.SystemProperty.Environment.Value;
import com.google.common.annotations.VisibleForTesting;
import google.registry.model.ofy.DatastoreTransactionManager;
import google.registry.persistence.DaggerPersistenceComponent;

/** Factory class to create {@link TransactionManager} instance. */
// TODO: Rename this to PersistenceFactory and move to persistence package.
@@ -30,11 +27,13 @@
private TransactionManagerFactory() {}

private static JpaTransactionManager createJpaTransactionManager() {
if (SystemProperty.environment.value() == Value.Production) {
return DaggerPersistenceComponent.create().jpaTransactionManager();
} else {
return DummyJpaTransactionManager.create();
}
// TODO(shicong): There is currently no environment where we want to create a real JPA
// transaction manager here. The unit tests that require one are all set up using
// JpaTransactionManagerRule which launches its own PostgreSQL instance. When we actually have
// PostgreSQL tables in production, ensure that all of the test environments are set up
// correctly and restore the code that creates a JpaTransactionManager when
// RegistryEnvironment.get() != UNITTEST.
return DummyJpaTransactionManager.create();
}

private static TransactionManager createTransactionManager() {

0 comments on commit ebc8d54

Please sign in to comment.
You can’t perform that action at this time.