You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/01/26 01:24:19 UTC

[incubator-servicecomb-java-chassis] 01/02: [SCB-177] merge redundant access log element

This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit badb1474847bc7f0211ec2ccd93171321a233e94
Author: yaohaishi <ya...@huawei.com>
AuthorDate: Wed Jan 24 23:26:58 2018 +0800

    [SCB-177] merge redundant access log element
---
 ...ttenV1Element.java => BytesWrittenElement.java} | 16 ++---
 .../element/impl/BytesWrittenV2Element.java        | 46 -------------
 .../parser/matcher/impl/BytesWrittenV1Matcher.java |  4 +-
 .../parser/matcher/impl/BytesWrittenV2Matcher.java |  4 +-
 ...ementTest.java => BytesWrittenElementTest.java} |  9 ++-
 .../element/impl/BytesWrittenV2ElementTest.java    | 78 ----------------------
 .../impl/DefaultAccessLogPatternParserTest.java    |  7 +-
 .../matcher/impl/BytesWrittenV1MatcherTest.java    |  4 +-
 .../matcher/impl/BytesWrittenV2MatcherTest.java    |  4 +-
 9 files changed, 23 insertions(+), 149 deletions(-)

diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV1Element.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenElement.java
similarity index 80%
rename from transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV1Element.java
rename to transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenElement.java
index 58ac15f..2d88feb 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV1Element.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenElement.java
@@ -22,22 +22,22 @@ import org.apache.servicecomb.transport.rest.vertx.accesslog.element.AccessLogEl
 
 import io.vertx.core.http.HttpServerResponse;
 
