Repository: struts Updated Branches: refs/heads/develop 48c0764f7 -> 093532edc
WW-4492 Add support for Log4J2 as a struts and xwork logging backend - Use new log4j2 in blank and rest showcase app - Migrate to newer jetty plugin version Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/093532ed Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/093532ed Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/093532ed Branch: refs/heads/develop Commit: 093532edc2b3a6d0421e44f93ba4b7aefbd1fac3 Parents: 48c0764 Author: Johannes Geppert <joh...@gmail.com> Authored: Sat Apr 18 21:15:48 2015 +0200 Committer: Johannes Geppert <joh...@gmail.com> Committed: Sat Apr 18 21:15:48 2015 +0200 ---------------------------------------------------------------------- apps/blank/pom.xml | 18 +++++- apps/blank/src/main/resources/log4j.properties | 26 -------- apps/blank/src/main/resources/log4j2.xml | 15 +++++ apps/mailreader/pom.xml | 2 +- apps/rest-showcase/pom.xml | 32 ++++------ .../main/java/org/demo/rest/example/Order.java | 66 ++++++++++---------- .../org/demo/rest/example/OrdersController.java | 8 ++- .../src/main/resources/log4j.properties | 26 -------- .../rest-showcase/src/main/resources/log4j2.xml | 16 +++++ apps/showcase/pom.xml | 2 +- 10 files changed, 102 insertions(+), 109 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/blank/pom.xml ---------------------------------------------------------------------- diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml index 979f077..c105dd8 100644 --- a/apps/blank/pom.xml +++ b/apps/blank/pom.xml @@ -48,8 +48,14 @@ </dependency> <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.2</version> </dependency> <dependency> @@ -64,7 +70,7 @@ <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> - <version>8.1.7.v20120910</version> + <version>8.1.16.v20140903</version> <configuration> <stopKey>CTRL+C</stopKey> <stopPort>8999</stopPort> @@ -72,6 +78,12 @@ <scanTargets> <scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget> </scanTargets> + <systemProperties> + <systemProperty> + <name>xwork.loggerFactory</name> + <value>com.opensymphony.xwork2.util.logging.log4j2.Log4j2LoggerFactory</value> + </systemProperty> + </systemProperties> </configuration> </plugin> </plugins> http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/blank/src/main/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/apps/blank/src/main/resources/log4j.properties b/apps/blank/src/main/resources/log4j.properties deleted file mode 100644 index 3c5af7c..0000000 --- a/apps/blank/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging) -# -# The five logging levels used by Log are (in order): -# -# 1. DEBUG (the least serious) -# 2. INFO -# 3. WARN -# 4. ERROR -# 5. FATAL (the most serious) - - -# Set root logger level to WARN and append to stdout -log4j.rootLogger=INFO, stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout - -# Pattern to output the caller's file name and line number. -log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n - -# Print only messages of level ERROR or above in the package noModule. -log4j.logger.noModule=FATAL - -log4j.logger.com.opensymphony.xwork2=DEBUG -log4j.logger.org.apache.struts2=DEBUG http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/blank/src/main/resources/log4j2.xml ---------------------------------------------------------------------- diff --git a/apps/blank/src/main/resources/log4j2.xml b/apps/blank/src/main/resources/log4j2.xml new file mode 100644 index 0000000..aee8b3b --- /dev/null +++ b/apps/blank/src/main/resources/log4j2.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration> + <Appenders> + <Console name="STDOUT" target="SYSTEM_OUT"> + <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </Console> + </Appenders> + <Loggers> + <Logger name="com.opensymphony.xwork2" level="debug"/> + <Logger name="org.apache.struts2" level="debug"/> + <Root level="warn"> + <AppenderRef ref="STDOUT"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/mailreader/pom.xml ---------------------------------------------------------------------- diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml index 5d38811..022c4ef 100644 --- a/apps/mailreader/pom.xml +++ b/apps/mailreader/pom.xml @@ -63,7 +63,7 @@ <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> - <version>8.1.7.v20120910</version> + <version>8.1.16.v20140903</version> <configuration> <stopKey>CTRL+C</stopKey> <stopPort>8999</stopPort> http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/rest-showcase/pom.xml ---------------------------------------------------------------------- diff --git a/apps/rest-showcase/pom.xml b/apps/rest-showcase/pom.xml index 8919e63..d3679a1 100644 --- a/apps/rest-showcase/pom.xml +++ b/apps/rest-showcase/pom.xml @@ -48,11 +48,19 @@ <groupId>org.apache.struts</groupId> <artifactId>struts2-config-browser-plugin</artifactId> </dependency> + <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>2.2</version> </dependency> <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.2</version> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> @@ -96,22 +104,17 @@ <target>1.5</target> </configuration> </plugin> - <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> - <version>8.1.7.v20120910</version> + <version>8.1.16.v20140903</version> <configuration> <stopKey>CTRL+C</stopKey> <stopPort>8999</stopPort> <systemProperties> <systemProperty> - <name>log4j.configuration</name> - <value>file:${basedir}/src/main/resources/log4j.properties</value> - </systemProperty> - <systemProperty> - <name>slf4j</name> - <value>false</value> + <name>xwork.loggerFactory</name> + <value>com.opensymphony.xwork2.util.logging.log4j2.Log4j2LoggerFactory</value> </systemProperty> </systemProperties> <scanIntervalSeconds>10</scanIntervalSeconds> @@ -121,16 +124,7 @@ <descriptor>${basedir}/src/main/webapp/WEB-INF/web.xml</descriptor> </webAppConfig> </configuration> - <dependencies> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.17</version> - </dependency> - </dependencies> </plugin> - - <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java ---------------------------------------------------------------------- diff --git a/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java b/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java index cc9a664..2c5e3f8 100644 --- a/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java +++ b/apps/rest-showcase/src/main/java/org/demo/rest/example/Order.java @@ -1,5 +1,9 @@ package org.demo.rest.example; +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; + public class Order { String id; String clientName; @@ -33,41 +37,39 @@ public class Order { } @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (obj == this) { + return true; + } + if (obj.getClass() != getClass()) { + return false; + } + Order rhs = (Order) obj; + return new EqualsBuilder() + .append(this.id, rhs.id) + .append(this.clientName, rhs.clientName) + .append(this.amount, rhs.amount) + .isEquals(); + } + + @Override public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + amount; - result = prime * result - + ((clientName == null) ? 0 : clientName.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; + return new HashCodeBuilder() + .append(id) + .append(clientName) + .append(amount) + .toHashCode(); } @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - final Order other = (Order) obj; - if (amount != other.amount) - return false; - if (clientName == null) { - if (other.clientName != null) - return false; - } else if (!clientName.equals(other.clientName)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("clientName", clientName) + .append("amount", amount) + .toString(); } - - - - } http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java ---------------------------------------------------------------------- diff --git a/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java b/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java index 07f0cd1..8ccad7e 100644 --- a/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java +++ b/apps/rest-showcase/src/main/java/org/demo/rest/example/OrdersController.java @@ -2,6 +2,8 @@ package org.demo.rest.example; import java.util.Collection; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.struts2.rest.DefaultHttpHeaders; import org.apache.struts2.rest.HttpHeaders; import org.apache.struts2.convention.annotation.Results; @@ -15,7 +17,9 @@ import com.opensymphony.xwork2.ValidationAwareSupport; @Result(name="success", type="redirectAction", params = {"actionName" , "orders"}) }) public class OrdersController extends ValidationAwareSupport implements ModelDriven<Object>, Validateable{ - + + private static final Logger log = LogManager.getLogger(OrdersController.class); + private Order model = new Order(); private String id; private Collection<Order> list; @@ -51,6 +55,7 @@ public class OrdersController extends ValidationAwareSupport implements ModelDri // DELETE /orders/1 public String destroy() { + log.debug("Delete order with id: {}", id); ordersService.remove(id); addActionMessage("Order removed successfully"); return "success"; @@ -58,6 +63,7 @@ public class OrdersController extends ValidationAwareSupport implements ModelDri // POST /orders public HttpHeaders create() { + log.debug("Create new order {}", model); ordersService.save(model); addActionMessage("New order created successfully"); return new DefaultHttpHeaders("success") http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/rest-showcase/src/main/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/apps/rest-showcase/src/main/resources/log4j.properties b/apps/rest-showcase/src/main/resources/log4j.properties deleted file mode 100644 index 3c5af7c..0000000 --- a/apps/rest-showcase/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging) -# -# The five logging levels used by Log are (in order): -# -# 1. DEBUG (the least serious) -# 2. INFO -# 3. WARN -# 4. ERROR -# 5. FATAL (the most serious) - - -# Set root logger level to WARN and append to stdout -log4j.rootLogger=INFO, stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout - -# Pattern to output the caller's file name and line number. -log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n - -# Print only messages of level ERROR or above in the package noModule. -log4j.logger.noModule=FATAL - -log4j.logger.com.opensymphony.xwork2=DEBUG -log4j.logger.org.apache.struts2=DEBUG http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/rest-showcase/src/main/resources/log4j2.xml ---------------------------------------------------------------------- diff --git a/apps/rest-showcase/src/main/resources/log4j2.xml b/apps/rest-showcase/src/main/resources/log4j2.xml new file mode 100644 index 0000000..33a8432 --- /dev/null +++ b/apps/rest-showcase/src/main/resources/log4j2.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration> + <Appenders> + <Console name="STDOUT" target="SYSTEM_OUT"> + <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </Console> + </Appenders> + <Loggers> + <Logger name="com.opensymphony.xwork2" level="info"/> + <Logger name="org.apache.struts2" level="info"/> + <Logger name="org.demo.rest" level="debug"/> + <Root level="warn"> + <AppenderRef ref="STDOUT"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts/blob/093532ed/apps/showcase/pom.xml ---------------------------------------------------------------------- diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml index f7aa11b..f5bd3a1 100644 --- a/apps/showcase/pom.xml +++ b/apps/showcase/pom.xml @@ -184,7 +184,7 @@ <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> - <version>8.1.7.v20120910</version> + <version>8.1.16.v20140903</version> <configuration> <stopKey>CTRL+C</stopKey> <stopPort>8999</stopPort>