You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/09/08 21:50:10 UTC
svn commit: r995228 - in /tiles/sandbox/trunk:
tiles-request/tiles-request-api/
tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/
tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/
tiles-reques...
Author: apetrelli
Date: Wed Sep 8 19:50:09 2010
New Revision: 995228
URL: http://svn.apache.org/viewvc?rev=995228&view=rev
Log:
TILESSB-36
Refactored TilesFreemarkerServlet and moved to tiles-request-api.
Moved ClassUtil and relative classes in tiles-request-api.
Added:
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/
- copied from r992052, tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/reflect/
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/
- copied from r992052, tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/reflect/
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java (with props)
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/TilesFreemarkerServlet.java
- copied, changed from r992052, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/TilesFreemarkerServlet.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
- copied, changed from r992052, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/WebappClassTemplateLoader.java
tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/package.html
- copied unchanged from r992052, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/package.html
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java (with props)
Removed:
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/reflect/
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/reflect/
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/
Modified:
tiles/sandbox/trunk/tiles-request/tiles-request-api/pom.xml
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java
tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java
tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/CombinedBeanInfo.java
tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/util/CombinedBeanInfoTest.java
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java
tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/module/ModularTilesInitializer.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
tiles/sandbox/trunk/tiles3/tiles-mvel/src/main/java/org/apache/tiles/mvel/TilesContextVariableResolverFactory.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/web.xml
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/pom.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/pom.xml?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/pom.xml (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/pom.xml Wed Sep 8 19:50:09 2010
@@ -12,6 +12,12 @@
<name>Tiles request - API</name>
<description>API for the Tiles Request framework.</description>
<dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <version>1.5.8</version>
+ <optional>true</optional>
+ </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java?rev=995228&r1=992052&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java Wed Sep 8 19:50:09 2010
@@ -18,9 +18,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tiles.reflect;
+package org.apache.tiles.request.reflect;
-import org.apache.tiles.TilesException;
+import org.apache.tiles.request.RequestException;
/**
* Indicates that a method cannot be accessed.
@@ -28,7 +28,7 @@ import org.apache.tiles.TilesException;
* @version $Rev$ $Date$
* @since 2.1.0
*/
-public class CannotAccessMethodException extends TilesException {
+public class CannotAccessMethodException extends RequestException {
/**
* Constructor.
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java?rev=995228&r1=992052&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java Wed Sep 8 19:50:09 2010
@@ -18,9 +18,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tiles.reflect;
+package org.apache.tiles.request.reflect;
-import org.apache.tiles.TilesException;
+import org.apache.tiles.request.RequestException;
/**
* Indicates that an object cannot be instantiated.
@@ -28,7 +28,7 @@ import org.apache.tiles.TilesException;
* @version $Rev$ $Date$
* @since 2.1.0
*/
-public class CannotInstantiateObjectException extends TilesException {
+public class CannotInstantiateObjectException extends RequestException {
/**
* Constructor.
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java?rev=995228&r1=992052&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java Wed Sep 8 19:50:09 2010
@@ -18,7 +18,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tiles.reflect;
+package org.apache.tiles.request.reflect;
import java.beans.BeanInfo;
import java.beans.Introspector;
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java?rev=995228&r1=992052&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java Wed Sep 8 19:50:09 2010
@@ -19,10 +19,11 @@
* under the License.
*/
-package org.apache.tiles.reflect;
+package org.apache.tiles.request.reflect;
import static org.junit.Assert.*;
+import org.apache.tiles.request.reflect.CannotAccessMethodException;
import org.junit.Test;
/**
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java?rev=995228&r1=992052&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java Wed Sep 8 19:50:09 2010
@@ -19,10 +19,12 @@
* under the License.
*/
-package org.apache.tiles.reflect;
+package org.apache.tiles.request.reflect;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import org.apache.tiles.request.reflect.CannotInstantiateObjectException;
import org.junit.Test;
/**
Modified: tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java?rev=995228&r1=992052&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java Wed Sep 8 19:50:09 2010
@@ -19,7 +19,7 @@
* under the License.
*/
-package org.apache.tiles.reflect;
+package org.apache.tiles.request.reflect;
import static org.junit.Assert.*;
@@ -27,6 +27,8 @@ import java.beans.PropertyDescriptor;
import java.util.HashMap;
import java.util.Map;
+import org.apache.tiles.request.reflect.CannotInstantiateObjectException;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.junit.Test;
/**
@@ -42,7 +44,7 @@ public class ClassUtilTest {
private static final int MAP_SIZE = 3;
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#collectBeanInfo(java.lang.Class, java.util.Map)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#collectBeanInfo(java.lang.Class, java.util.Map)}.
*/
@Test
public void testCollectBeanInfo() {
@@ -67,7 +69,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#getClass(String, Class)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#getClass(String, Class)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test
@@ -77,7 +79,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#getClass(String, Class)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#getClass(String, Class)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test(expected=ClassNotFoundException.class)
@@ -86,7 +88,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#instantiate(String, boolean)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String, boolean)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test
@@ -96,7 +98,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#instantiate(String, boolean)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String, boolean)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test
@@ -105,7 +107,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#instantiate(String)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test(expected=CannotInstantiateObjectException.class)
@@ -114,7 +116,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#instantiate(String)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test(expected=CannotInstantiateObjectException.class)
@@ -123,7 +125,7 @@ public class ClassUtilTest {
}
/**
- * Test method for {@link org.apache.tiles.reflect.ClassUtil#instantiate(String)}.
+ * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String)}.
* @throws ClassNotFoundException If something goes wrong.
*/
@Test(expected=CannotInstantiateObjectException.class)
Added: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java?rev=995228&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java (added)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java Wed Sep 8 19:50:09 2010
@@ -0,0 +1,8 @@
+package org.apache.tiles.request.freemarker.servlet;
+
+import freemarker.template.TemplateModel;
+
+public interface SharedVariableFactory {
+
+ TemplateModel create();
+}
Propchange: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/TilesFreemarkerServlet.java (from r992052, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/TilesFreemarkerServlet.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/TilesFreemarkerServlet.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/TilesFreemarkerServlet.java&p1=tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/TilesFreemarkerServlet.java&r1=992052&r2=995228&rev=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/TilesFreemarkerServlet.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/TilesFreemarkerServlet.java Wed Sep 8 19:50:09 2010
@@ -19,13 +19,19 @@
* under the License.
*/
-package org.apache.tiles.freemarker.servlet;
+package org.apache.tiles.request.freemarker.servlet;
-import org.apache.tiles.freemarker.template.TilesFMModelRepository;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+import org.apache.tiles.request.reflect.ClassUtil;
import freemarker.cache.TemplateLoader;
-import freemarker.ext.beans.BeanModel;
-import freemarker.ext.beans.BeansWrapper;
import freemarker.ext.servlet.FreemarkerServlet;
import freemarker.template.Configuration;
@@ -37,14 +43,44 @@ import freemarker.template.Configuration
*/
public class TilesFreemarkerServlet extends FreemarkerServlet {
+ private static final long serialVersionUID = 4301098067909854507L;
+
+ public static String CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM =
+ "org.apache.tiles.request.freemarker.CUSTOM_SHARED_VARIABLE_FACTORIES";
+
+ private Map<String, SharedVariableFactory> name2variableFactory = new LinkedHashMap<String, SharedVariableFactory>();
+
+ @Override
+ public void init(ServletConfig config) throws ServletException {
+ String param = config.getInitParameter(CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM);
+ if (param != null) {
+ String[] couples = param.split("\\s*;\\s*");
+ for (int i=0; i < couples.length; i++) {
+ String[] couple = couples[i].split("\\s*,\\s*");
+ if (couple == null || couple.length != 2) {
+ throw new ServletException(
+ "Cannot parse custom shared variable partial init param: '"
+ + couples[i] + "'");
+ }
+ name2variableFactory.put(couple[0],
+ (SharedVariableFactory) ClassUtil.instantiate(couple[1]));
+ }
+ }
+ super.init(new ExcludingParameterServletConfig(config));
+ }
+
+ public void addSharedVariableFactory(String variableName, SharedVariableFactory factory) {
+ name2variableFactory.put(variableName, factory);
+ }
+
/** {@inheritDoc} */
@Override
protected Configuration createConfiguration() {
Configuration configuration = super.createConfiguration();
- BeanModel tilesBeanModel = new BeanModel(new TilesFMModelRepository(),
- BeansWrapper.getDefaultInstance());
- configuration.setSharedVariable("tiles", tilesBeanModel);
+ for (Map.Entry<String, SharedVariableFactory> entry : name2variableFactory.entrySet()) {
+ configuration.setSharedVariable(entry.getKey(), entry.getValue().create());
+ }
return configuration;
}
@@ -54,4 +90,71 @@ public class TilesFreemarkerServlet exte
protected TemplateLoader createTemplateLoader(String templatePath) {
return new WebappClassTemplateLoader(getServletContext());
}
+
+ private class ExcludingParameterServletConfig implements ServletConfig {
+
+ private ServletConfig config;
+
+ public ExcludingParameterServletConfig(ServletConfig config) {
+ this.config = config;
+ }
+
+ @Override
+ public String getServletName() {
+ return config.getServletName();
+ }
+
+ @Override
+ public ServletContext getServletContext() {
+ return config.getServletContext();
+ }
+
+ @Override
+ public String getInitParameter(String name) {
+ if (CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM.equals(name)) {
+ return null;
+ }
+ return config.getInitParameter(name);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public Enumeration getInitParameterNames() {
+ return new SkippingEnumeration(config.getInitParameterNames());
+ }
+
+ }
+
+ private static class SkippingEnumeration implements Enumeration<String> {
+
+ private Enumeration<String> enumeration;
+
+ private String next = null;
+
+ public SkippingEnumeration(Enumeration<String> enumeration) {
+ this.enumeration = enumeration;
+ updateNextElement();
+ }
+
+ @Override
+ public boolean hasMoreElements() {
+ return next != null;
+ }
+
+ @Override
+ public String nextElement() {
+ String retValue = next;
+ updateNextElement();
+ return retValue;
+ }
+
+ private void updateNextElement() {
+ String value = null;
+ while (this.enumeration.hasMoreElements()
+ && (value = this.enumeration.nextElement())
+ .equals(CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM));
+ next = value;
+ }
+
+ }
}
Copied: tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java (from r992052, tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/WebappClassTemplateLoader.java)
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java?p2=tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java&p1=tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/WebappClassTemplateLoader.java&r1=992052&r2=995228&rev=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/servlet/WebappClassTemplateLoader.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java Wed Sep 8 19:50:09 2010
@@ -19,7 +19,7 @@
* under the License.
*/
-package org.apache.tiles.freemarker.servlet;
+package org.apache.tiles.request.freemarker.servlet;
import java.io.IOException;
import java.io.Reader;
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/preparer/BasicPreparerFactory.java Wed Sep 8 19:50:09 2010
@@ -23,8 +23,8 @@ package org.apache.tiles.preparer;
import java.util.HashMap;
import java.util.Map;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java Wed Sep 8 19:50:09 2010
@@ -27,10 +27,10 @@ import org.apache.tiles.TilesContainer;
import org.apache.tiles.awareness.TilesContainerAware;
import org.apache.tiles.evaluator.AttributeEvaluatorFactory;
import org.apache.tiles.evaluator.AttributeEvaluatorFactoryAware;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.renderer.AttributeRenderer;
import org.apache.tiles.renderer.RendererFactory;
import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.apache.tiles.request.util.ApplicationContextAware;
/**
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/CombinedBeanInfo.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/CombinedBeanInfo.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/CombinedBeanInfo.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/util/CombinedBeanInfo.java Wed Sep 8 19:50:09 2010
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.tiles.reflect.ClassUtil;
+import org.apache.tiles.request.reflect.ClassUtil;
/**
* Contains the bean infos about one or more classes.
Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/util/CombinedBeanInfoTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/util/CombinedBeanInfoTest.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/util/CombinedBeanInfoTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/util/CombinedBeanInfoTest.java Wed Sep 8 19:50:09 2010
@@ -12,9 +12,9 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java Wed Sep 8 19:50:09 2010
@@ -32,9 +32,9 @@ import java.util.Map;
import javax.el.ELContext;
import javax.el.ELResolver;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.junit.Before;
import org.junit.Test;
Modified: tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java Wed Sep 8 19:50:09 2010
@@ -58,6 +58,7 @@ import org.apache.tiles.evaluator.Attrib
import org.apache.tiles.evaluator.BasicAttributeEvaluatorFactory;
import org.apache.tiles.factory.BasicTilesContainerFactory;
import org.apache.tiles.factory.TilesContainerFactoryException;
+import org.apache.tiles.freemarker.TilesSharedVariableFactory;
import org.apache.tiles.freemarker.renderer.FreeMarkerAttributeRenderer;
import org.apache.tiles.impl.mgmt.CachingTilesContainer;
import org.apache.tiles.locale.LocaleResolver;
@@ -80,6 +81,7 @@ import org.apache.tiles.renderer.impl.Ch
import org.apache.tiles.renderer.impl.DelegateAttributeRenderer;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.freemarker.servlet.TilesFreemarkerServlet;
import org.apache.tiles.request.velocity.render.VelocityRenderer;
import org.apache.tiles.request.velocity.render.VelocityRendererBuilder;
import org.apache.tiles.util.URLUtil;
@@ -140,6 +142,9 @@ public class CompleteAutoloadTilesContai
freemarkerRenderer.setParameter("template_update_delay", "0");
freemarkerRenderer.setParameter("default_encoding", "ISO-8859-1");
freemarkerRenderer.setParameter("number_format", "0.##########");
+ freemarkerRenderer.setParameter(
+ TilesFreemarkerServlet.CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM,
+ "tiles," + TilesSharedVariableFactory.class.getName());
freemarkerRenderer.commit();
rendererFactory.registerRenderer(FREEMARKER_RENDERER_NAME, freemarkerRenderer);
Modified: tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/module/ModularTilesInitializer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/module/ModularTilesInitializer.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/module/ModularTilesInitializer.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/module/ModularTilesInitializer.java Wed Sep 8 19:50:09 2010
@@ -34,8 +34,8 @@ import java.util.jar.Manifest;
import javax.servlet.ServletContext;
import org.apache.tiles.definition.DefinitionsFactoryException;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.apache.tiles.request.servlet.wildcard.WildcardServletApplicationContext;
import org.apache.tiles.startup.TilesInitializer;
import org.slf4j.Logger;
Added: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java?rev=995228&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java Wed Sep 8 19:50:09 2010
@@ -0,0 +1,18 @@
+package org.apache.tiles.freemarker;
+
+import org.apache.tiles.freemarker.template.TilesFMModelRepository;
+import org.apache.tiles.request.freemarker.servlet.SharedVariableFactory;
+
+import freemarker.ext.beans.BeanModel;
+import freemarker.ext.beans.BeansWrapper;
+import freemarker.template.TemplateModel;
+
+public class TilesSharedVariableFactory implements SharedVariableFactory {
+
+ @Override
+ public TemplateModel create() {
+ return new BeanModel(new TilesFMModelRepository(),
+ BeansWrapper.getDefaultInstance());
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/TilesSharedVariableFactory.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java Wed Sep 8 19:50:09 2010
@@ -34,12 +34,12 @@ import javax.servlet.http.HttpServletRes
import org.apache.tiles.Attribute;
import org.apache.tiles.freemarker.FreeMarkerTilesException;
-import org.apache.tiles.freemarker.servlet.TilesFreemarkerServlet;
import org.apache.tiles.impl.InvalidTemplateException;
import org.apache.tiles.renderer.impl.AbstractTypeDetectingAttributeRenderer;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
import org.apache.tiles.request.collection.IteratorEnumeration;
+import org.apache.tiles.request.freemarker.servlet.TilesFreemarkerServlet;
import org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse;
import org.apache.tiles.request.servlet.ServletRequest;
import org.apache.tiles.request.util.ApplicationContextAware;
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java Wed Sep 8 19:50:09 2010
@@ -20,8 +20,15 @@
*/
package org.apache.tiles.freemarker.renderer;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.classextension.EasyMock.createMock;
+import static org.easymock.classextension.EasyMock.createMockBuilder;
+import static org.easymock.classextension.EasyMock.replay;
+import static org.easymock.classextension.EasyMock.verify;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.io.PrintWriter;
Modified: tiles/sandbox/trunk/tiles3/tiles-mvel/src/main/java/org/apache/tiles/mvel/TilesContextVariableResolverFactory.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-mvel/src/main/java/org/apache/tiles/mvel/TilesContextVariableResolverFactory.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-mvel/src/main/java/org/apache/tiles/mvel/TilesContextVariableResolverFactory.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-mvel/src/main/java/org/apache/tiles/mvel/TilesContextVariableResolverFactory.java Wed Sep 8 19:50:09 2010
@@ -26,9 +26,9 @@ import java.lang.reflect.InvocationTarge
import java.lang.reflect.Method;
import org.apache.tiles.context.TilesRequestContextHolder;
-import org.apache.tiles.reflect.CannotAccessMethodException;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.reflect.CannotAccessMethodException;
import org.apache.tiles.util.CombinedBeanInfo;
import org.mvel2.integration.VariableResolver;
Modified: tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java Wed Sep 8 19:50:09 2010
@@ -38,10 +38,10 @@ import org.apache.tiles.Attribute;
import org.apache.tiles.AttributeContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
-import org.apache.tiles.reflect.CannotInstantiateObjectException;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.reflect.CannotInstantiateObjectException;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.apache.tiles.request.servlet.ServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java Wed Sep 8 19:50:09 2010
@@ -28,9 +28,9 @@ import javax.servlet.http.HttpServletRes
import org.apache.tiles.AttributeContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
-import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
+import org.apache.tiles.request.reflect.ClassUtil;
import org.apache.tiles.request.servlet.ServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/web.xml?rev=995228&r1=995227&r2=995228&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/web.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/webapp/WEB-INF/web.xml Wed Sep 8 19:50:09 2010
@@ -81,7 +81,7 @@
<!-- Standard Action Servlet Configuration -->
<servlet>
<servlet-name>freemarker</servlet-name>
- <servlet-class>org.apache.tiles.freemarker.servlet.TilesFreemarkerServlet</servlet-class>
+ <servlet-class>org.apache.tiles.request.freemarker.servlet.TilesFreemarkerServlet</servlet-class>
<!-- FreemarkerServlet settings: -->
<init-param>
@@ -110,6 +110,10 @@
<param-name>number_format</param-name>
<param-value>0.##########</param-value>
</init-param>
+ <init-param>
+ <param-name>org.apache.tiles.request.freemarker.CUSTOM_SHARED_VARIABLE_FACTORIES</param-name>
+ <param-value>tiles,org.apache.tiles.freemarker.TilesSharedVariableFactory</param-value>
+ </init-param>
<load-on-startup>5</load-on-startup>
</servlet>