-/**
- * Zero bytes written as 0
- */
-public class BytesWrittenV1Element implements AccessLogElement {
+public class BytesWrittenElement implements AccessLogElement {
+  // print zeroBytes when bytes is zero
+  private final String zeroBytes;
 
-  public static final String ZERO_BYTES = "0";
+  public BytesWrittenElement(String zeroBytesPlaceholder) {
+    zeroBytes = zeroBytesPlaceholder;
+  }
 
   @Override
   public String getFormattedElement(AccessLogParam accessLogParam) {
     HttpServerResponse response = accessLogParam.getRoutingContext().response();
     if (null == response) {
-      return ZERO_BYTES;
+      return zeroBytes;
     }
 
     long bytesWritten = response.bytesWritten();
-
-    return String.valueOf(bytesWritten);
+    return 0 == bytesWritten ? zeroBytes : String.valueOf(bytesWritten);
   }
 }
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV2Element.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV2Element.java
deleted file mode 100644
index c2f0338..0000000
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV2Element.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl;
-
-import org.apache.servicecomb.transport.rest.vertx.accesslog.AccessLogParam;
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.AccessLogElement;
-
-import io.vertx.core.http.HttpServerResponse;
-
-/**
- * Zero bytes written as -
- */
-public class BytesWrittenV2Element implements AccessLogElement {
-
-  public static final String ZERO_BYTES = "-";
-
-  @Override
-  public String getFormattedElement(AccessLogParam accessLogParam) {
-    HttpServerResponse response = accessLogParam.getRoutingContext().response();
-    if (null == response) {
-      return ZERO_BYTES;
-    }
-
-    long bytesWritten = response.bytesWritten();
-    if (0 == bytesWritten) {
-      return ZERO_BYTES;
-    }
-
-    return String.valueOf(bytesWritten);
-  }
-}
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1Matcher.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1Matcher.java
index 406a60a..258d5b1 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1Matcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1Matcher.java
@@ -18,11 +18,11 @@
 package org.apache.servicecomb.transport.rest.vertx.accesslog.parser.matcher.impl;
 
 import org.apache.servicecomb.transport.rest.vertx.accesslog.element.AccessLogElement;
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenV1Element;
+import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenElement;
 
 public class BytesWrittenV1Matcher extends SinglePatternImmutableElementMatcher {
 
-  public static final BytesWrittenV1Element ELEMENT = new BytesWrittenV1Element();
+  public static final BytesWrittenElement ELEMENT = new BytesWrittenElement("0");
 
   @Override
   protected String getPlaceholderPattern() {
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2Matcher.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2Matcher.java
index 2bba577..8b3307a 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2Matcher.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2Matcher.java
@@ -18,11 +18,11 @@
 package org.apache.servicecomb.transport.rest.vertx.accesslog.parser.matcher.impl;
 
 import org.apache.servicecomb.transport.rest.vertx.accesslog.element.AccessLogElement;
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenV2Element;
+import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenElement;
 
 public class BytesWrittenV2Matcher extends SinglePatternImmutableElementMatcher {
 
-  public static final BytesWrittenV2Element ELEMENT = new BytesWrittenV2Element();
+  public static final BytesWrittenElement ELEMENT = new BytesWrittenElement("-");
 
   @Override
   protected String getPlaceholderPattern() {
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV1ElementTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenElementTest.java
similarity index 93%
rename from transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV1ElementTest.java
rename to transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenElementTest.java
index 91880a1..a85e080 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV1ElementTest.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenElementTest.java
@@ -26,16 +26,16 @@ import org.mockito.Mockito;
 import io.vertx.core.http.HttpServerResponse;
 import io.vertx.ext.web.RoutingContext;
 
-public class BytesWrittenV1ElementTest {
+public class BytesWrittenElementTest {
 
-  private static final BytesWrittenV1Element ELEMENT = new BytesWrittenV1Element();
+  private static final BytesWrittenElement ELEMENT = new BytesWrittenElement("0");
 
   @Test
   public void getFormattedElement() {
     AccessLogParam param = new AccessLogParam();
     RoutingContext mockContext = Mockito.mock(RoutingContext.class);
     HttpServerResponse mockResponse = Mockito.mock(HttpServerResponse.class);
-    long bytesWritten = 16l;
+    long bytesWritten = 16L;
 
     param.setRoutingContext(mockContext);
     Mockito.when(mockContext.response()).thenReturn(mockResponse);
@@ -46,7 +46,6 @@ public class BytesWrittenV1ElementTest {
     assertEquals(String.valueOf(bytesWritten), result);
   }
 
-
   @Test
   public void getFormattedElementOnResponseIsNull() {
     AccessLogParam param = new AccessLogParam();
@@ -66,7 +65,7 @@ public class BytesWrittenV1ElementTest {
     AccessLogParam param = new AccessLogParam();
     RoutingContext mockContext = Mockito.mock(RoutingContext.class);
     HttpServerResponse mockResponse = Mockito.mock(HttpServerResponse.class);
-    long bytesWritten = 0l;
+    long bytesWritten = 0L;
 
     param.setRoutingContext(mockContext);
     Mockito.when(mockContext.response()).thenReturn(mockResponse);
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV2ElementTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV2ElementTest.java
deleted file mode 100644
index 691ee5c..0000000
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/element/impl/BytesWrittenV2ElementTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.servicecomb.transport.rest.vertx.accesslog.AccessLogParam;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import io.vertx.core.http.HttpServerResponse;
-import io.vertx.ext.web.RoutingContext;
-
-public class BytesWrittenV2ElementTest {
-
-  public static final BytesWrittenV2Element ELEMENT = new BytesWrittenV2Element();
-
-  @Test
-  public void getFormattedElement() {
-    AccessLogParam param = new AccessLogParam();
-    RoutingContext mockContext = Mockito.mock(RoutingContext.class);
-    HttpServerResponse mockResponse = Mockito.mock(HttpServerResponse.class);
-    long bytesWritten = 16L;
-
-    param.setRoutingContext(mockContext);
-    Mockito.when(mockContext.response()).thenReturn(mockResponse);
-    Mockito.when(mockResponse.bytesWritten()).thenReturn(bytesWritten);
-
-    String result = ELEMENT.getFormattedElement(param);
-
-    assertEquals(String.valueOf(bytesWritten), result);
-  }
-
-
-  @Test
-  public void getFormattedElementOnResponseIsNull() {
-    AccessLogParam param = new AccessLogParam();
-    RoutingContext mockContext = Mockito.mock(RoutingContext.class);
-
-    param.setRoutingContext(mockContext);
-    Mockito.when(mockContext.response()).thenReturn(null);
-
-    String result = ELEMENT.getFormattedElement(param);
-
-    assertEquals("-", result);
-  }
-
-
-  @Test
-  public void getFormattedElementOnBytesWrittenIsZero() {
-    AccessLogParam param = new AccessLogParam();
-    RoutingContext mockContext = Mockito.mock(RoutingContext.class);
-    HttpServerResponse mockResponse = Mockito.mock(HttpServerResponse.class);
-    long bytesWritten = 0l;
-
-    param.setRoutingContext(mockContext);
-    Mockito.when(mockContext.response()).thenReturn(mockResponse);
-    Mockito.when(mockResponse.bytesWritten()).thenReturn(bytesWritten);
-
-    String result = ELEMENT.getFormattedElement(param);
-    assertEquals("-", result);
-  }
-}
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/impl/DefaultAccessLogPatternParserTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/impl/DefaultAccessLogPatternParserTest.java
index 0566f0c..dd2f625 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/impl/DefaultAccessLogPatternParserTest.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/impl/DefaultAccessLogPatternParserTest.java
@@ -23,8 +23,7 @@ import static org.junit.Assert.fail;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenV1Element;
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenV2Element;
+import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenElement;
 import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.CookieElement;
 import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.DatetimeConfigurableElement;
 import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.DurationMillisecondElement;
@@ -72,8 +71,8 @@ public class DefaultAccessLogPatternParserTest {
     assertEquals(RemoteHostElement.class, result.get(8).getAccessLogElement().getClass());
     assertEquals(LocalHostElement.class, result.get(9).getAccessLogElement().getClass());
     assertEquals(LocalPortElement.class, result.get(10).getAccessLogElement().getClass());
-    assertEquals(BytesWrittenV1Element.class, result.get(11).getAccessLogElement().getClass());
-    assertEquals(BytesWrittenV2Element.class, result.get(12).getAccessLogElement().getClass());
+    assertEquals(BytesWrittenElement.class, result.get(11).getAccessLogElement().getClass());
+    assertEquals(BytesWrittenElement.class, result.get(12).getAccessLogElement().getClass());
     assertEquals(FirstLineOfRequestElement.class, result.get(13).getAccessLogElement().getClass());
     assertEquals(UriPathOnlyElement.class, result.get(14).getAccessLogElement().getClass());
     assertEquals(QueryOnlyElement.class, result.get(15).getAccessLogElement().getClass());
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1MatcherTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1MatcherTest.java
index 4ae6681..3a52def 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1MatcherTest.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV1MatcherTest.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenV1Element;
+import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenElement;
 import org.apache.servicecomb.transport.rest.vertx.accesslog.parser.AccessLogElementExtraction;
 import org.junit.Test;
 
@@ -57,6 +57,6 @@ public class BytesWrittenV1MatcherTest {
 
   @Test
   public void getAccessLogElement() {
-    assertTrue(BytesWrittenV1Element.class.equals(MATCHER.getAccessLogElement().getClass()));
+    assertTrue(BytesWrittenElement.class.equals(MATCHER.getAccessLogElement().getClass()));
   }
 }
diff --git a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2MatcherTest.java b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2MatcherTest.java
index d8418f1..01f8789 100644
--- a/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2MatcherTest.java
+++ b/transports/transport-rest/transport-rest-vertx/src/test/java/org/apache/servicecomb/transport/rest/vertx/accesslog/parser/matcher/impl/BytesWrittenV2MatcherTest.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
-import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenV2Element;
+import org.apache.servicecomb.transport.rest.vertx.accesslog.element.impl.BytesWrittenElement;
 import org.apache.servicecomb.transport.rest.vertx.accesslog.parser.AccessLogElementExtraction;
 import org.junit.Test;
 
@@ -57,6 +57,6 @@ public class BytesWrittenV2MatcherTest {
 
   @Test
   public void getAccessLogElement() {
-    assertTrue(BytesWrittenV2Element.class.equals(MATCHER.getAccessLogElement().getClass()));
+    assertTrue(BytesWrittenElement.class.equals(MATCHER.getAccessLogElement().getClass()));
   }
 }

-- 
To stop receiving notification emails like this one, please contact
liubao@apache.org.