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 36f897f  [SCB-889] add SCBEngine reference to BootEvent
36f897f is described below

commit 36f897fd9facaead112f57e360993b0878e5d013
Author: wujimin <[email protected]>
AuthorDate: Tue Sep 4 09:28:40 2018 +0800

    [SCB-889] add SCBEngine reference to BootEvent
---
 .../main/java/org/apache/servicecomb/core/BootListener.java | 10 ++++++++++
 .../main/java/org/apache/servicecomb/core/SCBEngine.java    |  6 ++++++
 .../java/org/apache/servicecomb/core/TestSCBEngine.java     | 13 +++++++++++++
 3 files changed, 29 insertions(+)

diff --git a/core/src/main/java/org/apache/servicecomb/core/BootListener.java 
b/core/src/main/java/org/apache/servicecomb/core/BootListener.java
index 848ccdc..b273467 100644
--- a/core/src/main/java/org/apache/servicecomb/core/BootListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/BootListener.java
@@ -34,8 +34,18 @@ public interface BootListener {
   }
 
   class BootEvent {
+    private SCBEngine scbEngine;
+
     private EventType eventType;
 
+    public SCBEngine getScbEngine() {
+      return scbEngine;
+    }
+
+    public void setScbEngine(SCBEngine scbEngine) {
+      this.scbEngine = scbEngine;
+    }
+
     public EventType getEventType() {
       return eventType;
     }
diff --git a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java 
b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
index 863d839..15b4ee9 100644
--- a/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
+++ b/core/src/main/java/org/apache/servicecomb/core/SCBEngine.java
@@ -96,6 +96,10 @@ public class SCBEngine {
     return INSTANCE;
   }
 
+  public EventBus getEventBus() {
+    return eventBus;
+  }
+
   public void setProducerProviderManager(
       ProducerProviderManager producerProviderManager) {
     this.producerProviderManager = producerProviderManager;
@@ -134,6 +138,7 @@ public class SCBEngine {
 
   protected void triggerEvent(EventType eventType) {
     BootEvent event = new BootEvent();
+    event.setScbEngine(this);
     event.setEventType(eventType);
 
     for (BootListener listener : bootListenerList) {
@@ -143,6 +148,7 @@ public class SCBEngine {
 
   protected void safeTriggerEvent(EventType eventType) {
     BootEvent event = new BootEvent();
+    event.setScbEngine(this);
     event.setEventType(eventType);
 
     for (BootListener listener : bootListenerList) {
diff --git a/core/src/test/java/org/apache/servicecomb/core/TestSCBEngine.java 
b/core/src/test/java/org/apache/servicecomb/core/TestSCBEngine.java
index fcc0e0f..6c1e605 100644
--- a/core/src/test/java/org/apache/servicecomb/core/TestSCBEngine.java
+++ b/core/src/test/java/org/apache/servicecomb/core/TestSCBEngine.java
@@ -21,7 +21,10 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import javax.xml.ws.Holder;
+
 import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.core.BootListener.EventType;
 import org.apache.servicecomb.core.definition.loader.SchemaListenerManager;
 import org.apache.servicecomb.core.provider.consumer.ConsumerProviderManager;
 import org.apache.servicecomb.core.provider.consumer.ReferenceConfig;
@@ -158,4 +161,14 @@ public class TestSCBEngine {
 
     Assert.assertThat(engine.getBootListenerList(), 
Matchers.contains(spiListener, beanListener));
   }
+
+  @Test
+  public void bootEvent_refEngine() {
+    Holder<SCBEngine> eventEngine = new Holder<>();
+    SCBEngine engine = new SCBEngine();
+    engine.setBootListenerList(Arrays.asList(event -> eventEngine.value = 
event.getScbEngine()));
+    engine.triggerEvent(EventType.AFTER_REGISTRY);
+    
+    Assert.assertNotNull(eventEngine.value);
+  }
 }

Reply via email to