Skip to content

Commit

Permalink
Add persistence.xml to the war files (#293)
Browse files Browse the repository at this point in the history
* 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 ebc8d54
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
7 changes: 6 additions & 1 deletion appengine_war.gradle
Expand Up @@ -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"
Expand Down
Expand Up @@ -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.
Expand All @@ -30,11 +27,13 @@ public class TransactionManagerFactory {
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() {
Expand Down

0 comments on commit ebc8d54

Please sign in to comment.