Author: apetrelli
Date: Thu Nov 6 02:06:51 2008
New Revision: 711829
URL: http://svn.apache.org/viewvc?rev=711829&view=rev
Log:
TILES-329
Removed self-injection from ChainedTilesContextFactory when using
"setFactories".
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesContextFactory.java
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/context/ChainedTilesContextFactoryTest.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesContextFactory.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesContextFactory.java?rev=711829&r1=711828&r2=711829&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesContextFactory.java
(original)
+++
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesContextFactory.java
Thu Nov 6 02:06:51 2008
@@ -71,7 +71,6 @@
*/
public void setFactories(List<TilesContextFactory> factories) {
this.factories = factories;
- injectParentTilesContextFactory();
}
/** [EMAIL PROTECTED] */
@@ -93,6 +92,10 @@
.forName(classNames[i]);
if (TilesContextFactory.class.isAssignableFrom(clazz)) {
TilesContextFactory factory = clazz.newInstance();
+ if (factory instanceof TilesRequestContextFactoryAware) {
+ ((TilesRequestContextFactoryAware) factory)
+ .setRequestContextFactory(this);
+ }
factories.add(factory);
} else {
throw new IllegalArgumentException("The class "
@@ -118,7 +121,6 @@
+ " default constructor", e);
}
}
- injectParentTilesContextFactory();
}
/** [EMAIL PROTECTED] */
@@ -156,16 +158,4 @@
return retValue;
}
-
- /**
- * Injects this context factory to all chained context factories.
- */
- protected void injectParentTilesContextFactory() {
- for (TilesContextFactory factory : factories) {
- if (factory instanceof TilesRequestContextFactoryAware) {
- ((TilesRequestContextFactoryAware) factory)
- .setRequestContextFactory(this);
- }
- }
- }
}
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java?rev=711829&r1=711828&r2=711829&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
(original)
+++
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/BasicTilesContainerFactory.java
Thu Nov 6 02:06:51 2008
@@ -30,6 +30,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.TilesContainer;
+import org.apache.tiles.awareness.TilesRequestContextFactoryAware;
import org.apache.tiles.context.ChainedTilesContextFactory;
import org.apache.tiles.context.TilesContextFactory;
import org.apache.tiles.definition.DefinitionsFactory;
@@ -136,13 +137,13 @@
CONTEXT_FACTORY_CHAIN_COUNT);
registerContextFactory(
"org.apache.tiles.servlet.context.ServletTilesContextFactory",
- factories);
+ factories, contextFactory);
registerContextFactory(
"org.apache.tiles.portlet.context.PortletTilesContextFactory",
- factories);
+ factories, contextFactory);
registerContextFactory(
"org.apache.tiles.jsp.context.JspTilesContextFactory",
- factories);
+ factories, contextFactory);
contextFactory.setFactories(factories);
}
@@ -151,14 +152,22 @@
*
* @param className The name of the class to instantiate.
* @param factories The list of factories to add to.
+ * @param parent The parent [EMAIL PROTECTED] TilesContextFactory}. If
null it won't be
+ * considered.
+ * @since 2.1.1
*/
protected void registerContextFactory(String className,
- List<TilesContextFactory> factories) {
+ List<TilesContextFactory> factories, TilesContextFactory parent) {
TilesContextFactory retValue = null;
try {
Class<? extends TilesContextFactory> clazz = Class.forName(
className).asSubclass(TilesContextFactory.class);
retValue = clazz.newInstance();
+ if (parent != null
+ && retValue instanceof TilesRequestContextFactoryAware) {
+ ((TilesRequestContextFactoryAware) retValue)
+ .setRequestContextFactory(parent);
+ }
} catch (ClassNotFoundException e) {
if (LOG.isDebugEnabled()) {
LOG.debug("Cannot find JspTilesContextFactory, ignoring
problem", e);
Modified:
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/context/ChainedTilesContextFactoryTest.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/context/ChainedTilesContextFactoryTest.java?rev=711829&r1=711828&r2=711829&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/context/ChainedTilesContextFactoryTest.java
(original)
+++
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/context/ChainedTilesContextFactoryTest.java
Thu Nov 6 02:06:51 2008
@@ -77,6 +77,7 @@
ChainedTilesContextFactory factory = new ChainedTilesContextFactory();
List<TilesContextFactory> factories = new
ArrayList<TilesContextFactory>();
RepeaterTilesContextFactory repFactory = new
RepeaterTilesContextFactory();
+ repFactory.setRequestContextFactory(factory);
factories.add(repFactory);
factory.setFactories(factories);
TilesRequestContext context = factory.createRequestContext(appContext,
requestContext);
Modified:
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java?rev=711829&r1=711828&r2=711829&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
(original)
+++
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/factory/BasicTilesContainerFactoryTest.java
Thu Nov 6 02:06:51 2008
@@ -276,7 +276,8 @@
ChainedTilesContextFactory contextFactory) {
List<TilesContextFactory> factories =
new ArrayList<TilesContextFactory>(1);
- TilesContextFactory factory = new
RepeaterTilesContextFactory(applicationContext);
+ RepeaterTilesContextFactory factory = new
RepeaterTilesContextFactory(applicationContext);
+ factory.setRequestContextFactory(contextFactory);
factories.add(factory);
contextFactory.setFactories(factories);
}
Modified:
tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java
URL:
http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java?rev=711829&r1=711828&r2=711829&view=diff
==============================================================================
---
tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java
(original)
+++
tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/factory/TestTilesContainerFactory.java
Thu Nov 6 02:06:51 2008
@@ -84,7 +84,9 @@
List<TilesContextFactory> factories = new
ArrayList<TilesContextFactory>(
CONTEXT_FACTORY_CHAIN_COUNT);
factories.add(new WildcardServletTilesContextFactory());
- factories.add(new JspTilesContextFactory());
+ JspTilesContextFactory factory = new JspTilesContextFactory();
+ factory.setRequestContextFactory(contextFactory);
+ factories.add(factory);
contextFactory.setFactories(factories);
}