From dc7ae8708fe80af8742370d2a541a4b2a18a39ce Mon Sep 17 00:00:00 2001
From: Eike Cochu <eike@cochu.com>
Date: Fri, 27 Nov 2015 12:08:09 +0100
Subject: [PATCH] commented out catalina cors filter in favor of own provider
 implementation added log4j2 and xml configuration file set index.jsp to
 redirect to WADL

---
 ui/backend/.classpath                         | 25 +++++++++++++++++--
 .../org.eclipse.wst.common.component          |  3 +++
 ui/backend/pom.xml                            |  5 ++++
 .../java/de/cochu/backend/Application.java    |  2 +-
 .../java/de/cochu/backend/CORSFilter.java     | 20 +++++++++++++++
 .../src/main/java/de/cochu/backend/Test.java  |  5 ++++
 ui/backend/src/main/resources/log4j2.xml      | 13 ++++++++++
 ui/backend/src/main/webapp/WEB-INF/web.xml    |  2 ++
 ui/backend/src/main/webapp/index.jsp          |  6 +----
 ui/backend/target/classes/log4j2.xml          | 13 ++++++++++
 .../maven/de.cochu/backend/pom.properties     |  2 +-
 .../META-INF/maven/de.cochu/backend/pom.xml   |  5 ++++
 12 files changed, 92 insertions(+), 9 deletions(-)
 create mode 100644 ui/backend/src/main/java/de/cochu/backend/CORSFilter.java
 create mode 100644 ui/backend/src/main/resources/log4j2.xml
 create mode 100644 ui/backend/target/classes/log4j2.xml

diff --git a/ui/backend/.classpath b/ui/backend/.classpath
index 106b4f5e..6acf3eee 100644
--- a/ui/backend/.classpath
+++ b/ui/backend/.classpath
@@ -1,7 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
diff --git a/ui/backend/.settings/org.eclipse.wst.common.component b/ui/backend/.settings/org.eclipse.wst.common.component
index cc321f3a..cd3494c5 100644
--- a/ui/backend/.settings/org.eclipse.wst.common.component
+++ b/ui/backend/.settings/org.eclipse.wst.common.component
@@ -3,6 +3,9 @@
         <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
         <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
         <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
         <property name="context-root" value="backend"/>
         <property name="java-output-path" value="/backend/target/classes"/>
     </wb-module>
diff --git a/ui/backend/pom.xml b/ui/backend/pom.xml
index 4b36e97e..c8b5d4de 100644
--- a/ui/backend/pom.xml
+++ b/ui/backend/pom.xml
@@ -26,5 +26,10 @@
 			<artifactId>javax.servlet-api</artifactId>
 			<version>3.1.0</version>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>2.4.1</version>
+		</dependency>
 	</dependencies>
 </project>
diff --git a/ui/backend/src/main/java/de/cochu/backend/Application.java b/ui/backend/src/main/java/de/cochu/backend/Application.java
index b45ab73a..38fc8eb7 100644
--- a/ui/backend/src/main/java/de/cochu/backend/Application.java
+++ b/ui/backend/src/main/java/de/cochu/backend/Application.java
@@ -7,7 +7,7 @@ public class Application extends ResourceConfig {
 
 	public Application() {
 		packages("de.cochu.backend");
-		register(LoggingFilter.class);
+		//register(LoggingFilter.class);
 	}
 	
 }
