blob: 174f24f1c1b5e569219a37c28fdeef18118880b3 [file] [log] [blame]
/*
* 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.core;
public interface BootListener {
enum EventType {
BEFORE_HANDLER,
AFTER_HANDLER,
BEFORE_FILTER,
AFTER_FILTER,
BEFORE_PRODUCER_PROVIDER,
AFTER_PRODUCER_PROVIDER,
BEFORE_CONSUMER_PROVIDER,
AFTER_CONSUMER_PROVIDER,
BEFORE_TRANSPORT,
AFTER_TRANSPORT,
BEFORE_REGISTRY,
AFTER_REGISTRY,
BEFORE_CLOSE,
AFTER_CLOSE
}
class BootEvent {
private SCBEngine scbEngine;
private EventType eventType;
public BootEvent() {
}
public BootEvent(SCBEngine scbEngine, EventType eventType) {
this.scbEngine = scbEngine;
this.eventType = eventType;
}
public SCBEngine getScbEngine() {
return scbEngine;
}
public BootEvent setScbEngine(SCBEngine scbEngine) {
this.scbEngine = scbEngine;
return this;
}
public EventType getEventType() {
return eventType;
}
public BootEvent setEventType(EventType eventType) {
this.eventType = eventType;
return this;
}
}
default int getOrder() {
return 0;
}
default void onBootEvent(BootEvent event) {
switch (event.eventType) {
case BEFORE_HANDLER:
onBeforeHandler(event);
return;
case AFTER_HANDLER:
onAfterHandler(event);
return;
case BEFORE_FILTER:
onBeforeFilter(event);
return;
case AFTER_FILTER:
onAfterFilter(event);
return;
case BEFORE_PRODUCER_PROVIDER:
onBeforeProducerProvider(event);
return;
case AFTER_PRODUCER_PROVIDER:
onAfterProducerProvider(event);
return;
case BEFORE_CONSUMER_PROVIDER:
onBeforeConsumerProvider(event);
return;
case AFTER_CONSUMER_PROVIDER:
onAfterConsumerProvider(event);
return;
case BEFORE_TRANSPORT:
onBeforeTransport(event);
return;
case AFTER_TRANSPORT:
onAfterTransport(event);
return;
case BEFORE_REGISTRY:
onBeforeRegistry(event);
return;
case AFTER_REGISTRY:
onAfterRegistry(event);
return;
case BEFORE_CLOSE:
onBeforeClose(event);
return;
case AFTER_CLOSE:
onAfterClose(event);
return;
default:
throw new IllegalStateException("unknown boot event type: " + event.eventType);
}
}
default void onBeforeHandler(BootEvent event) {
}
default void onAfterHandler(BootEvent event) {
}
default void onBeforeFilter(BootEvent event) {
}
default void onAfterFilter(BootEvent event) {
}
default void onBeforeProducerProvider(BootEvent event) {
}
default void onAfterProducerProvider(BootEvent event) {
}
default void onBeforeConsumerProvider(BootEvent event) {
}
default void onAfterConsumerProvider(BootEvent event) {
}
default void onBeforeTransport(BootEvent event) {
}
default void onAfterTransport(BootEvent event) {
}
default void onBeforeRegistry(BootEvent event) {
}
default void onAfterRegistry(BootEvent event) {
}
default void onBeforeClose(BootEvent event) {
}
default void onAfterClose(BootEvent event) {
}
}