You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/06/19 09:29:10 UTC
[1/6] incubator-freemarker git commit: FREEMARKER-54: Remove
ConfigurationFactoryBean#setSettings(...) because ancestor already contains
equivalent one. Also, separate spring logger.
Repository: incubator-freemarker
Updated Branches:
refs/heads/3 33320725f -> ed3043856
FREEMARKER-54: Remove ConfigurationFactoryBean#setSettings(...) because ancestor already contains equivalent one. Also, separate spring logger.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/94828521
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/94828521
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/94828521
Branch: refs/heads/3
Commit: 94828521fc30f0d51c7728d37b537404c8096bfe
Parents: 1988dc0
Author: Woonsan Ko <wo...@apache.org>
Authored: Sun Jun 18 22:12:03 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Sun Jun 18 22:12:03 2017 -0400
----------------------------------------------------------------------
.../spring/ConfigurationFactoryBean.java | 19 --------
.../apache/freemarker/spring/_SpringLogs.java | 35 +++++++++++++++
.../SpringResourceTemplateLoader.java | 9 ++--
.../spring/ConfigurationFactoryBeanTest.java | 46 ++++++++++++++------
4 files changed, 71 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/94828521/freemarker-spring/src/main/java/org/apache/freemarker/spring/ConfigurationFactoryBean.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/ConfigurationFactoryBean.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/ConfigurationFactoryBean.java
index da275e7..6f78750 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/ConfigurationFactoryBean.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/ConfigurationFactoryBean.java
@@ -18,10 +18,6 @@
*/
package org.apache.freemarker.spring;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
import org.apache.freemarker.core.Configuration;
import org.apache.freemarker.core.Configuration.ExtendableBuilder;
import org.springframework.beans.BeansException;
@@ -41,8 +37,6 @@ public class ConfigurationFactoryBean extends ExtendableBuilder<ConfigurationFac
private AbstractFactoryBean<Configuration> delegate;
- private Map<String, String> settings = new LinkedHashMap<>();
-
public ConfigurationFactoryBean() {
// By default, set the default version constant.
// #setIncompatibleImprovements(Version) can be used to change it.
@@ -57,25 +51,12 @@ public class ConfigurationFactoryBean extends ExtendableBuilder<ConfigurationFac
@Override
protected Configuration createInstance() throws Exception {
- for (Map.Entry<String, String> entry : settings.entrySet()) {
- setSetting(entry.getKey(), entry.getValue());
- }
-
return build();
}
};
}
- public Map<String, String> getSettings() {
- return Collections.unmodifiableMap(settings);
- }
-
- public void setSettings(Map<String, String> settings) {
- this.settings.clear();
- this.settings.putAll(settings);
- }
-
@Override
public Configuration getObject() throws Exception {
return delegate.getObject();
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/94828521/freemarker-spring/src/main/java/org/apache/freemarker/spring/_SpringLogs.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/_SpringLogs.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/_SpringLogs.java
new file mode 100644
index 0000000..87d0a63
--- /dev/null
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/_SpringLogs.java
@@ -0,0 +1,35 @@
+/*
+ * 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.freemarker.spring;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * For internal use only; don't depend on this, there's no backward compatibility guarantee at all!
+ * This class is to work around the lack of module system in Java, i.e., so that other FreeMarker packages can
+ * access things inside this package that users shouldn't.
+ */
+public final class _SpringLogs {
+
+ public static final Logger CORE = LoggerFactory.getLogger("org.apache.freemarker.spring");
+
+ public static final Logger TEMPLATE_RESOLVER = LoggerFactory.getLogger("org.apache.freemarker.spring.templateresolver");
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/94828521/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
index a327bab..3f96228 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
@@ -22,11 +22,11 @@ import java.io.IOException;
import java.io.Serializable;
import java.util.Objects;
-import org.apache.freemarker.core._CoreLogs;
import org.apache.freemarker.core.templateresolver.TemplateLoader;
import org.apache.freemarker.core.templateresolver.TemplateLoaderSession;
import org.apache.freemarker.core.templateresolver.TemplateLoadingResult;
import org.apache.freemarker.core.templateresolver.TemplateLoadingSource;
+import org.apache.freemarker.spring._SpringLogs;
import org.slf4j.Logger;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.Resource;
@@ -37,7 +37,7 @@ import org.springframework.core.io.ResourceLoader;
*/
public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoaderAware {
- private static final Logger LOG = _CoreLogs.TEMPLATE_RESOLVER;
+ private static final Logger LOG = _SpringLogs.TEMPLATE_RESOLVER;
private ResourceLoader resourceLoader;
@@ -74,10 +74,7 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
version = lmd;
}
} catch (IOException e) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("The last modified timestamp of the resource at '{}' may not be resolved. {}", name,
- e.toString());
- }
+ LOG.debug("The last modified timestamp of the resource at '{}' may not be resolved.", name, e);
}
if (ifSourceDiffersFrom != null && ifSourceDiffersFrom.equals(source)
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/94828521/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
index 0938f5b..ddfd320 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
@@ -24,8 +24,8 @@ import static org.junit.Assert.assertTrue;
import java.nio.charset.Charset;
import java.util.HashMap;
-import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Properties;
import org.apache.freemarker.core.AutoEscapingPolicy;
import org.apache.freemarker.core.Configuration;
@@ -65,25 +65,45 @@ public class ConfigurationFactoryBeanTest {
@Test
public void testConfigurationFactoryBeanSettings() throws Exception {
- final Map<String, String> settings = new LinkedHashMap<>();
+ final Properties settings = new Properties();
- settings.put(MutableParsingAndProcessingConfiguration.SOURCE_ENCODING_KEY, "UTF-8");
- settings.put(MutableParsingAndProcessingConfiguration.WHITESPACE_STRIPPING_KEY, "true");
- settings.put(MutableParsingAndProcessingConfiguration.AUTO_ESCAPING_POLICY_KEY, "enableIfSupported");
- settings.put(MutableParsingAndProcessingConfiguration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY, "true");
- settings.put(MutableParsingAndProcessingConfiguration.TEMPLATE_LANGUAGE_KEY, "FTL");
- settings.put(MutableParsingAndProcessingConfiguration.TAG_SYNTAX_KEY, "squareBracket");
- settings.put(MutableParsingAndProcessingConfiguration.NAMING_CONVENTION_KEY, "camelCase");
- settings.put(MutableParsingAndProcessingConfiguration.TAB_SIZE_KEY, "4");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.SOURCE_ENCODING_KEY, "UTF-8");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.WHITESPACE_STRIPPING_KEY, "true");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.AUTO_ESCAPING_POLICY_KEY, "enableIfSupported");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY, "true");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.TEMPLATE_LANGUAGE_KEY, "FTL");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.TAG_SYNTAX_KEY, "squareBracket");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.NAMING_CONVENTION_KEY, "camelCase");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.TAB_SIZE_KEY, "4");
- settings.put(ExtendableBuilder.OBJECT_WRAPPER_KEY, "restricted");
- settings.put(ExtendableBuilder.TEMPLATE_CACHE_STORAGE_KEY, "strong:20, soft:250");
+ settings.setProperty(ExtendableBuilder.OBJECT_WRAPPER_KEY, "restricted");
+ settings.setProperty(ExtendableBuilder.TEMPLATE_CACHE_STORAGE_KEY, "strong:20, soft:250");
final Map<String, Object> sharedVars = new HashMap<>();
sharedVars.put("sharedVar1", "sharedVal1");
sharedVars.put("sharedVar2", "sharedVal2");
- // Creating bean definition which is equivalent to <bean/> element in Spring XML configuration.
+ // Creating bean definition which is equivalent to <bean/> element in Spring XML configuration like the following:
+ //
+ // <bean class="org.apache.freemarker.spring.ConfigurationFactoryBean">
+ // <property name="incompatibleImprovements" value="3.0.0" />
+ // <property name="settings">
+ // <props>
+ // <prop key="source_encoding">UTF-8</prop>
+ // <prop key="whitespace_stripping">true</prop>
+ // <!-- SNIP -->
+ // <prop key="template_cache_storage">strong:20, soft:250</prop>
+ // </props>
+ // </property>
+ // <property name="sharedVariables">
+ // <map>
+ // <entry key="sharedVar1" value="sharedVal1" />
+ // <entry key="sharedVar2" value="sharedVal2" />
+ // </map>
+ // </property>
+ // <property name="templateUpdateDelayMilliseconds" value="60000" />
+ // <property name="localizedTemplateLookup" value="false" />
+ // </bean>
BeanDefinition beanDef =
BeanDefinitionBuilder.genericBeanDefinition(ConfigurationFactoryBean.class.getName())
.addPropertyValue("incompatibleImprovements", new Version(3, 0, 0))
[4/6] incubator-freemarker git commit: FREEMARKER-54: Adding
autoImports property example in unit test
Posted by dd...@apache.org.
FREEMARKER-54: Adding autoImports property example in unit test
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/2c5a4fda
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/2c5a4fda
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/2c5a4fda
Branch: refs/heads/3
Commit: 2c5a4fda1bd0abed5d62c5b27ec5d26cc452b071
Parents: 87da456
Author: Woonsan Ko <wo...@apache.org>
Authored: Mon Jun 19 00:25:14 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Mon Jun 19 00:25:14 2017 -0400
----------------------------------------------------------------------
.../spring/ConfigurationFactoryBeanTest.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/2c5a4fda/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
index cccc9be..010664b 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
@@ -37,6 +37,7 @@ import org.apache.freemarker.core.Template;
import org.apache.freemarker.core.TemplateLanguage;
import org.apache.freemarker.core.Version;
import org.apache.freemarker.core.model.impl.RestrictedObjectWrapper;
+import org.apache.freemarker.core.outputformat.impl.PlainTextOutputFormat;
import org.apache.freemarker.core.templateresolver.CacheStorage;
import org.apache.freemarker.core.templateresolver.impl.MruCacheStorage;
import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
@@ -70,6 +71,7 @@ public class ConfigurationFactoryBeanTest {
final Properties settings = new Properties();
settings.setProperty(MutableParsingAndProcessingConfiguration.SOURCE_ENCODING_KEY, "UTF-8");
+ settings.setProperty(MutableParsingAndProcessingConfiguration.OUTPUT_FORMAT_KEY, "PlainTextOutputFormat()");
settings.setProperty(MutableParsingAndProcessingConfiguration.WHITESPACE_STRIPPING_KEY, "true");
settings.setProperty(MutableParsingAndProcessingConfiguration.AUTO_ESCAPING_POLICY_KEY, "enableIfSupported");
settings.setProperty(MutableParsingAndProcessingConfiguration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY, "true");
@@ -85,6 +87,10 @@ public class ConfigurationFactoryBeanTest {
sharedVars.put("sharedVar1", "sharedVal1");
sharedVars.put("sharedVar2", "sharedVal2");
+ final Map<String, String> autoImports = new HashMap<>();
+ autoImports.put("mylib1", "/libs/mylib1.ftl");
+ autoImports.put("mylib2", "/libs/mylib2.ftl");
+
final StringTemplateLoader templateLoader = new StringTemplateLoader();
templateLoader.putTemplate("fooTemplate", "foo");
@@ -106,6 +112,12 @@ public class ConfigurationFactoryBeanTest {
// <entry key="sharedVar2" value="sharedVal2" />
// </map>
// </property>
+ // <property name="autoImports">
+ // <map>
+ // <entry key="mylib1" value="/libs/mylib1.ftl" />
+ // <entry key="mylib2" value="/libs/mylib2.ftl" />
+ // </map>
+ // </property>
// <property name="templateUpdateDelayMilliseconds" value="60000" />
// <property name="localizedTemplateLookup" value="false" />
// <property name="templateLoader">
@@ -119,6 +131,7 @@ public class ConfigurationFactoryBeanTest {
.addPropertyValue("incompatibleImprovements", "3.0.0")
.addPropertyValue("settings", settings)
.addPropertyValue("sharedVariables", sharedVars)
+ .addPropertyValue("autoImports", autoImports)
.addPropertyValue("templateUpdateDelayMilliseconds", 60000)
.addPropertyValue("localizedTemplateLookup", "false")
.addPropertyValue("templateLoader", templateLoader)
@@ -135,6 +148,7 @@ public class ConfigurationFactoryBeanTest {
assertEquals(new Version(3, 0, 0), config.getIncompatibleImprovements());
assertEquals(Charset.forName("UTF-8"), config.getSourceEncoding());
+ assertEquals(PlainTextOutputFormat.INSTANCE.getName(), config.getOutputFormat().getName());
assertTrue(config.isWhitespaceStrippingSet());
assertEquals(AutoEscapingPolicy.ENABLE_IF_SUPPORTED, config.getAutoEscapingPolicy());
assertTrue(config.isRecognizeStandardFileExtensionsSet());
@@ -154,6 +168,9 @@ public class ConfigurationFactoryBeanTest {
assertEquals("sharedVal1", config.getSharedVariables().get("sharedVar1"));
assertEquals("sharedVal2", config.getSharedVariables().get("sharedVar2"));
+ assertEquals("/libs/mylib1.ftl", config.getAutoImports().get("mylib1"));
+ assertEquals("/libs/mylib2.ftl", config.getAutoImports().get("mylib2"));
+
final Template fooTemplate = config.getTemplate("fooTemplate");
assertEquals("foo", fooTemplate.toString());
}
[5/6] incubator-freemarker git commit: FREEMARKER-54: Adding
baseLocation property in SpringResourceTemplateLoader for convenience.
Posted by dd...@apache.org.
FREEMARKER-54: Adding baseLocation property in SpringResourceTemplateLoader for convenience.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/85c43214
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/85c43214
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/85c43214
Branch: refs/heads/3
Commit: 85c43214e743eca5b82123ebfb1e2ac4dec1c073
Parents: 2c5a4fd
Author: Woonsan Ko <wo...@apache.org>
Authored: Mon Jun 19 00:52:25 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Mon Jun 19 00:52:25 2017 -0400
----------------------------------------------------------------------
.../SpringResourceTemplateLoader.java | 52 +++++++++++++++++++-
.../SpringResourceTemplateLoaderTest.java | 5 +-
2 files changed, 53 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/85c43214/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java b/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
index 3f96228..3230841 100644
--- a/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
+++ b/freemarker-spring/src/main/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoader.java
@@ -39,18 +39,55 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
private static final Logger LOG = _SpringLogs.TEMPLATE_RESOLVER;
+ /**
+ * Base template resource location.
+ * <P>
+ * If this property is a non-null string, this is prepended to the template name internally when resolving
+ * a resource.
+ * </P>
+ */
+ private String baseLocation;
+
+ /**
+ * Spring Framework resource loader.
+ */
private ResourceLoader resourceLoader;
+ /**
+ * Base resource location which can be prepended to the template name internally when resolving a resource.
+ * @return
+ */
+ public String getBaseLocation() {
+ return baseLocation;
+ }
+
+ /**
+ * Set base resource location which can be prepended to the template name internally when resolving a resource.
+ * @param baseLocation
+ */
+ public void setBaseLocation(String baseLocation) {
+ this.baseLocation = baseLocation;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public TemplateLoaderSession createSession() {
return null;
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public TemplateLoadingResult load(String name, TemplateLoadingSource ifSourceDiffersFrom,
Serializable ifVersionDiffersFrom, TemplateLoaderSession session) throws IOException {
@@ -58,7 +95,15 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
throw new IllegalStateException("Spring Framework ResourceLoader was not set.");
}
- Resource resource = resourceLoader.getResource(name);
+ String resourceLocation;
+
+ if (baseLocation == null) {
+ resourceLocation = name;
+ } else {
+ resourceLocation = baseLocation + "/" + name;
+ }
+
+ Resource resource = resourceLoader.getResource(resourceLocation);
if (!resource.exists()) {
return TemplateLoadingResult.NOT_FOUND;
@@ -74,7 +119,7 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
version = lmd;
}
} catch (IOException e) {
- LOG.debug("The last modified timestamp of the resource at '{}' may not be resolved.", name, e);
+ LOG.debug("The last modified timestamp of the resource at '{}' may not be resolved.", resourceLocation, e);
}
if (ifSourceDiffersFrom != null && ifSourceDiffersFrom.equals(source)
@@ -85,6 +130,9 @@ public class SpringResourceTemplateLoader implements TemplateLoader, ResourceLoa
return new TemplateLoadingResult(source, version, resource.getInputStream(), null);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void resetState() {
// Does nothing
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/85c43214/freemarker-spring/src/test/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoaderTest.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoaderTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoaderTest.java
index 23f604e..bcf014a 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoaderTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/templateresolver/SpringResourceTemplateLoaderTest.java
@@ -46,6 +46,7 @@ public class SpringResourceTemplateLoaderTest {
public void setUp() throws IOException {
appContext = new GenericApplicationContext();
templateLoader = new SpringResourceTemplateLoader();
+ templateLoader.setBaseLocation(TEMPLATE_BASE_PATH);
templateLoader.setResourceLoader(appContext);
cfg = new TestConfigurationBuilder().templateLoader(templateLoader).build();
}
@@ -62,7 +63,7 @@ public class SpringResourceTemplateLoaderTest {
@Test
public void testSuccessful() throws Exception {
for (int i = 0; i < 2; i++) {
- assertEquals("foo", cfg.getTemplate(TEMPLATE_BASE_PATH + "sub1/sub2/t.ftl").toString());
+ assertEquals("foo", cfg.getTemplate("sub1/sub2/t.ftl").toString());
}
}
@@ -70,7 +71,7 @@ public class SpringResourceTemplateLoaderTest {
public void testNotFound() throws Exception {
for (int i = 0; i < 2; i++) {
try {
- cfg.getTemplate(TEMPLATE_BASE_PATH + "sub1X/sub2/t.ftl");
+ cfg.getTemplate("sub1X/sub2/t.ftl");
fail();
} catch (TemplateNotFoundException e) {
assertThat(e.getMessage(), containsString("sub1X"));
[6/6] incubator-freemarker git commit: Remove unnecessary
#setSettings(); Logging correction;
VersionEditor for conversion between string and Version
Posted by dd...@apache.org.
Remove unnecessary #setSettings(); Logging correction; VersionEditor for conversion between string and Version
Merge commit 'refs/pull/24/head' of https://github.com/apache/incubator-freemarker into 3
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/ed304385
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/ed304385
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/ed304385
Branch: refs/heads/3
Commit: ed304385653c612de88f9980586fdc2769f13a2e
Parents: 3332072 85c4321
Author: ddekany <dd...@apache.org>
Authored: Mon Jun 19 11:27:57 2017 +0200
Committer: ddekany <dd...@apache.org>
Committed: Mon Jun 19 11:28:40 2017 +0200
----------------------------------------------------------------------
.../freemarker/core/VersionEditorTest.java | 119 +++++++++++++++++++
.../apache/freemarker/core/VersionEditor.java | 53 +++++++++
.../spring/ConfigurationFactoryBean.java | 19 ---
.../apache/freemarker/spring/_SpringLogs.java | 35 ++++++
.../SpringResourceTemplateLoader.java | 59 +++++++--
.../spring/ConfigurationFactoryBeanTest.java | 79 +++++++++---
.../freemarker/spring/VersionPropertyTest.java | 76 ++++++++++++
.../SpringResourceTemplateLoaderTest.java | 5 +-
8 files changed, 403 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
[3/6] incubator-freemarker git commit: FREEMARKER-54: Adding
templateLoader prop example in unit test.
Posted by dd...@apache.org.
FREEMARKER-54: Adding templateLoader prop example in unit test.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/87da4566
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/87da4566
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/87da4566
Branch: refs/heads/3
Commit: 87da456664f98cbb3ea2ac2ef1bc30de7504119a
Parents: cb43725
Author: Woonsan Ko <wo...@apache.org>
Authored: Mon Jun 19 00:08:05 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Mon Jun 19 00:08:05 2017 -0400
----------------------------------------------------------------------
.../spring/ConfigurationFactoryBeanTest.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/87da4566/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
index a77e944..cccc9be 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
@@ -33,11 +33,13 @@ import org.apache.freemarker.core.Configuration.ExtendableBuilder;
import org.apache.freemarker.core.MutableParsingAndProcessingConfiguration;
import org.apache.freemarker.core.NamingConvention;
import org.apache.freemarker.core.TagSyntax;
+import org.apache.freemarker.core.Template;
import org.apache.freemarker.core.TemplateLanguage;
import org.apache.freemarker.core.Version;
import org.apache.freemarker.core.model.impl.RestrictedObjectWrapper;
import org.apache.freemarker.core.templateresolver.CacheStorage;
import org.apache.freemarker.core.templateresolver.impl.MruCacheStorage;
+import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -83,6 +85,9 @@ public class ConfigurationFactoryBeanTest {
sharedVars.put("sharedVar1", "sharedVal1");
sharedVars.put("sharedVar2", "sharedVal2");
+ final StringTemplateLoader templateLoader = new StringTemplateLoader();
+ templateLoader.putTemplate("fooTemplate", "foo");
+
// Creating bean definition which is equivalent to <bean/> element in Spring XML configuration like the following:
//
// <bean class="org.apache.freemarker.spring.ConfigurationFactoryBean">
@@ -103,7 +108,12 @@ public class ConfigurationFactoryBeanTest {
// </property>
// <property name="templateUpdateDelayMilliseconds" value="60000" />
// <property name="localizedTemplateLookup" value="false" />
+ // <property name="templateLoader">
+ // <bean class="org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader">
+ // </bean>
+ // </property>
// </bean>
+ //
BeanDefinition beanDef =
BeanDefinitionBuilder.genericBeanDefinition(ConfigurationFactoryBean.class.getName())
.addPropertyValue("incompatibleImprovements", "3.0.0")
@@ -111,6 +121,7 @@ public class ConfigurationFactoryBeanTest {
.addPropertyValue("sharedVariables", sharedVars)
.addPropertyValue("templateUpdateDelayMilliseconds", 60000)
.addPropertyValue("localizedTemplateLookup", "false")
+ .addPropertyValue("templateLoader", templateLoader)
.getBeanDefinition();
appContext.registerBeanDefinition("freemarkerConfig", beanDef);
@@ -142,6 +153,9 @@ public class ConfigurationFactoryBeanTest {
assertEquals("sharedVal1", config.getSharedVariables().get("sharedVar1"));
assertEquals("sharedVal2", config.getSharedVariables().get("sharedVar2"));
+
+ final Template fooTemplate = config.getTemplate("fooTemplate");
+ assertEquals("foo", fooTemplate.toString());
}
}
[2/6] incubator-freemarker git commit: FREEMARKER-54: Support Version
convertion editor between string and Version object for spring community
Posted by dd...@apache.org.
FREEMARKER-54: Support Version convertion editor between string and Version object for spring community
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/cb43725a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/cb43725a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/cb43725a
Branch: refs/heads/3
Commit: cb43725a79e851c11d4552d3a5ab0b6d70d43e9d
Parents: 9482852
Author: Woonsan Ko <wo...@apache.org>
Authored: Sun Jun 18 23:13:56 2017 -0400
Committer: Woonsan Ko <wo...@apache.org>
Committed: Sun Jun 18 23:13:56 2017 -0400
----------------------------------------------------------------------
.../freemarker/core/VersionEditorTest.java | 119 +++++++++++++++++++
.../apache/freemarker/core/VersionEditor.java | 53 +++++++++
.../spring/ConfigurationFactoryBeanTest.java | 2 +-
.../freemarker/spring/VersionPropertyTest.java | 76 ++++++++++++
4 files changed, 249 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/cb43725a/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java
----------------------------------------------------------------------
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java
new file mode 100644
index 0000000..60c4746
--- /dev/null
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java
@@ -0,0 +1,119 @@
+/*
+ * 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.freemarker.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+
+public class VersionEditorTest {
+
+ @Test
+ public void testFromString() {
+ VersionEditor editor = new VersionEditor();
+ editor.setAsText("1.2.3-beta2");
+ Version v = (Version) editor.getValue();
+ assertEquals("1.2.3-beta2", v.toString());
+ assertEquals("1.2.3-beta2", editor.getAsText());
+ }
+
+ @Test
+ public void testFromString2() {
+ VersionEditor editor = new VersionEditor();
+ editor.setAsText("01.002.0003-20130524");
+ Version v = (Version) editor.getValue();
+ assertEquals("01.002.0003-20130524", v.toString());
+ assertEquals("01.002.0003-20130524", editor.getAsText());
+
+ editor.setAsText("01.002.0003.4");
+ v = (Version) editor.getValue();
+ assertEquals("01.002.0003.4", v.toString());
+ assertEquals("01.002.0003.4", editor.getAsText());
+
+ editor.setAsText("1.2.3.FC");
+ v = (Version) editor.getValue();
+ assertEquals("1.2.3.FC", v.toString());
+ assertEquals("1.2.3.FC", editor.getAsText());
+
+ editor.setAsText("1.2.3mod");
+ v = (Version) editor.getValue();
+ assertEquals("1.2.3mod", v.toString());
+ assertEquals("1.2.3mod", editor.getAsText());
+
+ }
+
+ @Test
+ public void testFromStringIncubating() {
+ VersionEditor editor = new VersionEditor();
+ editor.setAsText("2.3.24-rc01-incubating");
+ Version v = (Version) editor.getValue();
+ assertEquals("2.3.24-rc01-incubating", v.toString());
+ assertEquals("2.3.24-rc01-incubating", editor.getAsText());
+ }
+
+ @Test
+ public void testMalformed() {
+ VersionEditor editor = new VersionEditor();
+
+ try {
+ editor.setAsText("1.2.");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ editor.setAsText("1.2.3.");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ editor.setAsText("1..3");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ editor.setAsText(".2");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ editor.setAsText("a");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ editor.setAsText("-a");
+ fail();
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/cb43725a/freemarker-core/src/main/java/org/apache/freemarker/core/VersionEditor.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/VersionEditor.java b/freemarker-core/src/main/java/org/apache/freemarker/core/VersionEditor.java
new file mode 100644
index 0000000..7b17ae9
--- /dev/null
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/VersionEditor.java
@@ -0,0 +1,53 @@
+/*
+ * 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.freemarker.core;
+
+import java.beans.PropertyEditor;
+import java.beans.PropertyEditorSupport;
+
+/**
+ * {@link PropertyEditor} for {@link Version}, to directly populate a <code>Version</code> property
+ * instead of using a String property as bridge.
+ */
+public class VersionEditor extends PropertyEditorSupport {
+
+ /**
+ * Create a new VersionEditor.
+ */
+ public VersionEditor() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void setAsText(String versionString) throws IllegalArgumentException {
+ setValue(new Version(versionString));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getAsText() {
+ Version version = (Version) getValue();
+ return (version != null ? version.toString() : null);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/cb43725a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
index ddfd320..a77e944 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/ConfigurationFactoryBeanTest.java
@@ -106,7 +106,7 @@ public class ConfigurationFactoryBeanTest {
// </bean>
BeanDefinition beanDef =
BeanDefinitionBuilder.genericBeanDefinition(ConfigurationFactoryBean.class.getName())
- .addPropertyValue("incompatibleImprovements", new Version(3, 0, 0))
+ .addPropertyValue("incompatibleImprovements", "3.0.0")
.addPropertyValue("settings", settings)
.addPropertyValue("sharedVariables", sharedVars)
.addPropertyValue("templateUpdateDelayMilliseconds", 60000)
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/cb43725a/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java
----------------------------------------------------------------------
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java
new file mode 100644
index 0000000..ff69a75
--- /dev/null
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.freemarker.spring;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.freemarker.core.Version;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.context.support.GenericApplicationContext;
+
+public class VersionPropertyTest {
+
+ private GenericApplicationContext appContext;
+
+ @Before
+ public void setUp() throws Exception {
+ appContext = new GenericApplicationContext();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ if (appContext.isActive()) {
+ appContext.stop();
+ appContext.destroy();
+ appContext.close();
+ }
+ }
+
+ @Test
+ public void testVersionPropertySettingByString() throws Exception {
+ BeanDefinition beanDef =
+ BeanDefinitionBuilder.genericBeanDefinition(VersionHolder.class.getName())
+ .addPropertyValue("version", "3.1.4-beta1592")
+ .getBeanDefinition();
+
+ appContext.registerBeanDefinition("versionHolder", beanDef);
+ appContext.refresh();
+ appContext.start();
+
+ VersionHolder versionHolder = appContext.getBean("versionHolder", VersionHolder.class);
+ assertEquals(new Version("3.1.4-beta1592"), versionHolder.getVersion());
+ }
+
+ public static class VersionHolder {
+
+ private Version version;
+
+ public Version getVersion() {
+ return version;
+ }
+
+ public void setVersion(Version version) {
+ this.version = version;
+ }
+ }
+}