Search in sources :

Example 1 with TransportGroupInfo

use of org.redkale.net.TransportGroupInfo in project redkale by redkale.

the class Application method initResources.

private void initResources() throws Exception {
    // -------------------------------------------------------------------------
    final AnyValue resources = config.getAnyValue("resources");
    if (!compileMode && !singletonMode && configFromCache) {
        // 必须要清空
        System.setProperty(DATASOURCE_CONFPATH, "");
    }
    if (resources != null) {
        // ------------------------------------------------------------------------
        for (AnyValue conf : resources.getAnyValues("group")) {
            final String group = conf.getValue("name", "");
            final String protocol = conf.getValue("protocol", Transport.DEFAULT_NETPROTOCOL).toUpperCase();
            if (!"TCP".equalsIgnoreCase(protocol) && !"UDP".equalsIgnoreCase(protocol)) {
                throw new RuntimeException("Not supported Transport Protocol " + conf.getValue("protocol"));
            }
            TransportGroupInfo ginfo = new TransportGroupInfo(group, protocol, new LinkedHashSet<>());
            for (AnyValue node : conf.getAnyValues("node")) {
                final InetSocketAddress addr = new InetSocketAddress(node.getValue("addr"), node.getIntValue("port"));
                ginfo.putAddress(addr);
            }
            sncpTransportFactory.addGroupInfo(ginfo);
        }
        for (AnyValue conf : resources.getAnyValues("listener")) {
            final String listenClass = conf.getValue("value", "");
            if (listenClass.isEmpty())
                continue;
            Class clazz = classLoader.loadClass(listenClass);
            if (!ApplicationListener.class.isAssignableFrom(clazz))
                continue;
            RedkaleClassLoader.putReflectionDeclaredConstructors(clazz, clazz.getName());
            @SuppressWarnings("unchecked") ApplicationListener listener = (ApplicationListener) clazz.getDeclaredConstructor().newInstance();
            resourceFactory.inject(listener);
            listener.init(config);
            this.listeners.add(listener);
        }
    }
// ------------------------------------------------------------------------
}
Also used : TransportGroupInfo(org.redkale.net.TransportGroupInfo) DefaultAnyValue(org.redkale.util.AnyValue.DefaultAnyValue)

Aggregations

TransportGroupInfo (org.redkale.net.TransportGroupInfo)1 DefaultAnyValue (org.redkale.util.AnyValue.DefaultAnyValue)1