From b7ea3de5468341db214c97e9f13faef9c222e1e2 Mon Sep 17 00:00:00 2001 From: Ferenc Gratzer Date: Sat, 25 Feb 2012 17:48:34 +0100 Subject: [PATCH 1/3] Add project for SPR9157 --- SPR-9157/SPR-9157.txt | 2 + SPR-9157/pom.xml | 90 +++++++++++++++++++ .../issues/spr9157/Environment.java | 57 ++++++++++++ .../web/controller/EnvironmentController.java | 33 +++++++ .../web/util/EnvironmentConverter.java | 23 +++++ SPR-9157/src/main/resources/logback.xml | 78 ++++++++++++++++ .../webapp/WEB-INF/applicationContext.xml | 5 ++ .../main/webapp/WEB-INF/spr9157-servlet.xml | 49 ++++++++++ .../main/webapp/WEB-INF/views/environment.jsp | 9 ++ .../webapp/WEB-INF/views/environments.jsp | 11 +++ .../src/main/webapp/WEB-INF/views/index.jsp | 11 +++ SPR-9157/src/main/webapp/WEB-INF/web.xml | 80 +++++++++++++++++ 12 files changed, 448 insertions(+) create mode 100644 SPR-9157/SPR-9157.txt create mode 100644 SPR-9157/pom.xml create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java create mode 100644 SPR-9157/src/main/resources/logback.xml create mode 100644 SPR-9157/src/main/webapp/WEB-INF/applicationContext.xml create mode 100644 SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml create mode 100644 SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp create mode 100644 SPR-9157/src/main/webapp/WEB-INF/views/environments.jsp create mode 100644 SPR-9157/src/main/webapp/WEB-INF/views/index.jsp create mode 100644 SPR-9157/src/main/webapp/WEB-INF/web.xml diff --git a/SPR-9157/SPR-9157.txt b/SPR-9157/SPR-9157.txt new file mode 100644 index 00000000..5afee823 --- /dev/null +++ b/SPR-9157/SPR-9157.txt @@ -0,0 +1,2 @@ +http://localhost:8080/spr9157/environments.html +http://localhost:8080/spr9157/environment.html?environment=name \ No newline at end of file diff --git a/SPR-9157/pom.xml b/SPR-9157/pom.xml new file mode 100644 index 00000000..3ff25464 --- /dev/null +++ b/SPR-9157/pom.xml @@ -0,0 +1,90 @@ + + + 4.0.0 + org.springframework.issues + spr9157 + 0.1 + war + SPR-9157 :: Spring3 converter + SPR-9157 - Spring 3 converter + + + 1.6 + 3.0.7.RELEASE + 1.6.4 + + + + + org.springframework + spring-webmvc + ${spring.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + ch.qos.logback + logback-classic + 1.0.0 + + + javax.servlet + servlet-api + 2.4 + provided + + + javax.servlet.jsp + jsp-api + 2.0 + provided + + + javax.servlet + jstl + 1.1.2 + + + + + + maven-compiler-plugin + 2.3.2 + + ${java-version} + ${java-version} + + + + maven-jar-plugin + 2.3.1 + + + maven-source-plugin + 2.1.2 + + + attach-sources + + jar + + + + + + maven-surefire-plugin + 2.11 + + -Xms64m -Xmx512m -XX:MaxPermSize=128m + + + + maven-war-plugin + 2.1.1 + + + + diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java new file mode 100644 index 00000000..b9b81f57 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java @@ -0,0 +1,57 @@ +package org.springframework.issues.spr9157; + +/** + * Environment. + */ +public class Environment { + private Long id; + private String name; + + @SuppressWarnings("unused") + private Environment() { + // Hibernate + } + + public Environment(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getId() { + return id; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof Environment)) { + return false; + } + Environment other = (Environment) obj; + return getName().equals(other.getName()); + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("Environment [id=").append(id).append(", name=").append(name).append("]"); + return builder.toString(); + } +} diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java new file mode 100644 index 00000000..6aedff26 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java @@ -0,0 +1,33 @@ +package org.springframework.issues.spr9157.web.controller; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.issues.spr9157.Environment; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +/** + * Controller for managing environment. + */ +@Controller +public class EnvironmentController { + private static final Logger LOG = LoggerFactory.getLogger(EnvironmentController.class); + + @RequestMapping(value = "/environments.html", method = RequestMethod.GET) + public ModelAndView getEnvironments() { + LOG.debug("environments"); + return new ModelAndView("environments"); + } + + @RequestMapping(value = "/environment.html", method = RequestMethod.GET) + public ModelAndView getEnvironment(@RequestParam Environment environment) { + LOG.debug("environment: {}", environment); + ModelAndView mav = new ModelAndView("environment"); + mav.addObject("environment", environment); + return mav; + } +} diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java new file mode 100644 index 00000000..7a6ccf6d --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java @@ -0,0 +1,23 @@ +package org.springframework.issues.spr9157.web.util; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.convert.converter.Converter; +import org.springframework.issues.spr9157.Environment; +import org.springframework.util.StringUtils; + +/** + * Environment converter. + */ +public class EnvironmentConverter implements Converter { + private static final Logger LOG = LoggerFactory.getLogger(EnvironmentConverter.class); + + public Environment convert(String source) { + LOG.debug("source: {}", source); + if (!StringUtils.hasText(source)) { + return null; + } + return new Environment(source.trim()); + } +} diff --git a/SPR-9157/src/main/resources/logback.xml b/SPR-9157/src/main/resources/logback.xml new file mode 100644 index 00000000..b1e6874d --- /dev/null +++ b/SPR-9157/src/main/resources/logback.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + C:\\Temp\\logDebug.log + + + ${logback.debugFile}.%i.log + 1 + 5 + + + + 20MB + + + + %date %-5level %logger [%thread] [%file : %line] - %msg%n + + + + + + + WARN + + + C:\\Temp\\logError.log + + + ${logback.errorFile}.%i.log + 1 + 2 + + + + 20MB + + + + %date %-5level %logger [%thread] [%file : %line] - %msg%n + + + + + + + %date %-5level %logger{36} [%thread] [%file : %line] - %msg%n + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SPR-9157/src/main/webapp/WEB-INF/applicationContext.xml b/SPR-9157/src/main/webapp/WEB-INF/applicationContext.xml new file mode 100644 index 00000000..8e12b6e1 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/applicationContext.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml b/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml new file mode 100644 index 00000000..bd29fe9d --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp b/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp new file mode 100644 index 00000000..745b5b99 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp @@ -0,0 +1,9 @@ + +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + +Spring 3 Converter + +Environment: <%= request.getAttribute("environment") %> + \ No newline at end of file diff --git a/SPR-9157/src/main/webapp/WEB-INF/views/environments.jsp b/SPR-9157/src/main/webapp/WEB-INF/views/environments.jsp new file mode 100644 index 00000000..2cc17024 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/views/environments.jsp @@ -0,0 +1,11 @@ +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + ]]> + + + + +Spring 3 Converter + +Environments + \ No newline at end of file diff --git a/SPR-9157/src/main/webapp/WEB-INF/views/index.jsp b/SPR-9157/src/main/webapp/WEB-INF/views/index.jsp new file mode 100644 index 00000000..6ca54ff0 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/views/index.jsp @@ -0,0 +1,11 @@ +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + ]]> + + + + +Spring 3 Converter + +Index + \ No newline at end of file diff --git a/SPR-9157/src/main/webapp/WEB-INF/web.xml b/SPR-9157/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..93911d98 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,80 @@ + + + spr9157 + + + requestScopeFilter + org.springframework.web.filter.RequestContextFilter + + + requestScopeFilter + /* + + + + characterEncodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + characterEncodingFilter + /* + + + + + org.springframework.web.context.ContextLoaderListener + + + org.springframework.web.context.request.RequestContextListener + + + org.springframework.web.util.IntrospectorCleanupListener + + + + spr9157 + org.springframework.web.servlet.DispatcherServlet + 1 + + + spr9157 + *.html + + + spr9157 + *.do + + + spr9157 + *.json + + + + + 30 + + + + + index.jsp + + + + + + Forbidden methods + /* + TRACE + + + + From b309ee76fa30f70d66c726db213053c1052e2cf2 Mon Sep 17 00:00:00 2001 From: ferengra Date: Mon, 27 Feb 2012 20:16:52 +0100 Subject: [PATCH 2/3] Error in GenericConversionService.ConverterAdapter --- SPR-9157/pom.xml | 2 +- .../spr9157/model/EnhancedEnvironment.java | 11 ++++ .../model/EnhancedEnvironmentImpl.java | 28 +++++++++ .../issues/spr9157/model/Environment.java | 11 ++++ .../issues/spr9157/model/EnvironmentImpl.java | 58 +++++++++++++++++++ .../web/controller/EnvironmentController.java | 7 ++- .../web/util/EnvironmentConverter.java | 8 ++- .../main/webapp/WEB-INF/spr9157-servlet.xml | 5 ++ .../main/webapp/WEB-INF/views/environment.jsp | 4 +- .../webapp/WEB-INF/views/errorInternal.jsp | 19 ++++++ 10 files changed, 145 insertions(+), 8 deletions(-) create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironment.java create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironmentImpl.java create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/model/Environment.java create mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnvironmentImpl.java create mode 100644 SPR-9157/src/main/webapp/WEB-INF/views/errorInternal.jsp diff --git a/SPR-9157/pom.xml b/SPR-9157/pom.xml index 3ff25464..be88af6c 100644 --- a/SPR-9157/pom.xml +++ b/SPR-9157/pom.xml @@ -9,7 +9,7 @@ SPR-9157 - Spring 3 converter - 1.6 + 1.5 3.0.7.RELEASE 1.6.4 diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironment.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironment.java new file mode 100644 index 00000000..865780e6 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironment.java @@ -0,0 +1,11 @@ +package org.springframework.issues.spr9157.model; + +/** + * Enhanced environment. + * + * @author ferengra + */ +public interface EnhancedEnvironment extends Environment { + + String getDescription(); +} diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironmentImpl.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironmentImpl.java new file mode 100644 index 00000000..94fb35d7 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnhancedEnvironmentImpl.java @@ -0,0 +1,28 @@ +package org.springframework.issues.spr9157.model; + +/** + * Enhanced environment implementation. + * + * @author ferengra + */ +public class EnhancedEnvironmentImpl extends EnvironmentImpl implements EnhancedEnvironment { + private String description; + + @SuppressWarnings("unused") + private EnhancedEnvironmentImpl() { + // Hibernate + } + + public EnhancedEnvironmentImpl(String name, String description) { + super(name); + this.description = description; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/Environment.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/Environment.java new file mode 100644 index 00000000..9e80ca07 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/Environment.java @@ -0,0 +1,11 @@ +package org.springframework.issues.spr9157.model; + +/** + * Environment. + * + * @author ferengra + */ +public interface Environment { + + String getName(); +} diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnvironmentImpl.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnvironmentImpl.java new file mode 100644 index 00000000..30d60a8f --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/model/EnvironmentImpl.java @@ -0,0 +1,58 @@ +package org.springframework.issues.spr9157.model; + +/** + * Environment implementation. + * + * @author ferengra + */ +public class EnvironmentImpl implements Environment { + private Long id; + private String name; + + protected EnvironmentImpl() { + // Hibernate + } + + public EnvironmentImpl(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getId() { + return id; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof EnhancedEnvironmentImpl)) { + return false; + } + EnhancedEnvironmentImpl other = (EnhancedEnvironmentImpl) obj; + return getName().equals(other.getName()); + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("EnvironmentImpl [id=").append(id).append(", name=").append(name).append("]"); + return builder.toString(); + } +} diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java index 6aedff26..332f3145 100644 --- a/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java @@ -1,9 +1,8 @@ package org.springframework.issues.spr9157.web.controller; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.issues.spr9157.Environment; +import org.springframework.issues.spr9157.model.EnhancedEnvironment; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -12,6 +11,8 @@ /** * Controller for managing environment. + * + * @author ferengra */ @Controller public class EnvironmentController { @@ -24,7 +25,7 @@ public ModelAndView getEnvironments() { } @RequestMapping(value = "/environment.html", method = RequestMethod.GET) - public ModelAndView getEnvironment(@RequestParam Environment environment) { + public ModelAndView getEnvironment(@RequestParam EnhancedEnvironment environment) { LOG.debug("environment: {}", environment); ModelAndView mav = new ModelAndView("environment"); mav.addObject("environment", environment); diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java index 7a6ccf6d..cab4dbe2 100644 --- a/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java @@ -1,14 +1,16 @@ package org.springframework.issues.spr9157.web.util; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.convert.converter.Converter; -import org.springframework.issues.spr9157.Environment; +import org.springframework.issues.spr9157.model.EnhancedEnvironmentImpl; +import org.springframework.issues.spr9157.model.Environment; import org.springframework.util.StringUtils; /** * Environment converter. + * + * @author ferengra */ public class EnvironmentConverter implements Converter { private static final Logger LOG = LoggerFactory.getLogger(EnvironmentConverter.class); @@ -18,6 +20,6 @@ public Environment convert(String source) { if (!StringUtils.hasText(source)) { return null; } - return new Environment(source.trim()); + return new EnhancedEnvironmentImpl(source.trim(), source.trim()); } } diff --git a/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml b/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml index bd29fe9d..3067bc29 100644 --- a/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml +++ b/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml @@ -46,4 +46,9 @@ + + + + + diff --git a/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp b/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp index 745b5b99..cce42251 100644 --- a/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp +++ b/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp @@ -1,5 +1,7 @@ - <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + ]]> + diff --git a/SPR-9157/src/main/webapp/WEB-INF/views/errorInternal.jsp b/SPR-9157/src/main/webapp/WEB-INF/views/errorInternal.jsp new file mode 100644 index 00000000..6b4805f4 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/views/errorInternal.jsp @@ -0,0 +1,19 @@ +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page isErrorPage="true" %> +<%@ page import="org.slf4j.LoggerFactory" %> + + ]]> + + + + +Spring 3 Converter + + +Error
+<% +LoggerFactory.getLogger("InternalError").error("Exception occured: ", exception); +%> +<%= exception.toString() %>
+ + From bd89ae924043b052256ae992fd8663dda449b305 Mon Sep 17 00:00:00 2001 From: ferengra Date: Mon, 27 Feb 2012 20:22:54 +0100 Subject: [PATCH 3/3] Error in GenericConversionService.ConverterAdapter --- .../issues/spr9157/Environment.java | 57 ------------------- 1 file changed, 57 deletions(-) delete mode 100644 SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java diff --git a/SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java b/SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java deleted file mode 100644 index b9b81f57..00000000 --- a/SPR-9157/src/main/java/org/springframework/issues/spr9157/Environment.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.springframework.issues.spr9157; - -/** - * Environment. - */ -public class Environment { - private Long id; - private String name; - - @SuppressWarnings("unused") - private Environment() { - // Hibernate - } - - public Environment(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Long getId() { - return id; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((getName() == null) ? 0 : getName().hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof Environment)) { - return false; - } - Environment other = (Environment) obj; - return getName().equals(other.getName()); - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("Environment [id=").append(id).append(", name=").append(name).append("]"); - return builder.toString(); - } -}