updated to FreeMarker 2.3.15 (SPR-4962)
This commit is contained in:
parent
58a458986f
commit
4cf573ba98
|
|
@ -41,11 +41,11 @@
|
||||||
<orderEntry type="module-library">
|
<orderEntry type="module-library">
|
||||||
<library>
|
<library>
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.12/com.springsource.freemarker-2.3.12.jar!/" />
|
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.15/com.springsource.freemarker-2.3.15.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.12/com.springsource.freemarker-sources-2.3.12.jar!/" />
|
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.15/com.springsource.freemarker-sources-2.3.15.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency org="com.bea.commonj" name="com.springsource.commonj" rev="1.1.0" conf="optional, commonj->compile"/>
|
<dependency org="com.bea.commonj" name="com.springsource.commonj" rev="1.1.0" conf="optional, commonj->compile"/>
|
||||||
<dependency org="org.freemarker" name="com.springsource.freemarker" rev="2.3.12" conf="optional, freemarker->compile"/>
|
<dependency org="org.freemarker" name="com.springsource.freemarker" rev="2.3.15" conf="optional, freemarker->compile"/>
|
||||||
<dependency org="javax.activation" name="com.springsource.javax.activation" rev="1.1.0" conf="provided->compile"/>
|
<dependency org="javax.activation" name="com.springsource.javax.activation" rev="1.1.0" conf="provided->compile"/>
|
||||||
<dependency org="javax.mail" name="com.springsource.javax.mail" rev="1.4.0" conf="optional, mail->compile"/>
|
<dependency org="javax.mail" name="com.springsource.javax.mail" rev="1.4.0" conf="optional, mail->compile"/>
|
||||||
<dependency org="net.sourceforge.ehcache" name="com.springsource.net.sf.ehcache" rev="1.3.0" conf="optional, ehcache->compile"/>
|
<dependency org="net.sourceforge.ehcache" name="com.springsource.net.sf.ehcache" rev="1.3.0" conf="optional, ehcache->compile"/>
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,6 @@
|
||||||
<artifactId>jta</artifactId>
|
<artifactId>jta</artifactId>
|
||||||
<version>1.1</version>
|
<version>1.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>quartz</groupId>
|
<groupId>quartz</groupId>
|
||||||
<artifactId>quartz</artifactId>
|
<artifactId>quartz</artifactId>
|
||||||
|
|
@ -38,12 +35,10 @@
|
||||||
<version>1.6.0</version>
|
<version>1.6.0</version>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.freemarker</groupId>
|
<groupId>org.freemarker</groupId>
|
||||||
<artifactId>freemarker</artifactId>
|
<artifactId>freemarker</artifactId>
|
||||||
<version>2.3.12</version>
|
<version>2.3.15</version>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
|
|
@ -220,11 +220,11 @@
|
||||||
<orderEntry type="module-library">
|
<orderEntry type="module-library">
|
||||||
<library>
|
<library>
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.12/com.springsource.freemarker-2.3.12.jar!/" />
|
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.15/com.springsource.freemarker-2.3.15.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.12/com.springsource.freemarker-sources-2.3.12.jar!/" />
|
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.15/com.springsource.freemarker-sources-2.3.15.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
<dependency org="org.easymock" name="com.springsource.org.easymock.classextension" rev="2.3.0" conf="test->compile"/>
|
<dependency org="org.easymock" name="com.springsource.org.easymock.classextension" rev="2.3.0" conf="test->compile"/>
|
||||||
<dependency org="org.eclipse.persistence" name="com.springsource.org.eclipse.persistence" rev="1.0.1" conf="test->compile"/>
|
<dependency org="org.eclipse.persistence" name="com.springsource.org.eclipse.persistence" rev="1.0.1" conf="test->compile"/>
|
||||||
<dependency org="org.eclipse.persistence" name="com.springsource.org.eclipse.persistence.jpa" rev="1.0.1" conf="test->compile"/>
|
<dependency org="org.eclipse.persistence" name="com.springsource.org.eclipse.persistence.jpa" rev="1.0.1" conf="test->compile"/>
|
||||||
<dependency org="org.freemarker" name="com.springsource.freemarker" rev="2.3.12" conf="test->compile"/>
|
<dependency org="org.freemarker" name="com.springsource.freemarker" rev="2.3.15" conf="test->compile"/>
|
||||||
<dependency org="org.hibernate" name="com.springsource.org.hibernate" rev="3.3.1.GA" conf="test->compile"/>
|
<dependency org="org.hibernate" name="com.springsource.org.hibernate" rev="3.3.1.GA" conf="test->compile"/>
|
||||||
<dependency org="org.hibernate" name="com.springsource.org.hibernate.annotations" rev="3.4.0.GA" conf="test->compile"/>
|
<dependency org="org.hibernate" name="com.springsource.org.hibernate.annotations" rev="3.4.0.GA" conf="test->compile"/>
|
||||||
<dependency org="org.hibernate" name="com.springsource.org.hibernate.annotations.common" rev="3.3.0.ga" conf="test->compile"/>
|
<dependency org="org.hibernate" name="com.springsource.org.hibernate.annotations.common" rev="3.3.0.ga" conf="test->compile"/>
|
||||||
|
|
|
||||||
|
|
@ -309,7 +309,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.freemarker</groupId>
|
<groupId>org.freemarker</groupId>
|
||||||
<artifactId>freemarker</artifactId>
|
<artifactId>freemarker</artifactId>
|
||||||
<version>2.3.12</version>
|
<version>2.3.15</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
conf="optional, feed->compile"/>
|
conf="optional, feed->compile"/>
|
||||||
<dependency org="com.lowagie.text" name="com.springsource.com.lowagie.text" rev="2.0.8"
|
<dependency org="com.lowagie.text" name="com.springsource.com.lowagie.text" rev="2.0.8"
|
||||||
conf="optional, itext->compile"/>
|
conf="optional, itext->compile"/>
|
||||||
<dependency org="org.freemarker" name="com.springsource.freemarker" rev="2.3.12"
|
<dependency org="org.freemarker" name="com.springsource.freemarker" rev="2.3.15"
|
||||||
conf="optional, freemarker->compile"/>
|
conf="optional, freemarker->compile"/>
|
||||||
<dependency org="javax.el" name="com.springsource.javax.el" rev="1.0.0" conf="provided->compile"/>
|
<dependency org="javax.el" name="com.springsource.javax.el" rev="1.0.0" conf="provided->compile"/>
|
||||||
<dependency org="javax.servlet" name="com.springsource.javax.servlet" rev="2.5.0" conf="provided->compile"/>
|
<dependency org="javax.servlet" name="com.springsource.javax.servlet" rev="2.5.0" conf="provided->compile"/>
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.freemarker</groupId>
|
<groupId>org.freemarker</groupId>
|
||||||
<artifactId>freemarker</artifactId>
|
<artifactId>freemarker</artifactId>
|
||||||
<version>2.3.12</version>
|
<version>2.3.15</version>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import freemarker.core.ParseException;
|
import freemarker.core.ParseException;
|
||||||
import freemarker.ext.jsp.TaglibFactory;
|
import freemarker.ext.jsp.TaglibFactory;
|
||||||
|
import freemarker.ext.servlet.AllHttpScopesHashModel;
|
||||||
import freemarker.ext.servlet.FreemarkerServlet;
|
import freemarker.ext.servlet.FreemarkerServlet;
|
||||||
import freemarker.ext.servlet.HttpRequestHashModel;
|
import freemarker.ext.servlet.HttpRequestHashModel;
|
||||||
import freemarker.ext.servlet.HttpRequestParametersHashModel;
|
import freemarker.ext.servlet.HttpRequestParametersHashModel;
|
||||||
|
|
@ -41,6 +42,7 @@ import freemarker.ext.servlet.HttpSessionHashModel;
|
||||||
import freemarker.ext.servlet.ServletContextHashModel;
|
import freemarker.ext.servlet.ServletContextHashModel;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
import freemarker.template.ObjectWrapper;
|
import freemarker.template.ObjectWrapper;
|
||||||
|
import freemarker.template.SimpleHash;
|
||||||
import freemarker.template.Template;
|
import freemarker.template.Template;
|
||||||
import freemarker.template.TemplateException;
|
import freemarker.template.TemplateException;
|
||||||
|
|
||||||
|
|
@ -250,7 +252,7 @@ public class FreeMarkerView extends AbstractTemplateView {
|
||||||
* library hash model.
|
* library hash model.
|
||||||
* <p>Can be overridden to customize the behavior, for example to render
|
* <p>Can be overridden to customize the behavior, for example to render
|
||||||
* multiple templates into a single view.
|
* multiple templates into a single view.
|
||||||
* @param model the template model to use for rendering
|
* @param model the model to use for rendering
|
||||||
* @param request current HTTP request
|
* @param request current HTTP request
|
||||||
* @param response current servlet response
|
* @param response current servlet response
|
||||||
* @throws IOException if the template file could not be retrieved
|
* @throws IOException if the template file could not be retrieved
|
||||||
|
|
@ -264,20 +266,34 @@ public class FreeMarkerView extends AbstractTemplateView {
|
||||||
protected void doRender(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
protected void doRender(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||||
// Expose model to JSP tags (as request attributes).
|
// Expose model to JSP tags (as request attributes).
|
||||||
exposeModelAsRequestAttributes(model, request);
|
exposeModelAsRequestAttributes(model, request);
|
||||||
|
|
||||||
// Expose all standard FreeMarker hash models.
|
// Expose all standard FreeMarker hash models.
|
||||||
model.put(FreemarkerServlet.KEY_JSP_TAGLIBS, this.taglibFactory);
|
SimpleHash fmModel = buildTemplateModel(model, request, response);
|
||||||
model.put(FreemarkerServlet.KEY_APPLICATION, this.servletContextHashModel);
|
|
||||||
model.put(FreemarkerServlet.KEY_SESSION, buildSessionModel(request, response));
|
|
||||||
model.put(FreemarkerServlet.KEY_REQUEST, new HttpRequestHashModel(request, response, getObjectWrapper()));
|
|
||||||
model.put(FreemarkerServlet.KEY_REQUEST_PARAMETERS, new HttpRequestParametersHashModel(request));
|
|
||||||
|
|
||||||
if (logger.isDebugEnabled()) {
|
if (logger.isDebugEnabled()) {
|
||||||
logger.debug("Rendering FreeMarker template [" + getUrl() + "] in FreeMarkerView '" + getBeanName() + "'");
|
logger.debug("Rendering FreeMarker template [" + getUrl() + "] in FreeMarkerView '" + getBeanName() + "'");
|
||||||
}
|
}
|
||||||
// Grab the locale-specific version of the template.
|
// Grab the locale-specific version of the template.
|
||||||
Locale locale = RequestContextUtils.getLocale(request);
|
Locale locale = RequestContextUtils.getLocale(request);
|
||||||
processTemplate(getTemplate(locale), model, response);
|
processTemplate(getTemplate(locale), fmModel, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a FreeMarker template model for the given model Map.
|
||||||
|
* <p>The default implementation builds a {@link AllHttpScopesHashModel}.
|
||||||
|
* @param model the model to use for rendering
|
||||||
|
* @param request current HTTP request
|
||||||
|
* @param response current servlet response
|
||||||
|
* @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof
|
||||||
|
*/
|
||||||
|
protected SimpleHash buildTemplateModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
AllHttpScopesHashModel fmModel = new AllHttpScopesHashModel(getObjectWrapper(), getServletContext(), request);
|
||||||
|
fmModel.put(FreemarkerServlet.KEY_JSP_TAGLIBS, this.taglibFactory);
|
||||||
|
fmModel.put(FreemarkerServlet.KEY_APPLICATION, this.servletContextHashModel);
|
||||||
|
fmModel.put(FreemarkerServlet.KEY_SESSION, buildSessionModel(request, response));
|
||||||
|
fmModel.put(FreemarkerServlet.KEY_REQUEST, new HttpRequestHashModel(request, response, getObjectWrapper()));
|
||||||
|
fmModel.put(FreemarkerServlet.KEY_REQUEST_PARAMETERS, new HttpRequestParametersHashModel(request));
|
||||||
|
fmModel.putAll(model);
|
||||||
|
return fmModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -338,7 +354,7 @@ public class FreeMarkerView extends AbstractTemplateView {
|
||||||
* @throws TemplateException if thrown by FreeMarker
|
* @throws TemplateException if thrown by FreeMarker
|
||||||
* @see freemarker.template.Template#process(Object, java.io.Writer)
|
* @see freemarker.template.Template#process(Object, java.io.Writer)
|
||||||
*/
|
*/
|
||||||
protected void processTemplate(Template template, Map<String, Object> model, HttpServletResponse response)
|
protected void processTemplate(Template template, SimpleHash model, HttpServletResponse response)
|
||||||
throws IOException, TemplateException {
|
throws IOException, TemplateException {
|
||||||
|
|
||||||
template.process(model, response.getWriter());
|
template.process(model, response.getWriter());
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2007 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -24,6 +24,9 @@ import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
import freemarker.template.Template;
|
import freemarker.template.Template;
|
||||||
|
import freemarker.template.TemplateModel;
|
||||||
|
import freemarker.template.SimpleHash;
|
||||||
|
import freemarker.template.TemplateException;
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import org.springframework.beans.TestBean;
|
import org.springframework.beans.TestBean;
|
||||||
|
|
@ -79,7 +82,9 @@ public class FreeMarkerMacroTests extends TestCase {
|
||||||
|
|
||||||
public void testExposeSpringMacroHelpers() throws Exception {
|
public void testExposeSpringMacroHelpers() throws Exception {
|
||||||
FreeMarkerView fv = new FreeMarkerView() {
|
FreeMarkerView fv = new FreeMarkerView() {
|
||||||
protected void processTemplate(Template template, Map model, HttpServletResponse response) {
|
@Override
|
||||||
|
protected void processTemplate(Template template, SimpleHash fmModel, HttpServletResponse response) throws TemplateException {
|
||||||
|
Map model = fmModel.toMap();
|
||||||
assertTrue(model.get(FreeMarkerView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext);
|
assertTrue(model.get(FreeMarkerView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext);
|
||||||
RequestContext rc = (RequestContext) model.get(FreeMarkerView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
|
RequestContext rc = (RequestContext) model.get(FreeMarkerView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);
|
||||||
BindStatus status = rc.getBindStatus("tb.name");
|
BindStatus status = rc.getBindStatus("tb.name");
|
||||||
|
|
@ -100,7 +105,8 @@ public class FreeMarkerMacroTests extends TestCase {
|
||||||
final String helperTool = "wrongType";
|
final String helperTool = "wrongType";
|
||||||
|
|
||||||
FreeMarkerView fv = new FreeMarkerView() {
|
FreeMarkerView fv = new FreeMarkerView() {
|
||||||
protected void processTemplate(Template template, Map model, HttpServletResponse response) {
|
@Override
|
||||||
|
protected void processTemplate(Template template, SimpleHash model, HttpServletResponse response) {
|
||||||
fail();
|
fail();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -155,6 +161,7 @@ public class FreeMarkerMacroTests extends TestCase {
|
||||||
view.setUrl("test.ftl");
|
view.setUrl("test.ftl");
|
||||||
view.setExposeSpringMacroHelpers(false);
|
view.setExposeSpringMacroHelpers(false);
|
||||||
view.setConfiguration(config);
|
view.setConfiguration(config);
|
||||||
|
view.setServletContext(new MockServletContext());
|
||||||
|
|
||||||
view.render(model, request, response);
|
view.render(model, request, response);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2008 the original author or authors.
|
* Copyright 2002-2009 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -24,7 +24,9 @@ import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import freemarker.ext.servlet.AllHttpScopesHashModel;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
|
import freemarker.template.SimpleScalar;
|
||||||
import freemarker.template.Template;
|
import freemarker.template.Template;
|
||||||
import freemarker.template.TemplateException;
|
import freemarker.template.TemplateException;
|
||||||
import org.easymock.MockControl;
|
import org.easymock.MockControl;
|
||||||
|
|
@ -104,7 +106,7 @@ public class FreeMarkerViewTests {
|
||||||
wac.getParentBeanFactory();
|
wac.getParentBeanFactory();
|
||||||
wmc.setReturnValue(null);
|
wmc.setReturnValue(null);
|
||||||
wac.getServletContext();
|
wac.getServletContext();
|
||||||
wmc.setReturnValue(sc, 4);
|
wmc.setReturnValue(sc, 5);
|
||||||
wmc.replay();
|
wmc.replay();
|
||||||
|
|
||||||
fv.setUrl("templateName");
|
fv.setUrl("templateName");
|
||||||
|
|
@ -141,7 +143,7 @@ public class FreeMarkerViewTests {
|
||||||
wac.getParentBeanFactory();
|
wac.getParentBeanFactory();
|
||||||
wmc.setReturnValue(null);
|
wmc.setReturnValue(null);
|
||||||
wac.getServletContext();
|
wac.getServletContext();
|
||||||
wmc.setReturnValue(sc, 4);
|
wmc.setReturnValue(sc, 5);
|
||||||
wmc.replay();
|
wmc.replay();
|
||||||
|
|
||||||
fv.setUrl("templateName");
|
fv.setUrl("templateName");
|
||||||
|
|
@ -170,9 +172,9 @@ public class FreeMarkerViewTests {
|
||||||
return new Template(name, new StringReader("test")) {
|
return new Template(name, new StringReader("test")) {
|
||||||
public void process(Object model, Writer writer) throws TemplateException, IOException {
|
public void process(Object model, Writer writer) throws TemplateException, IOException {
|
||||||
assertEquals(Locale.US, locale);
|
assertEquals(Locale.US, locale);
|
||||||
assertTrue(model instanceof Map);
|
assertTrue(model instanceof AllHttpScopesHashModel);
|
||||||
Map modelMap = (Map) model;
|
AllHttpScopesHashModel fmModel = (AllHttpScopesHashModel) model;
|
||||||
assertEquals("myvalue", modelMap.get("myattr"));
|
assertEquals("myvalue", fmModel.get("myattr").toString());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,11 +43,11 @@
|
||||||
<orderEntry type="module-library">
|
<orderEntry type="module-library">
|
||||||
<library>
|
<library>
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.12/com.springsource.freemarker-2.3.12.jar!/" />
|
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.15/com.springsource.freemarker-2.3.15.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.12/com.springsource.freemarker-sources-2.3.12.jar!/" />
|
<root url="jar://$IVY_CACHE$/org.freemarker/com.springsource.freemarker/2.3.15/com.springsource.freemarker-sources-2.3.15.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue