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 2013/11/17 21:42:47 UTC
svn commit: r1542808 - in /struts/struts2/trunk:
core/src/main/java/org/apache/struts2/views/
core/src/main/java/org/apache/struts2/views/freemarker/
core/src/main/java/org/apache/struts2/views/velocity/
core/src/main/resources/ plugins/dojo/src/main/j...
Author: lukaszlenart
Date: Sun Nov 17 20:42:46 2013
New Revision: 1542808
URL: http://svn.apache.org/r1542808
Log:
WW-4243 Splits interface in to two to allow using different implementation
Added:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryDirectiveProvider.java
- copied, changed from r1535515, struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibrary.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryModelProvider.java
Removed:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibrary.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
struts/struts2/trunk/core/src/main/resources/struts-default.xml
struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java
struts/struts2/trunk/plugins/dojo/src/main/resources/struts-plugin.xml
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java?rev=1542808&r1=1542807&r2=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java Sun Nov 17 20:42:46 2013
@@ -70,15 +70,15 @@ import com.opensymphony.xwork2.util.Valu
/**
* The default Struts tag library
*/
-public class DefaultTagLibrary implements TagLibrary {
+public class DefaultTagLibrary implements TagLibraryDirectiveProvider, TagLibraryModelProvider {
- public Object getFreemarkerModels(ValueStack stack, HttpServletRequest req,
- HttpServletResponse res) {
+ public Object getModels(ValueStack stack, HttpServletRequest req,
+ HttpServletResponse res) {
return new StrutsModels(stack, req, res);
}
- public List<Class> getVelocityDirectiveClasses() {
+ public List<Class> getDirectiveClasses() {
Class[] directives = new Class[] {
ActionDirective.class,
BeanDirective.class,
Copied: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryDirectiveProvider.java (from r1535515, struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibrary.java)
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryDirectiveProvider.java?p2=struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryDirectiveProvider.java&p1=struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibrary.java&r1=1535515&r2=1542808&rev=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibrary.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryDirectiveProvider.java Sun Nov 17 20:42:46 2013
@@ -29,26 +29,16 @@ import javax.servlet.http.HttpServletRes
import com.opensymphony.xwork2.util.ValueStack;
/**
- * Provides Velocity and Freemarker implementation classes for a tag library
+ * Provides Velocity implementation classes for a tag library
*/
-public interface TagLibrary {
+public interface TagLibraryDirectiveProvider {
/**
- * Gets a Java object that contains getters for the tag library's Freemarker models.
- * Called once per Freemarker template processing.
- *
- * @param stack The current value stack
- * @param req The HTTP request
- * @param res The HTTP response
- * @return The Java object containing the Freemarker model getter methods
- */
- public Object getFreemarkerModels(ValueStack stack, HttpServletRequest req, HttpServletResponse res);
-
- /**
* Gets a list of Velocity directive classes for the tag library. Called once on framework
* startup when initializing Velocity.
*
* @return A list of Velocity directive classes
*/
- public List<Class> getVelocityDirectiveClasses();
+ public List<Class> getDirectiveClasses();
+
}
Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryModelProvider.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryModelProvider.java?rev=1542808&view=auto
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryModelProvider.java (added)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/TagLibraryModelProvider.java Sun Nov 17 20:42:46 2013
@@ -0,0 +1,45 @@
+/*
+ * $Id: TagLibrary.java 651946 2008-04-27 13:41:38Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.struts2.views;
+
+import com.opensymphony.xwork2.util.ValueStack;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Provides Freemarker implementation classes for a tag library
+ */
+public interface TagLibraryModelProvider {
+
+ /**
+ * Gets a Java object that contains getters for the tag library's Freemarker models.
+ * Called once per Freemarker template processing.
+ *
+ * @param stack The current value stack
+ * @param req The HTTP request
+ * @param res The HTTP response
+ * @return The Java object containing the Freemarker model getter methods
+ */
+ Object getModels(ValueStack stack, HttpServletRequest req, HttpServletResponse res);
+
+}
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java?rev=1542808&r1=1542807&r2=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java Sun Nov 17 20:42:46 2013
@@ -47,7 +47,7 @@ import freemarker.template.TemplateModel
import freemarker.template.utility.StringUtil;
import org.apache.struts2.StrutsConstants;
import org.apache.struts2.views.JspSupportServlet;
-import org.apache.struts2.views.TagLibrary;
+import org.apache.struts2.views.TagLibraryModelProvider;
import org.apache.struts2.views.util.ContextUtil;
import javax.servlet.GenericServlet;
@@ -176,7 +176,7 @@ public class FreemarkerManager {
protected boolean cacheBeanWrapper;
protected int mruMaxStrongSize;
protected String templateUpdateDelay;
- protected Map<String,TagLibrary> tagLibraries;
+ protected Map<String,TagLibraryModelProvider> tagLibraries;
private FileManager fileManager;
private FreemarkerThemeTemplateLoader themeTemplateLoader;
@@ -208,10 +208,10 @@ public class FreemarkerManager {
@Inject
public void setContainer(Container container) {
- Map<String,TagLibrary> map = new HashMap<String,TagLibrary>();
- Set<String> prefixes = container.getInstanceNames(TagLibrary.class);
+ Map<String,TagLibraryModelProvider> map = new HashMap<String,TagLibraryModelProvider>();
+ Set<String> prefixes = container.getInstanceNames(TagLibraryModelProvider.class);
for (String prefix : prefixes) {
- map.put(prefix, container.getInstance(TagLibrary.class, prefix));
+ map.put(prefix, container.getInstance(TagLibraryModelProvider.class, prefix));
}
this.tagLibraries = Collections.unmodifiableMap(map);
}
@@ -530,7 +530,7 @@ public class FreemarkerManager {
populateContext(model, stack, action, request, response);
if (tagLibraries != null) {
for (String prefix : tagLibraries.keySet()) {
- model.put(prefix, tagLibraries.get(prefix).getFreemarkerModels(stack, request, response));
+ model.put(prefix, tagLibraries.get(prefix).getModels(stack, request, response));
}
}
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java?rev=1542808&r1=1542807&r2=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java Sun Nov 17 20:42:46 2013
@@ -32,7 +32,7 @@ import org.apache.struts2.ServletActionC
import org.apache.struts2.StrutsConstants;
import org.apache.struts2.StrutsException;
import org.apache.struts2.util.VelocityStrutsUtil;
-import org.apache.struts2.views.TagLibrary;
+import org.apache.struts2.views.TagLibraryDirectiveProvider;
import org.apache.struts2.views.jsp.ui.OgnlTool;
import org.apache.struts2.views.util.ContextUtil;
import org.apache.velocity.VelocityContext;
@@ -99,7 +99,7 @@ public class VelocityManager {
private String customConfigFile;
- private List<TagLibrary> tagLibraries;
+ private List<TagLibraryDirectiveProvider> tagLibraries;
@Inject
public void setObjectFactory(ObjectFactory fac) {
@@ -108,10 +108,10 @@ public class VelocityManager {
@Inject
public void setContainer(Container container) {
- List<TagLibrary> list = new ArrayList<TagLibrary>();
- Set<String> prefixes = container.getInstanceNames(TagLibrary.class);
+ List<TagLibraryDirectiveProvider> list = new ArrayList<TagLibraryDirectiveProvider>();
+ Set<String> prefixes = container.getInstanceNames(TagLibraryDirectiveProvider.class);
for (String prefix : prefixes) {
- list.add(container.getInstance(TagLibrary.class, prefix));
+ list.add(container.getInstance(TagLibraryDirectiveProvider.class, prefix));
}
this.tagLibraries = Collections.unmodifiableList(list);
}
@@ -524,8 +524,8 @@ public class VelocityManager {
// components
StringBuilder sb = new StringBuilder();
- for (TagLibrary tagLibrary : tagLibraries) {
- List<Class> directives = tagLibrary.getVelocityDirectiveClasses();
+ for (TagLibraryDirectiveProvider tagLibrary : tagLibraries) {
+ List<Class> directives = tagLibrary.getDirectiveClasses();
for (Class directive : directives) {
addDirective(sb, directive);
}
Modified: struts/struts2/trunk/core/src/main/resources/struts-default.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/struts-default.xml?rev=1542808&r1=1542807&r2=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/struts-default.xml (original)
+++ struts/struts2/trunk/core/src/main/resources/struts-default.xml Sun Nov 17 20:42:46 2013
@@ -63,7 +63,8 @@
<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakarta" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default"/>
- <bean type="org.apache.struts2.views.TagLibrary" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />
+ <bean type="org.apache.struts2.views.TagLibraryDirectiveProvider" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />
+ <bean type="org.apache.struts2.views.TagLibraryModelProvider" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />
<bean class="org.apache.struts2.views.freemarker.FreemarkerThemeTemplateLoader" />
<bean class="org.apache.struts2.views.freemarker.FreemarkerManager" name="struts" />
Modified: struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java?rev=1542808&r1=1542807&r2=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java Sun Nov 17 20:42:46 2013
@@ -39,19 +39,19 @@ import org.apache.struts2.dojo.views.vel
import org.apache.struts2.dojo.views.velocity.components.TextAreaDirective;
import org.apache.struts2.dojo.views.velocity.components.TreeDirective;
import org.apache.struts2.dojo.views.velocity.components.TreeNodeDirective;
-import org.apache.struts2.views.TagLibrary;
+import org.apache.struts2.views.TagLibraryDirectiveProvider;
import com.opensymphony.xwork2.util.ValueStack;
+import org.apache.struts2.views.TagLibraryModelProvider;
-public class DojoTagLibrary implements TagLibrary {
+public class DojoTagLibrary implements TagLibraryDirectiveProvider, TagLibraryModelProvider {
- public Object getFreemarkerModels(ValueStack stack, HttpServletRequest req,
- HttpServletResponse res) {
+ public Object getModels(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
return new DojoModels(stack, req, res);
}
- public List<Class> getVelocityDirectiveClasses() {
+ public List<Class> getDirectiveClasses() {
Class[] directives = new Class[] {
DateTimePickerDirective.class,
DivDirective.class,
Modified: struts/struts2/trunk/plugins/dojo/src/main/resources/struts-plugin.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/dojo/src/main/resources/struts-plugin.xml?rev=1542808&r1=1542807&r2=1542808&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/dojo/src/main/resources/struts-plugin.xml (original)
+++ struts/struts2/trunk/plugins/dojo/src/main/resources/struts-plugin.xml Sun Nov 17 20:42:46 2013
@@ -26,5 +26,6 @@
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
- <bean type="org.apache.struts2.views.TagLibrary" name="sx" class="org.apache.struts2.dojo.views.DojoTagLibrary" />
+ <bean type="org.apache.struts2.views.TagLibraryDirectiveProvider" name="sx" class="org.apache.struts2.dojo.views.DojoTagLibrary" />
+ <bean type="org.apache.struts2.views.TagLibraryModelProvider" name="sx" class="org.apache.struts2.dojo.views.DojoTagLibrary" />
</struts>
\ No newline at end of file