@Override public String getConnects() { if (serviceContext.supportsConnects()) { Collection<String> connects = serviceContext.getConnects(); return connects == null ? "" : new JSONArray(connects).toString(); } else { return null; } }
@Override public void start() throws Exception { reconnect.set(true); serviceContext.bind(serviceContext.getAccepts(), handler); serviceContext.bindConnectsIfNecessary(serviceContext.getConnects()); try { if (connectURI != null) { scheduler.schedule(connectTask, 0, TimeUnit.MILLISECONDS); } } catch (Exception e) { logger.error("Unable to configure connectURI scheduler: " + e); } }
private void checkForTrailingSlashes(ServiceContext serviceContext) { Collection<String> acceptURIs = serviceContext.getAccepts(); Collection<String> connectURIs = serviceContext.getConnects(); assert acceptURIs.size() == 1; assert connectURIs.size() == 1; String acceptURI = acceptURIs.iterator().next(); String connectURI = connectURIs.iterator().next(); String acceptPath = URIUtils.getPath(acceptURI); String connectPath = URIUtils.getPath(connectURI); boolean acceptPathIsSlash = acceptPath.endsWith("/"); boolean connectPathIsSlash = connectPath.endsWith("/"); if (!acceptPathIsSlash) { String msg = String.format("The path %s of accept URI %s for service %s needs to end with /", acceptPath, acceptURI, serviceContext.getServiceName()); throw new IllegalArgumentException(msg); } if (!connectPathIsSlash) { String msg = String.format("The path %s of connect URI %s for service %s needs to end with /", connectPath, connectURI, serviceContext.getServiceName()); throw new IllegalArgumentException(msg); } }
@Override public void start() throws Exception { serviceContext.bind(serviceContext.getAccepts(), handler); serviceContext.bindConnectsIfNecessary(serviceContext.getConnects()); }
@Override public void init(ServiceContext serviceContext) throws Exception { super.init(serviceContext); Collection<String> connectURIs = serviceContext.getConnects(); if (connectURIs == null || connectURIs.isEmpty()) { throw new IllegalArgumentException("Missing required element: <connect>"); } ProxyServiceHandler handler = getHandler(); handler.setConnectURIs(connectURIs); handler.initServiceConnectManager(bridgeServiceFactory); // Instantiate any proxy service extensions and register them with the handler ServiceLoader<ProxyServiceExtensionSpi> proxyServiceExtensions = load(ProxyServiceExtensionSpi.class); for (ProxyServiceExtensionSpi proxyServiceExtension : proxyServiceExtensions) { handler.registerExtension(proxyServiceExtension); } }
schemeNames.add(schemeName); for (String connectURI : serviceContext.getConnects()) { String schemeName = getScheme(connectURI); schemeNames.add(schemeName);
@Override public void stop() throws Exception { quiesce(); // defer until stop to allow connect to succeed and re-enable the service serviceContext.unbindConnectsIfNecessary(serviceContext.getConnects()); if (serviceContext != null) { for (IoSession session : serviceContext.getActiveSessions()) { session.close(true); } } }
@Override public void init(ServiceContext serviceContext) throws Exception { EarlyAccessFeatures.HTTP_PROXY_SERVICE.assertEnabled(configuration, serviceContext.getLogger()); super.init(serviceContext); Collection<String> connectURIs = serviceContext.getConnects(); if (connectURIs == null || connectURIs.isEmpty()) { throw new IllegalArgumentException("Missing required element: <connect>"); } checkForTrailingSlashes(serviceContext); HttpProxyServiceHandler handler = getHandler(); handler.setConnectURIs(connectURIs); handler.init(); }
@Override public void stop() throws Exception { quiesce(); // defer until stop to allow connect to succeed and re-enable the service serviceContext.unbindConnectsIfNecessary(serviceContext.getConnects()); if (serviceContext != null) { for (IoSession session : serviceContext.getActiveSessions()) { session.close(true); } } connectTask.stop(); }
onClientMessage, serviceContext.getLogger()); Collection<String> connectURIs = serviceContext.getConnects(); ServiceProperties properties = serviceContext.getProperties(); String reconnectDelay = properties.get("reconnect.delay");
Collection<String> connectURIs = serviceContext.getConnects();