mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: Bean initialization refactoring
parent
aa7a2c7adf
commit
f017909c4a
|
@ -26,12 +26,12 @@ import org.kurento.jsonrpc.server.JsonRpcConfigurer;
|
||||||
import org.kurento.jsonrpc.server.JsonRpcHandlerRegistry;
|
import org.kurento.jsonrpc.server.JsonRpcHandlerRegistry;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.DependsOn;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
|
|
||||||
|
@ -81,12 +81,10 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
||||||
public static String wsUrl;
|
public static String wsUrl;
|
||||||
public static String httpUrl;
|
public static String httpUrl;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OpenviduConfig openviduConfig;
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public KmsManager kmsManager() {
|
@DependsOn("openviduConfig")
|
||||||
|
public KmsManager kmsManager(OpenviduConfig openviduConfig) {
|
||||||
if (openviduConfig.getKmsUris().isEmpty()) {
|
if (openviduConfig.getKmsUris().isEmpty()) {
|
||||||
throw new IllegalArgumentException("'kms.uris' should contain at least one KMS url");
|
throw new IllegalArgumentException("'kms.uris' should contain at least one KMS url");
|
||||||
}
|
}
|
||||||
|
@ -97,7 +95,8 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public CallDetailRecord cdr() {
|
@DependsOn("openviduConfig")
|
||||||
|
public CallDetailRecord cdr(OpenviduConfig openviduConfig) {
|
||||||
List<CDRLogger> loggers = new ArrayList<>();
|
List<CDRLogger> loggers = new ArrayList<>();
|
||||||
if (openviduConfig.isCdrEnabled()) {
|
if (openviduConfig.isCdrEnabled()) {
|
||||||
log.info("OpenVidu CDR is enabled");
|
log.info("OpenVidu CDR is enabled");
|
||||||
|
@ -111,10 +110,46 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public CoturnCredentialsService coturnCredentialsService() {
|
@DependsOn("openviduConfig")
|
||||||
|
public CoturnCredentialsService coturnCredentialsService(OpenviduConfig openviduConfig) {
|
||||||
return new CoturnCredentialsServiceFactory().getCoturnCredentialsService(openviduConfig.getSpringProfile());
|
return new CoturnCredentialsServiceFactory().getCoturnCredentialsService(openviduConfig.getSpringProfile());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
@DependsOn("openviduConfig")
|
||||||
|
public SessionManager sessionManager() {
|
||||||
|
return new KurentoSessionManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
@DependsOn("openviduConfig")
|
||||||
|
public RpcHandler rpcHandler() {
|
||||||
|
return new RpcHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
@DependsOn("openviduConfig")
|
||||||
|
public SessionEventsHandler sessionEventsHandler() {
|
||||||
|
return new KurentoSessionEventsHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
@DependsOn("openviduConfig")
|
||||||
|
public TokenGenerator tokenGenerator() {
|
||||||
|
return new TokenGeneratorDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
@DependsOn("openviduConfig")
|
||||||
|
public RecordingManager recordingManager() {
|
||||||
|
return new RecordingManager();
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public LoadManager loadManager() {
|
public LoadManager loadManager() {
|
||||||
|
@ -127,42 +162,12 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
||||||
return new RpcNotificationService();
|
return new RpcNotificationService();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnMissingBean
|
|
||||||
public SessionManager sessionManager() {
|
|
||||||
return new KurentoSessionManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnMissingBean
|
|
||||||
public RpcHandler rpcHandler() {
|
|
||||||
return new RpcHandler();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnMissingBean
|
|
||||||
public SessionEventsHandler sessionEventsHandler() {
|
|
||||||
return new KurentoSessionEventsHandler();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public KurentoParticipantEndpointConfig kurentoEndpointConfig() {
|
public KurentoParticipantEndpointConfig kurentoEndpointConfig() {
|
||||||
return new KurentoParticipantEndpointConfig();
|
return new KurentoParticipantEndpointConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnMissingBean
|
|
||||||
public TokenGenerator tokenGenerator() {
|
|
||||||
return new TokenGeneratorDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@ConditionalOnMissingBean
|
|
||||||
public RecordingManager recordingManager() {
|
|
||||||
return new RecordingManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public RecordingDownloader recordingDownload() {
|
public RecordingDownloader recordingDownload() {
|
||||||
|
|
|
@ -62,6 +62,8 @@ public class OpenviduConfig {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(OpenviduConfig.class);
|
private static final Logger log = LoggerFactory.getLogger(OpenviduConfig.class);
|
||||||
|
|
||||||
|
private static volatile boolean FIRST_INITIALIZATION = true;
|
||||||
|
|
||||||
public static final List<String> OPENVIDU_STRING_PROPERTIES = Arrays.asList(new String[] { "openvidu.secret",
|
public static final List<String> OPENVIDU_STRING_PROPERTIES = Arrays.asList(new String[] { "openvidu.secret",
|
||||||
"openvidu.publicurl", "openvidu.recording.path", "openvidu.recording.notification",
|
"openvidu.publicurl", "openvidu.recording.path", "openvidu.recording.notification",
|
||||||
"openvidu.recording.custom-layout", "openvidu.recording.composed-url", "openvidu.recording.version",
|
"openvidu.recording.custom-layout", "openvidu.recording.composed-url", "openvidu.recording.version",
|
||||||
|
@ -742,7 +744,13 @@ public class OpenviduConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
protected void init() {
|
||||||
|
|
||||||
|
if (!FIRST_INITIALIZATION) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
FIRST_INITIALIZATION = false;
|
||||||
|
}
|
||||||
|
|
||||||
// Check configuration parameters
|
// Check configuration parameters
|
||||||
Map<String, ?> props = null;
|
Map<String, ?> props = null;
|
||||||
|
|
Loading…
Reference in New Issue