diff --git a/ui/backend/src/main/java/de/cochu/backend/CORSFilter.java b/ui/backend/src/main/java/de/cochu/backend/CORSFilter.java
new file mode 100644
index 00000000..2bdd870e
--- /dev/null
+++ b/ui/backend/src/main/java/de/cochu/backend/CORSFilter.java
@@ -0,0 +1,20 @@
+package de.cochu.backend;
+
+import java.io.IOException;
+
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.ext.Provider;
+
+@Provider
+public class CORSFilter implements ContainerResponseFilter {
+
+	@Override
+	public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
+		response.getHeaders().add("Access-Control-Allow-Origin", "*");
+		response.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");
+		response.getHeaders().add("Access-Control-Allow-Credentials", "true");
+		response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
+	}
+}
\ No newline at end of file
diff --git a/ui/backend/src/main/java/de/cochu/backend/Test.java b/ui/backend/src/main/java/de/cochu/backend/Test.java
index d961513b..61988a11 100644
--- a/ui/backend/src/main/java/de/cochu/backend/Test.java
+++ b/ui/backend/src/main/java/de/cochu/backend/Test.java
@@ -5,9 +5,14 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
 @Path("/")
 public class Test {
 	
+	static Logger log = LogManager.getLogger(Test.class);
+	
 	@GET
 	@Path("/test")
 	@Produces(MediaType.TEXT_PLAIN)
diff --git a/ui/backend/src/main/resources/log4j2.xml b/ui/backend/src/main/resources/log4j2.xml
new file mode 100644
index 00000000..e43e1b99
--- /dev/null
+++ b/ui/backend/src/main/resources/log4j2.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+	<Appenders>
+		<Console name="Console" target="SYSTEM_OUT">
+			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+		</Console>
+	</Appenders>
+	<Loggers>
+		<Root level="error">
+			<AppenderRef ref="Console" />
+		</Root>
+	</Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/ui/backend/src/main/webapp/WEB-INF/web.xml b/ui/backend/src/main/webapp/WEB-INF/web.xml
index 4ac4dc4a..043b4d83 100644
--- a/ui/backend/src/main/webapp/WEB-INF/web.xml
+++ b/ui/backend/src/main/webapp/WEB-INF/web.xml
@@ -17,6 +17,7 @@
 		<url-pattern>/rest/*</url-pattern>
 	</servlet-mapping>
 
+	<!--
 	<filter>
 		<filter-name>CorsFilter</filter-name>
 		<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
@@ -26,5 +27,6 @@
 		<filter-name>CorsFilter</filter-name>
 		<url-pattern>/rest/*</url-pattern>
 	</filter-mapping>
+	-->
 
 </web-app>
diff --git a/ui/backend/src/main/webapp/index.jsp b/ui/backend/src/main/webapp/index.jsp
index c38169bb..d4fb745c 100644
--- a/ui/backend/src/main/webapp/index.jsp
+++ b/ui/backend/src/main/webapp/index.jsp
@@ -1,5 +1 @@
-<html>
-<body>
-<h2>Hello World!</h2>
-</body>
-</html>
+<jsp:forward page="rest/application.wadl"/>
\ No newline at end of file
diff --git a/ui/backend/target/classes/log4j2.xml b/ui/backend/target/classes/log4j2.xml
new file mode 100644
index 00000000..e43e1b99
--- /dev/null
+++ b/ui/backend/target/classes/log4j2.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+	<Appenders>
+		<Console name="Console" target="SYSTEM_OUT">
+			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+		</Console>
+	</Appenders>
+	<Loggers>
+		<Root level="error">
+			<AppenderRef ref="Console" />
+		</Root>
+	</Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.properties b/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.properties
index c48c7ff7..02aea9a7 100644
--- a/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.properties
+++ b/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Fri Nov 27 02:23:35 CET 2015
+#Fri Nov 27 11:38:17 CET 2015
 version=0.0.1-SNAPSHOT
 groupId=de.cochu
 m2e.projectName=backend
diff --git a/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.xml b/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.xml
index 4b36e97e..c8b5d4de 100644
--- a/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.xml
+++ b/ui/backend/target/m2e-wtp/web-resources/META-INF/maven/de.cochu/backend/pom.xml
@@ -26,5 +26,10 @@
 			<artifactId>javax.servlet-api</artifactId>
 			<version>3.1.0</version>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>2.4.1</version>
+		</dependency>
 	</dependencies>
 </project>
-- 
GitLab