From b5d1f57c8838e5709118a0686a091b2d5b529abe Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Fri, 3 Jan 2014 10:47:53 +0100 Subject: [PATCH] removed freemarker template engine --- scm-webapp/pom.xml | 6 - .../main/java/sonia/scm/ScmErrorModule.java | 2 - .../main/java/sonia/scm/ScmServletModule.java | 2 - .../scm/template/FreemarkerTemplate.java | 91 -------- .../template/FreemarkerTemplateEngine.java | 200 ------------------ .../sonia/scm/template/TemplateServlet.java | 2 - .../FreemarkerTemplateEngineTest.java | 103 --------- .../scm/template/FreemarkerTemplateTest.java | 96 --------- 8 files changed, 502 deletions(-) delete mode 100644 scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplate.java delete mode 100644 scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java delete mode 100644 scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateEngineTest.java delete mode 100644 scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml index 811912bfe6..064f0049cb 100644 --- a/scm-webapp/pom.xml +++ b/scm-webapp/pom.xml @@ -184,12 +184,6 @@ - - - org.freemarker - freemarker - ${freemarker.version} - com.github.spullara.mustache.java diff --git a/scm-webapp/src/main/java/sonia/scm/ScmErrorModule.java b/scm-webapp/src/main/java/sonia/scm/ScmErrorModule.java index 0b64a03ccc..0c92c87e34 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmErrorModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmErrorModule.java @@ -40,7 +40,6 @@ import com.google.inject.servlet.ServletModule; import sonia.scm.template.DefaultEngine; import sonia.scm.template.ErrorServlet; -import sonia.scm.template.FreemarkerTemplateEngine; import sonia.scm.template.MustacheTemplateEngine; import sonia.scm.template.TemplateEngine; import sonia.scm.template.TemplateEngineFactory; @@ -67,7 +66,6 @@ public class ScmErrorModule extends ServletModule Multibinder.newSetBinder(binder(), TemplateEngine.class); engineBinder.addBinding().to(MustacheTemplateEngine.class); - engineBinder.addBinding().to(FreemarkerTemplateEngine.class); bind(TemplateEngine.class).annotatedWith(DefaultEngine.class).to( MustacheTemplateEngine.class); bind(TemplateEngineFactory.class); diff --git a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java index 36088a4dbe..0f5058b069 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java @@ -105,7 +105,6 @@ import sonia.scm.store.JAXBStoreFactory; import sonia.scm.store.ListenableStoreFactory; import sonia.scm.store.StoreFactory; import sonia.scm.template.DefaultEngine; -import sonia.scm.template.FreemarkerTemplateEngine; import sonia.scm.template.MustacheTemplateEngine; import sonia.scm.template.TemplateEngine; import sonia.scm.template.TemplateEngineFactory; @@ -357,7 +356,6 @@ public class ScmServletModule extends ServletModule Multibinder.newSetBinder(binder(), TemplateEngine.class); engineBinder.addBinding().to(MustacheTemplateEngine.class); - engineBinder.addBinding().to(FreemarkerTemplateEngine.class); bind(TemplateEngine.class).annotatedWith(DefaultEngine.class).to( MustacheTemplateEngine.class); bind(TemplateEngineFactory.class); diff --git a/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplate.java b/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplate.java deleted file mode 100644 index e6fdba428f..0000000000 --- a/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplate.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - -package sonia.scm.template; - -//~--- non-JDK imports -------------------------------------------------------- - -import freemarker.template.TemplateException; - -//~--- JDK imports ------------------------------------------------------------ - -import java.io.IOException; -import java.io.Writer; - -/** - * - * @author Sebastian Sdorra - */ -public class FreemarkerTemplate implements Template -{ - - /** - * Constructs ... - * - * - * @param template - */ - public FreemarkerTemplate(freemarker.template.Template template) - { - this.template = template; - } - - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param writer - * @param environment - * @param model - * - * @throws IOException - */ - @Override - public void execute(Writer writer, Object model) throws IOException - { - try - { - template.process(model, writer); - } - catch (TemplateException ex) - { - throw new TemplateRenderException("could not render template", ex); - } - } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private freemarker.template.Template template; -} diff --git a/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java b/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java deleted file mode 100644 index 46a5d537bd..0000000000 --- a/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java +++ /dev/null @@ -1,200 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - - -package sonia.scm.template; - -//~--- non-JDK imports -------------------------------------------------------- - -import com.google.inject.Inject; - -import freemarker.cache.ClassTemplateLoader; -import freemarker.cache.MultiTemplateLoader; -import freemarker.cache.TemplateLoader; -import freemarker.cache.WebappTemplateLoader; - -import freemarker.template.Configuration; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -//~--- JDK imports ------------------------------------------------------------ - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.Reader; - -import java.util.Locale; - -import javax.servlet.ServletContext; - -/** - * - * @author Sebastian Sdorra - */ -public class FreemarkerTemplateEngine implements TemplateEngine -{ - - /** Field description */ - public static final String DIRECTORY_ROOT = "/"; - - /** Field description */ - public static final String ENCODING = "UTF-8"; - - /** Field description */ - public static final TemplateType TYPE = new TemplateType("freemarker", - "Freemarker", "ftl", "freemarker"); - - /** - * the logger for FreemarkerTemplateEngine - */ - private static final Logger logger = - LoggerFactory.getLogger(FreemarkerTemplateEngine.class); - - //~--- constructors --------------------------------------------------------- - - /** - * Constructs ... - * - * - * @param servletContext - */ - @Inject - public FreemarkerTemplateEngine(ServletContext servletContext) - { - configuration = new Configuration(); - configuration.setEncoding(Locale.ENGLISH, ENCODING); - //J- - configuration.setTemplateLoader( - new MultiTemplateLoader( - new TemplateLoader[] { - new WebappTemplateLoader(servletContext, DIRECTORY_ROOT), - new ClassTemplateLoader(FreemarkerTemplateEngine.class, - DIRECTORY_ROOT) - } - ) - ); - //J+ - } - - //~--- get methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @param templatePath - * - * @return - * - * @throws IOException - */ - @Override - public FreemarkerTemplate getTemplate(String templatePath) throws IOException - { - if (logger.isTraceEnabled()) - { - logger.trace("try to find freemarker template at {}", templatePath); - } - - FreemarkerTemplate template = null; - freemarker.template.Template t = null; - - try - { - t = configuration.getTemplate(templatePath, ENCODING); - } - catch (FileNotFoundException ex) - { - if (logger.isTraceEnabled()) - { - logger.trace("could not find template ".concat(templatePath), ex); - } - } - - if (t != null) - { - template = new FreemarkerTemplate(t); - } - else if (logger.isWarnEnabled()) - { - logger.warn("could not find freemarker template at {}", templatePath); - } - - return template; - } - - /** - * Method description - * - * - * @param templateIdentifier - * @param reader - * - * @return - * - * @throws IOException - */ - @Override - public Template getTemplate(String templateIdentifier, Reader reader) - throws IOException - { - if (logger.isTraceEnabled()) - { - logger.trace("try to create freemarker template from reader with id {}", - templateIdentifier); - } - - freemarker.template.Template t = - new freemarker.template.Template(templateIdentifier, reader, - configuration, ENCODING); - - return new FreemarkerTemplate(t); - } - - /** - * Method description - * - * - * @return - */ - @Override - public TemplateType getType() - { - return TYPE; - } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private Configuration configuration; -} diff --git a/scm-webapp/src/main/java/sonia/scm/template/TemplateServlet.java b/scm-webapp/src/main/java/sonia/scm/template/TemplateServlet.java index 9ecec82463..89e6baa685 100644 --- a/scm-webapp/src/main/java/sonia/scm/template/TemplateServlet.java +++ b/scm-webapp/src/main/java/sonia/scm/template/TemplateServlet.java @@ -39,8 +39,6 @@ import com.google.common.collect.ImmutableSet; import com.google.inject.Inject; import com.google.inject.Singleton; -import freemarker.template.Configuration; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateEngineTest.java b/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateEngineTest.java deleted file mode 100644 index 34e1a54d7a..0000000000 --- a/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateEngineTest.java +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - - -package sonia.scm.template; - -//~--- JDK imports ------------------------------------------------------------ - -import java.io.InputStream; - -import javax.servlet.ServletContext; - -/** - * - * @author Sebastian Sdorra - */ -public class FreemarkerTemplateEngineTest extends TemplateEngineTestBase -{ - - /** - * Method description - * - * - * @param context - * - * @return - */ - @Override - public TemplateEngine createEngine(ServletContext context) - { - return new FreemarkerTemplateEngine(context); - } - - //~--- get methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @return - */ - @Override - public String getDefectTemplateResource() - { - return "sonia/scm/template/006.ftl"; - } - - /** - * Method description - * - * - * @return - */ - @Override - public String getTemplateResource() - { - return "sonia/scm/template/002.ftl"; - } - - /** - * Method description - * - * - * @param resource - * - * @return - */ - @Override - protected InputStream getResource(String resource) - { - return FreemarkerTemplateEngineTest.class.getResourceAsStream( - "/sonia/scm/template/".concat(resource).concat(".ftl")); - } -} diff --git a/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java b/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java deleted file mode 100644 index 7a2fc17606..0000000000 --- a/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - -package sonia.scm.template; - -//~--- non-JDK imports -------------------------------------------------------- - -import static org.mockito.Mockito.*; - -//~--- JDK imports ------------------------------------------------------------ - -import java.io.IOException; - -import javax.servlet.ServletContext; - -/** - * - * @author Sebastian Sdorra - */ -public class FreemarkerTemplateTest extends TemplateTestBase -{ - - /** - * Method description - * - * - * @return - * - * @throws IOException - */ - @Override - public Template getFailureTemplate() throws IOException - { - return getTemplate("sonia/scm/template/004.ftl"); - } - - /** - * Method description - * - * - * @return - * - * @throws IOException - */ - @Override - public Template getHelloTemplate() throws IOException - { - return getTemplate("sonia/scm/template/002.ftl"); - } - - /** - * Method description - * - * - * @param path - * - * @return - * - * @throws IOException - */ - private Template getTemplate(String path) throws IOException - { - ServletContext context = mock(ServletContext.class); - - return new FreemarkerTemplateEngine(context).getTemplate(path); - } -}