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);
+ }
}