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..be88af6c --- /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.5 + 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/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 new file mode 100644 index 00000000..332f3145 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/controller/EnvironmentController.java @@ -0,0 +1,34 @@ +package org.springframework.issues.spr9157.web.controller; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +/** + * Controller for managing environment. + * + * @author ferengra + */ +@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 EnhancedEnvironment 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..cab4dbe2 --- /dev/null +++ b/SPR-9157/src/main/java/org/springframework/issues/spr9157/web/util/EnvironmentConverter.java @@ -0,0 +1,25 @@ +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.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); + + public Environment convert(String source) { + LOG.debug("source: {}", source); + if (!StringUtils.hasText(source)) { + return null; + } + return new EnhancedEnvironmentImpl(source.trim(), 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..3067bc29 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/spr9157-servlet.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..cce42251 --- /dev/null +++ b/SPR-9157/src/main/webapp/WEB-INF/views/environment.jsp @@ -0,0 +1,11 @@ +<%@ 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/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() %>
+ + 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 + + + +