@Override public InitialConfiguration resolveConfiguration() { InitialConfiguration initialConfiguration = new InitialConfiguration(); initialConfiguration.setAcceptedControllerNames(prepareSet(InitialConfiguration.DEFAULT_DATA_CONTROLLER)); initialConfiguration.setDefaultControllerName(InitialConfiguration.DEFAULT_DATA_CONTROLLER); initialConfiguration.setSerializationEngine(InitialConfiguration.DEFAULT_SERIALIZATION_ENGINE); initialConfiguration.setMessageDispatcher(InitialConfiguration.DEFAULT_MESSAGE_DISPATCHER); prepareEngineConfiguration(initialConfiguration); return initialConfiguration; }
/** * Sets additional engine properties. * * @param properties additional engine properties. */ public void setEngineProperties(Map<String, String> properties) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setProperties(properties); }
private void startLogger(InitialConfiguration initialConfiguration) { if (initialConfiguration.getLoggingLevel() != null) { BasicConfigurator.configure(); Logger.getRootLogger().setLevel(initialConfiguration.getLoggingLevel()); Logger.getLogger("org.apache").setLevel(initialConfiguration.getLoggingLevel()); if (log.isInfoEnabled()) { Logger.getLogger("org.springframework.beans.factory").setLevel(Level.WARN); Logger.getLogger("org.springframework.context.support").setLevel(Level.WARN); Logger.getLogger("org.springframework.context.annotation").setLevel(Level.WARN); Logger.getLogger("org.springframework.core.io.support").setLevel(Level.WARN); } } } }
/** * Sets acceptable controller names. Each client chooses one data controller from list of available controllers. * Data controllers must implement {@link pl.bristleback.server.bristle.api.DataController} interface. * * @param acceptedControllerNames names of controllers to activate. */ public void setAcceptedControllerNames(String... acceptedControllerNames) { assertThatArrayIsNotEmpty(acceptedControllerNames); initialConfiguration.setAcceptedControllerNames(new HashSet<String>(Arrays.asList(acceptedControllerNames))); initialConfiguration.setDefaultControllerName(acceptedControllerNames[0]); }
@Bean @Lazy public DataControllers dataControllers() { Map<String, DataController> dataControllersMap = new HashMap<String, DataController>(); for (String acceptedControllerName : initialConfiguration.getAcceptedControllerNames()) { DataController controller = springIntegration.getBean(acceptedControllerName, DataController.class); controller.init(bristlebackConfiguration()); dataControllersMap.put(acceptedControllerName, controller); } DataController defaultController = dataControllersMap.get(initialConfiguration.getDefaultControllerName()); return new DataControllers(dataControllersMap, defaultController); }
private UserContextFactory userContextFactoryUsingContextClass() { Class<? extends UserContext> userContextClass = initialConfiguration.getUserContextClass(); if (userContextClass == null) { userContextClass = BaseUserContext.class; } return new DefaultUserContextFactory(userContextClass); }
@Bean @Lazy public SerializationEngine serializationEngine() { String serializationEngineName = initialConfiguration.getSerializationEngine(); SerializationEngine serializationEngine = springIntegration.getBean(serializationEngineName, SerializationEngine.class); serializationEngine.init(bristlebackConfiguration()); return serializationEngine; }
@Bean public MessageDispatcher messageDispatcher() { String dispatcherName = initialConfiguration.getMessageDispatcher(); MessageDispatcher dispatcher = springIntegration.getBean(dispatcherName, MessageDispatcher.class); dispatcher.setServer(serverEngine()); return dispatcher; }
@Bean public UserContextFactory userContextFactory() { String customUserContextFactoryName = initialConfiguration.getUserContextFactory(); if (StringUtils.isNotBlank(customUserContextFactoryName)) { return springIntegration.getApplicationBean(customUserContextFactoryName, UserContextFactory.class); } Map<String, UserContextFactory> userContextFactoryBeans = springIntegration.getApplicationBeansOfType(UserContextFactory.class); if (userContextFactoryBeans.size() == 0) { //no beans found return userContextFactoryUsingContextClass(); } if (userContextFactoryBeans.size() == 1) { //one bean found in application configuration return springIntegration.getApplicationBean(UserContextFactory.class); } else { //more than one bean found in application configuration (initial configuration doesn't contain property which one to choose throw new BristleInitializationException("Found more than one implementation of class" + UserContextFactory.class.getName() + ". " + "Please specify in initial configuration which one should be used"); } }
@SuppressWarnings("unchecked") private void resolveAcceptedProtocolNames(InitialConfiguration configuration) { List<String> controllersList = propertiesConfiguration.getList(ACCEPTED_CONTROLLERS, Collections.singletonList(InitialConfiguration.DEFAULT_DATA_CONTROLLER)); configuration.setDefaultControllerName(controllersList.get(0)); Set<String> acceptedControllerNames = new HashSet<String>(controllersList); configuration.setAcceptedControllerNames(acceptedControllerNames); }
/** * Sets maximum server engine buffer size for each connector. * * @param bufferSize maximum buffer size. */ public void setMaxBufferSize(int bufferSize) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setMaxBufferSize(bufferSize); }
/** * Sets server engine. Server engine must implement {@link pl.bristleback.server.bristle.api.ServerEngine} interface. * * @param engineName server engine. */ public void setEngineName(String engineName) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setName(engineName); }
/** * Sets port on which server engine will listen for new connections. * In {@link pl.bristleback.server.bristle.api.ServletServerEngine ServletServerEngine} implementations, * engine port may be determined by the web server used. * * @param enginePort engine port. */ public void setEnginePort(int enginePort) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setPort(enginePort); }
/** * Sets maximum connection idle time (in milliseconds), after which the connection will be closed. * * @param timeout maximum connection idle time. */ public void setEngineTimeout(int timeout) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setTimeout(timeout); }
/** * Sets maximum message size. * * @param maxMessageSize maximum message size. */ public void setEngineMaxMessageSize(int maxMessageSize) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setMaxFrameSize(maxMessageSize); }
/** * This property is currently not used. * * @param rejectedDomains rejected domain names. */ public void setEngineRejectedDomains(List<String> rejectedDomains) { EngineConfig engineConfig = initialConfiguration.getEngineConfiguration(); engineConfig.setRejectedDomains(rejectedDomains); }
public void init(BristlebackConfig bristlebackConfiguration) { this.configuration = bristlebackConfiguration; this.engineConfig = configuration.getInitialConfiguration().getEngineConfiguration(); }
@Bean @Lazy public ServerEngine serverEngine() { EngineConfig engineConfiguration = initialConfiguration.getEngineConfiguration(); String expectedEngineName = engineConfiguration.getName(); ServerEngine serverEngine = springIntegration.getBean(expectedEngineName, ServerEngine.class); serverEngine.init(bristlebackConfiguration()); return serverEngine; }