Repository: logging-log4j-audit
Updated Branches:
  refs/heads/master 83b9afa43 -> 07e5419f0


[LOG4J2-2417] fix access of optional annotations


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/commit/882d45a0
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/882d45a0
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/882d45a0

Branch: refs/heads/master
Commit: 882d45a05b51d24a40fda2659b0c02d877e90f24
Parents: c2bfa53
Author: Andrei Ivanov <[email protected]>
Authored: Mon Sep 17 14:52:45 2018 +0300
Committer: Andrei Ivanov <[email protected]>
Committed: Mon Sep 17 14:52:45 2018 +0300

----------------------------------------------------------------------
 .../logging/log4j/audit/LogEventFactory.java    |  8 +++-
 .../logging/log4j/audit/BaseEventTest.java      | 39 ++++++++++++++++++++
 .../apache/logging/log4j/audit/LoginTest.java   | 13 +++++++
 .../logging/log4j/audit/TransferTest.java       | 24 +-----------
 .../apache/logging/log4j/audit/event/Login.java |  6 +++
 5 files changed, 66 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
----------------------------------------------------------------------
diff --git 
a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
 
b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
index 85f2692..1b2f9ac 100644
--- 
a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
+++ 
b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
@@ -92,7 +92,8 @@ public class LogEventFactory {
                Class<?>[] interfaces = new Class<?>[] { intrface };
 
         String eventId = NamingUtils.lowerFirst(intrface.getSimpleName());
-        int msgLength = intrface.getAnnotation(MaxLength.class).value();
+        MaxLength maxLength = intrface.getAnnotation(MaxLength.class);
+        int msgLength = maxLength == null ? DEFAULT_MAX_LENGTH : 
maxLength.value();
         AuditMessage msg = new AuditMessage(eventId, msgLength);
                AuditEvent audit = (AuditEvent) Proxy.newProxyInstance(intrface
                                .getClassLoader(), interfaces, new 
AuditProxy(msg, intrface));
@@ -382,6 +383,11 @@ public class LogEventFactory {
     }
 
     private static void validateContextConstraint(RequestContext constraint, 
StringBuilder errors) {
+        if (constraint == null) {
+            // the request context is not mandatory
+            return;
+        }
+
         String value = ThreadContext.get(constraint.key());
         if (value != null) {
             validateConstraints(true, constraint.constraints(), 
constraint.key(), value, errors);

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java
 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java
new file mode 100644
index 0000000..01aca3e
--- /dev/null
+++ 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java
@@ -0,0 +1,39 @@
+package org.apache.logging.log4j.audit;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.junit.Before;
+import org.junit.BeforeClass;
+
+import java.util.Map;
+
+import static org.junit.Assert.assertNotNull;
+
+public class BaseEventTest {
+
+    protected static LoggerContext ctx;
+    protected static ListAppender app;
+
+    @BeforeClass
+    public static void setupClass() throws Exception {
+        ctx = (LoggerContext) LogManager.getContext(false);
+        Configuration config = ctx.getConfiguration();
+        for (Map.Entry<String, Appender> entry : 
config.getAppenders().entrySet()) {
+            if (entry.getKey().equals("List")) {
+                app = (ListAppender) entry.getValue();
+                break;
+            }
+        }
+        assertNotNull("No Appender", app);
+    }
+
+    @Before
+    public void before() {
+        app.clear();
+        ThreadContext.clearMap();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java
 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java
new file mode 100644
index 0000000..c40a1cd
--- /dev/null
+++ 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java
@@ -0,0 +1,13 @@
+package org.apache.logging.log4j.audit;
+
+import org.apache.logging.log4j.audit.event.Login;
+import org.junit.Test;
+
+public class LoginTest extends BaseEventTest {
+    @Test
+    public void testAuditClass() {
+        Login event = LogEventFactory.getEvent(Login.class);
+
+        event.logEvent();
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java
 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java
index 7c5ce5e..716bb58 100644
--- 
a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java
+++ 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java
@@ -40,29 +40,7 @@ import static org.junit.Assert.fail;
 /**
  *
  */
-public class TransferTest {
-
-    private static LoggerContext ctx;
-    private static ListAppender app;
-
-    @BeforeClass
-    public static void setupClass() throws Exception {
-        ctx = (LoggerContext) LogManager.getContext(false);
-        Configuration config = ctx.getConfiguration();
-        for (Map.Entry<String, Appender> entry : 
config.getAppenders().entrySet()) {
-            if (entry.getKey().equals("List")) {
-                app = (ListAppender) entry.getValue();
-                break;
-            }
-        }
-        assertNotNull("No Appender", app);
-    }
-
-    @Before
-    public void before() {
-        app.clear();
-        ThreadContext.clearMap();
-    }
+public class TransferTest extends BaseEventTest {
 
     @Test(expected = ConstraintValidationException.class)
     public void testValidationFailure() {

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java
----------------------------------------------------------------------
diff --git 
a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java
 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java
new file mode 100644
index 0000000..8a641f4
--- /dev/null
+++ 
b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java
@@ -0,0 +1,6 @@
+package org.apache.logging.log4j.audit.event;
+
+import org.apache.logging.log4j.audit.AuditEvent;
+
+public interface Login extends AuditEvent {
+}

Reply via email to