/** * Extract transport properties from transport configurations. * * @param transportsConfiguration transportsConfiguration {@link TransportsConfiguration} which transport * properties should be extracted. * @return Map of transport properties. */ public static Map<String, Object> getTransportProperties(TransportsConfiguration transportsConfiguration) { Map<String, Object> transportProperties = new HashMap<>(); Set<TransportProperty> transportPropertiesSet = transportsConfiguration.getTransportProperties(); if (transportPropertiesSet != null && !transportPropertiesSet.isEmpty()) { transportProperties = transportPropertiesSet.stream().collect( Collectors.toMap(TransportProperty::getName, TransportProperty::getValue)); } return transportProperties; }
/** * @deprecated * @return the default transport configuration. */ @Deprecated public static TransportsConfiguration getDefault() { TransportsConfiguration defaultConfig = new TransportsConfiguration(); ListenerConfiguration listenerConfiguration = ListenerConfiguration.getDefault(); HashSet<ListenerConfiguration> listenerConfigurations = new HashSet<>(); listenerConfigurations.add(listenerConfiguration); defaultConfig.setListenerConfigurations(listenerConfigurations); SenderConfiguration senderConfiguration = SenderConfiguration.getDefault(); HashSet<SenderConfiguration> senderConfigurations = new HashSet<>(); senderConfigurations.add(senderConfiguration); defaultConfig.setSenderConfigurations(senderConfigurations); HashSet<TransportProperty> transportProperties = new HashSet<>(); defaultConfig.setTransportProperties(transportProperties); return defaultConfig; }
public static TransportsConfiguration build(String nettyTransportsConfigFile) { TransportsConfiguration transportsConfiguration; File file = new File(nettyTransportsConfigFile); if (file.exists()) { try (Reader in = new InputStreamReader(new FileInputStream(file), StandardCharsets.ISO_8859_1)) { Yaml yaml = new Yaml(); yaml.setBeanAccess(BeanAccess.FIELD); transportsConfiguration = yaml.loadAs(in, TransportsConfiguration.class); } catch (IOException e) { String msg = "Error while loading " + nettyTransportsConfigFile + " configuration file"; throw new RuntimeException(msg, e); } } else { // return a default config log.warn("Netty transport configuration file not found in: {}", nettyTransportsConfigFile); transportsConfiguration = TransportsConfiguration.getDefault(); } return transportsConfiguration; } }
private TransportsConfiguration buildDefaultTransportConfig() { TransportsConfiguration transportsConfiguration = new TransportsConfiguration(); SenderConfiguration httpSender = new SenderConfiguration("http-sender"); SenderConfiguration httpsSender = new SenderConfiguration("https-sender"); httpsSender.setScheme("https"); TransportProperty latencyMetrics = new TransportProperty(); latencyMetrics.setName("latency.metrics.enabled"); latencyMetrics.setValue(true); TransportProperty serverSocketTimeout = new TransportProperty(); serverSocketTimeout.setName("server.bootstrap.socket.timeout"); serverSocketTimeout.setValue(60); TransportProperty clientSocketTimeout = new TransportProperty(); clientSocketTimeout.setName("client.bootstrap.socket.timeout"); clientSocketTimeout.setValue(60); Set<SenderConfiguration> senderConfigurationSet = new HashSet<>(); senderConfigurationSet.add(httpSender); senderConfigurationSet.add(httpsSender); transportsConfiguration.setSenderConfigurations(senderConfigurationSet); Set<TransportProperty> transportPropertySet = new HashSet<>(); transportPropertySet.add(latencyMetrics); transportPropertySet.add(serverSocketTimeout); transportPropertySet.add(clientSocketTimeout); transportsConfiguration.setTransportProperties(transportPropertySet); return transportsConfiguration; }
/** * Get the {@code TransportsConfiguration} represented by a particular configuration file. * * @param configFileLocation configuration file location * @return TransportsConfiguration represented by a particular configuration file */ public TransportsConfiguration getConfiguration(String configFileLocation) { TransportsConfiguration transportsConfiguration; File file = new File(configFileLocation); if (file.exists()) { try (Reader in = new InputStreamReader(new FileInputStream(file), StandardCharsets.ISO_8859_1)) { Yaml yaml = new Yaml(new CustomClassLoaderConstructor (TransportsConfiguration.class, TransportsConfiguration.class.getClassLoader())); yaml.setBeanAccess(BeanAccess.FIELD); transportsConfiguration = yaml.loadAs(in, TransportsConfiguration.class); } catch (IOException e) { throw new RuntimeException( "Error while loading " + configFileLocation + " configuration file", e); } } else { // return a default config LOG.warn("Netty transport configuration file not found in: {} ,hence using default configuration", configFileLocation); transportsConfiguration = new TransportsConfiguration(); } return transportsConfiguration; } }
/** * Extract sender configuration from transport configuration. * * @param transportsConfiguration {@link TransportsConfiguration} which sender configurations should be extracted. * @param scheme scheme of the transport. * @return extracted {@link SenderConfiguration}. */ public static SenderConfiguration getSenderConfiguration(TransportsConfiguration transportsConfiguration, String scheme) { Map<String, SenderConfiguration> senderConfigurations = transportsConfiguration.getSenderConfigurations().stream().collect(Collectors .toMap(senderConf -> senderConf.getScheme().toLowerCase(Locale.getDefault()), config -> config)); return Constants.HTTPS_SCHEME.equals(scheme) ? senderConfigurations.get(Constants.HTTPS_SCHEME) : senderConfigurations.get(Constants.HTTP_SCHEME); }
private HttpConnectionManager() { trpConfig = buildDefaultTransportConfig(); serverBootstrapConfiguration = HttpConnectorUtil .getServerBootstrapConfiguration(trpConfig.getTransportProperties()); }
private boolean getMetricsStatus() { boolean statStatus = false; Set<TransportProperty> transportProperties = ConfigurationBuilder.getInstance().getConfiguration().getTransportProperties(); for (TransportProperty property : transportProperties) { if (property.getName().equalsIgnoreCase("latency.metrics.enabled")) { statStatus = (Boolean) property.getValue(); } } return statStatus; }
public ServerConnector createHttpServerConnector(ListenerConfiguration listenerConfig) { String listenerInterface = listenerConfig.getHost() + ":" + listenerConfig.getPort(); HttpServerConnectorContext httpServerConnectorContext = serverConnectorPool.get(listenerInterface); if (httpServerConnectorContext != null) { if (checkForConflicts(listenerConfig, httpServerConnectorContext)) { throw new BallerinaConnectorException("Conflicting configuration detected for listener " + "configuration id " + listenerConfig.getId()); } httpServerConnectorContext.incrementReferenceCount(); return httpServerConnectorContext.getServerConnector(); } if (isHTTPTraceLoggerEnabled()) { listenerConfig.setHttpTraceLogEnabled(true); } if (isHTTPAccessLoggerEnabled()) { listenerConfig.setHttpAccessLogEnabled(true); } serverBootstrapConfiguration = HttpConnectorUtil .getServerBootstrapConfiguration(trpConfig.getTransportProperties()); ServerConnector serverConnector = httpConnectorFactory.createServerConnector(serverBootstrapConfiguration, listenerConfig); httpServerConnectorContext = new HttpServerConnectorContext(serverConnector, listenerConfig); serverConnectorPool.put(serverConnector.getConnectorID(), httpServerConnectorContext); httpServerConnectorContext.incrementReferenceCount(); addStartupDelayedHTTPServerConnector(listenerInterface, serverConnector); return serverConnector; }