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/04/13 01:06:19 UTC

[incubator-servicecomb-java-chassis] branch master updated: [SCB-477] sdk guava's version need to update to 19.0

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


The following commit(s) were added to refs/heads/master by this push:
     new dfb7d35  [SCB-477] sdk guava's version need to update to 19.0
dfb7d35 is described below

commit dfb7d3577a789305ce3c053e323d0ec54a825d55
Author: weichao666 <we...@huawei.com>
AuthorDate: Thu Apr 12 10:45:07 2018 +0800

    [SCB-477] sdk guava's version need to update to 19.0
---
 .../com/google/common/eventbus/SimpleEventBus.java | 86 ----------------------
 .../foundation/common/event/EventManager.java      |  3 +-
 .../{TestSimpleEventBus.java => TestEventBus.java} | 10 +--
 java-chassis-dependencies/pom.xml                  |  2 +-
 java-chassis-distribution/src/release/LICENSE      |  2 +-
 5 files changed, 5 insertions(+), 98 deletions(-)

diff --git a/foundations/foundation-common/src/main/java/com/google/common/eventbus/SimpleEventBus.java b/foundations/foundation-common/src/main/java/com/google/common/eventbus/SimpleEventBus.java
deleted file mode 100644
index 55c3708..0000000
--- a/foundations/foundation-common/src/main/java/com/google/common/eventbus/SimpleEventBus.java
+++ /dev/null
@@ -1,86 +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 com.google.common.eventbus;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-
-import com.google.common.collect.Multimap;
-
-/**
- * <p>EventBus has performance problem, we create a new simpler eventBus
- * 
- * <p>extend from EventBus is not necessary<br>
- * but EventManager has a public EventBus field, we need to make compatible
- * 
- * <p>different between this class and EventBus:<br>
- * 1. not support cycle trigger:<br>
- *   subscribe a, when handle a, trigger event b<br>
- *   subscribe b, when handle b, trigger event a
- */
-public class SimpleEventBus extends com.google.common.eventbus.EventBus {
-  private AnnotatedSubscriberFinder finder = new AnnotatedSubscriberFinder();
-
-  // key is event type
-  // value is CopyOnWriteArrayList
-  private Map<Class<?>, List<EventSubscriber>> subscribersByType = new ConcurrentHashMapEx<>();
-
-  @Override
-  public void register(Object listener) {
-    Multimap<Class<?>, EventSubscriber> methodsInListener = finder.findAllSubscribers(listener);
-
-    for (Entry<Class<?>, Collection<EventSubscriber>> entry : methodsInListener.asMap().entrySet()) {
-      List<EventSubscriber> exists = subscribersByType.computeIfAbsent(entry.getKey(), cls -> {
-        return new CopyOnWriteArrayList<>();
-      });
-      exists.addAll(entry.getValue());
-    }
-  }
-
-  @Override
-  public void unregister(Object listener) {
-    Multimap<Class<?>, EventSubscriber> methodsInListener = finder.findAllSubscribers(listener);
-
-    for (Entry<Class<?>, Collection<EventSubscriber>> entry : methodsInListener.asMap().entrySet()) {
-      List<EventSubscriber> exists = subscribersByType.get(entry.getKey());
-      if (exists == null) {
-        continue;
-      }
-
-      exists.removeAll(entry.getValue());
-    }
-  }
-
-  @Override
-  public void post(Object event) {
-    Set<Class<?>> dispatchTypes = flattenHierarchy(event.getClass());
-    for (Class<?> dispatchType : dispatchTypes) {
-      List<EventSubscriber> subscribers = subscribersByType.getOrDefault(dispatchType, Collections.emptyList());
-
-      for (EventSubscriber subscriber : subscribers) {
-        dispatch(event, subscriber);
-      }
-    }
-  }
-}
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/event/EventManager.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/event/EventManager.java
index 9672a92..cb72a21 100644
--- a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/event/EventManager.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/event/EventManager.java
@@ -18,14 +18,13 @@
 package org.apache.servicecomb.foundation.common.event;
 
 import com.google.common.eventbus.EventBus;
-import com.google.common.eventbus.SimpleEventBus;
 
 /**
  * EventManager for chassis events
  *
  */
 public class EventManager {
-  public static EventBus eventBus = new SimpleEventBus();
+  public static EventBus eventBus = new EventBus();
 
   public static EventBus getEventBus() {
     return eventBus;
diff --git a/foundations/foundation-common/src/test/java/com/google/common/eventbus/TestSimpleEventBus.java b/foundations/foundation-common/src/test/java/com/google/common/eventbus/TestEventBus.java
similarity index 90%
rename from foundations/foundation-common/src/test/java/com/google/common/eventbus/TestSimpleEventBus.java
rename to foundations/foundation-common/src/test/java/com/google/common/eventbus/TestEventBus.java
index 8aef0cb..8e2231a 100644
--- a/foundations/foundation-common/src/test/java/com/google/common/eventbus/TestSimpleEventBus.java
+++ b/foundations/foundation-common/src/test/java/com/google/common/eventbus/TestEventBus.java
@@ -23,8 +23,8 @@ import org.hamcrest.Matchers;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class TestSimpleEventBus {
-  private SimpleEventBus eventBus = new SimpleEventBus();
+public class TestEventBus {
+  private EventBus eventBus = new EventBus();
 
   private List<Object> events = new ArrayList<>();
 
@@ -45,14 +45,8 @@ public class TestSimpleEventBus {
   public void unregister() {
     Object obj = new SubscriberForTest();
 
-    // unregister not exist obj, should no problem
-    eventBus.unregister(obj);
-
     eventBus.register(obj);
     eventBus.unregister(obj);
-
-    // unregister again, should no problem
-    eventBus.unregister(obj);
   }
 
   @Test
diff --git a/java-chassis-dependencies/pom.xml b/java-chassis-dependencies/pom.xml
index f01ec11..02af808 100644
--- a/java-chassis-dependencies/pom.xml
+++ b/java-chassis-dependencies/pom.xml
@@ -179,7 +179,7 @@
       <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
-        <version>16.0.1</version>
+        <version>19.0</version>
       </dependency>
 
       <dependency>
diff --git a/java-chassis-distribution/src/release/LICENSE b/java-chassis-distribution/src/release/LICENSE
index 3947079..d4933ba 100644
--- a/java-chassis-distribution/src/release/LICENSE
+++ b/java-chassis-distribution/src/release/LICENSE
@@ -345,7 +345,7 @@ ClassMate (http://github.com/cowtowncoder/java-classmate) com.fasterxml:classmat
 Commons IO (http://commons.apache.org/io/) commons-io:commons-io:jar:2.4
 Commons Lang (http://commons.apache.org/lang/) commons-lang:commons-lang:jar:2.6
 FindBugs-jsr305 (http://findbugs.sourceforge.net/) com.google.code.findbugs:jsr305:jar:3.0.1
-Guava: Google Core Libraries for Java (http://code.google.com/p/guava-libraries/guava) com.google.guava:guava:bundle:16.0.1
+Guava: Google Core Libraries for Java (http://code.google.com/p/guava-libraries/guava) com.google.guava:guava:bundle:19.0
 Hibernate Validator Engine (http://hibernate.org/validator/hibernate-validator) org.hibernate:hibernate-validator:jar:5.2.4.Final
 JBoss Logging 3 (http://www.jboss.org) org.jboss.logging:jboss-logging:jar:3.3.0.Final
 Jackson dataformat: CBOR (http://github.com/FasterXML/jackson-dataformats-binary) com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:bundle:2.8.7

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