You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/06/20 07:31:01 UTC
struts git commit: WW-4793 Reduces overhead with looking for a
FileManager
Repository: struts
Updated Branches:
refs/heads/master 93dba5bce -> 05f3b7a9b
WW-4793 Reduces overhead with looking for a FileManager
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/05f3b7a9
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/05f3b7a9
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/05f3b7a9
Branch: refs/heads/master
Commit: 05f3b7a9b9623b1e2c1378fa37c55b1d64bad20d
Parents: 93dba5b
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Jun 20 09:30:51 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Jun 20 09:30:51 2017 +0200
----------------------------------------------------------------------
.../com/opensymphony/xwork2/FileManager.java | 2 +-
.../util/fs/DefaultFileManagerFactory.java | 25 ++++++++++++++++++--
2 files changed, 24 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/05f3b7a9/core/src/main/java/com/opensymphony/xwork2/FileManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/FileManager.java b/core/src/main/java/com/opensymphony/xwork2/FileManager.java
index 5c6806b..ef46567 100644
--- a/core/src/main/java/com/opensymphony/xwork2/FileManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/FileManager.java
@@ -13,7 +13,7 @@ public interface FileManager {
/**
* Enables configs reloading when config file changed
*
- * @param reloadingConfigs {@link XWorkConstants#RELOAD_XML_CONFIGURATION}
+ * @param reloadingConfigs {@link org.apache.struts2.StrutsConstants#STRUTS_CONFIGURATION_XML_RELOAD}
*/
void setReloadingConfigs(boolean reloadingConfigs);
http://git-wip-us.apache.org/repos/asf/struts/blob/05f3b7a9/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java b/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java
index c19385f..60512ca 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/fs/DefaultFileManagerFactory.java
@@ -2,11 +2,11 @@ package com.opensymphony.xwork2.util.fs;
import com.opensymphony.xwork2.FileManager;
import com.opensymphony.xwork2.FileManagerFactory;
-import com.opensymphony.xwork2.XWorkConstants;
import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.inject.Inject;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.apache.struts2.StrutsConstants;
import java.util.HashSet;
import java.util.Set;
@@ -19,6 +19,7 @@ public class DefaultFileManagerFactory implements FileManagerFactory {
private static final Logger LOG = LogManager.getLogger(DefaultFileManagerFactory.class);
private boolean reloadingConfigs;
+ private FileManagerHolder fileManagerHolder;
private FileManager systemFileManager;
private Container container;
@@ -32,20 +33,27 @@ public class DefaultFileManagerFactory implements FileManagerFactory {
this.container = container;
}
- @Inject(value = XWorkConstants.RELOAD_XML_CONFIGURATION, required = false)
+ @Inject(value = StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, required = false)
public void setReloadingConfigs(String reloadingConfigs) {
this.reloadingConfigs = Boolean.parseBoolean(reloadingConfigs);
}
public FileManager getFileManager() {
+ if (fileManagerHolder != null) {
+ return fileManagerHolder.getFileManager();
+ }
+
FileManager fileManager = lookupFileManager();
if (fileManager != null) {
LOG.debug("Using FileManager implementation [{}]", fileManager.getClass().getSimpleName());
fileManager.setReloadingConfigs(reloadingConfigs);
+ fileManagerHolder = new FileManagerHolder(fileManager);
return fileManager;
}
+
LOG.debug("Using default implementation of FileManager provided under name [system]: {}", systemFileManager.getClass().getSimpleName());
systemFileManager.setReloadingConfigs(reloadingConfigs);
+ fileManagerHolder = new FileManagerHolder(systemFileManager);
return systemFileManager;
}
@@ -77,4 +85,17 @@ public class DefaultFileManagerFactory implements FileManagerFactory {
return null;
}
+ private static class FileManagerHolder {
+
+ private final FileManager fileManager;
+
+ public FileManagerHolder(FileManager fileManager) {
+ this.fileManager = fileManager;
+ }
+
+ public FileManager getFileManager() {
+ return fileManager;
+ }
+ }
+
}