Author: mrdon
Date: Mon Nov 13 12:10:00 2006
New Revision: 474482
URL: http://svn.apache.org/viewvc?view=rev&rev=474482
Log:
Better handling of unloadable template engines
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/TemplateEngineManager.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/TemplateEngineManager.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/TemplateEngineManager.java?view=diff&rev=474482&r1=474481&r2=474482
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/TemplateEngineManager.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/TemplateEngineManager.java
Mon Nov 13 12:10:00 2006
@@ -29,6 +29,9 @@
import com.opensymphony.xwork2.inject.Container;
import com.opensymphony.xwork2.inject.Inject;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
/**
* The TemplateEngineManager will return a template engine for the template
*/
@@ -38,6 +41,8 @@
/** The default template extenstion is <code>ftl</code>. */
public static final String DEFAULT_TEMPLATE_TYPE = "ftl";
+ private static final Log LOG =
LogFactory.getLog(TemplateEngineManager.class);
+
Map templateEngines = new HashMap();
Container container;
String defaultTemplateType;
@@ -55,9 +60,15 @@
@Inject(StrutsConstants.STRUTS_TEMPLATE_ENGINES)
public void setTemplateEngines(String engines) {
if (engines != null) {
+ TemplateEngine eng = null;
String[] list = engines.split(",");
for (String name : list) {
- TemplateEngine eng =
container.getInstance(TemplateEngine.class, name);
+ try {
+ eng = container.getInstance(TemplateEngine.class, name);
+ } catch (Throwable t) {
+ LOG.info("Unable to load engine ("+name+") due to
"+t.getMessage());
+ continue;
+ }
if (eng != null) {
templateEngines.put(name, eng);
} else {