You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by jo...@apache.org on 2018/05/02 15:19:50 UTC
[3/4] cayenne git commit: Enhance CayenneFilter to allow setting a
custom DataDomain name in web.xml
Enhance CayenneFilter to allow setting a custom DataDomain name in web.xml
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/15b7f696
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/15b7f696
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/15b7f696
Branch: refs/heads/master
Commit: 15b7f696be1a0d70273674bbba56ae069f638b1a
Parents: cac0527
Author: John Huss <jo...@apache.org>
Authored: Wed May 2 10:01:39 2018 -0500
Committer: John Huss <jo...@gmail.com>
Committed: Wed May 2 10:16:04 2018 -0500
----------------------------------------------------------------------
.../cayenne/configuration/web/CayenneFilter.java | 4 +++-
.../cayenne/configuration/web/WebConfiguration.java | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/15b7f696/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
----------------------------------------------------------------------
diff --git a/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java b/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
index 2f158c5..11958b8 100644
--- a/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
+++ b/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
@@ -76,7 +76,9 @@ public class CayenneFilter implements Filter {
Collection<Module> modules = configAdapter.createModules();
modules.addAll(getAdditionalModules());
- ServerRuntime runtime = ServerRuntime.builder()
+ String dataDomainName = configAdapter.getDataDomainName();
+
+ ServerRuntime runtime = ServerRuntime.builder(dataDomainName)
.addConfigs(configurationLocations)
.addModules(modules).build();
http://git-wip-us.apache.org/repos/asf/cayenne/blob/15b7f696/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/WebConfiguration.java
----------------------------------------------------------------------
diff --git a/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/WebConfiguration.java b/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/WebConfiguration.java
index 6874e55..a65d913 100644
--- a/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/WebConfiguration.java
+++ b/cayenne-web/src/main/java/org/apache/cayenne/configuration/web/WebConfiguration.java
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.cayenne.configuration.web;
+import org.apache.cayenne.configuration.server.PropertyDataSourceFactory;
+import org.apache.cayenne.configuration.server.ServerRuntimeBuilder;
import org.apache.cayenne.di.Module;
import org.apache.cayenne.util.Util;
@@ -45,6 +47,7 @@ public class WebConfiguration {
static final String CONFIGURATION_LOCATION_PARAMETER = "configuration-location";
static final String EXTRA_MODULES_PARAMETER = "extra-modules";
+ static final String DATA_DOMAIN_NAME_PARAMETER = "data-domain-name";
private FilterConfig configuration;
@@ -100,6 +103,19 @@ public class WebConfiguration {
}
/**
+ * If you are using multiple configuration files (cayenne-*.xml) this allows you
+ * to specify a name for the data domain other than the default name "cayenne"
+ * (see {@value ServerRuntimeBuilder}).
+ * A specific data domain name is useful if you are setting database connection info
+ * using properties via {@link PropertyDataSourceFactory}.
+ * @return
+ */
+ public String getDataDomainName() {
+ String name = configuration.getInitParameter(DATA_DOMAIN_NAME_PARAMETER);
+ return name;
+ }
+
+ /**
* Creates and returns a collection of modules made of provided standard modules and
* extra custom modules specified via an optional "extra-modules" init parameter. The
* value of the parameter is expected to be a comma or space-separated list of class