@Override public void quiesce() throws Exception { if (serviceContext != null) { serviceContext.unbind(serviceContext.getAccepts(), handler); } }
@Override public void start() throws Exception { serviceContext.bind(serviceContext.getAccepts(), handler); }
@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 start() throws Exception { serviceContext.bind(serviceContext.getAccepts(), handler); serviceContext.bindConnectsIfNecessary(serviceContext.getConnects()); }
@Override public void init(ServiceContext serviceContext) throws Exception { this.serviceContext = serviceContext; ServiceProperties properties = serviceContext.getProperties(); int repeatCount = getOptionalIntProperty(properties, "repeat", EchoServiceHandler.DEFAULT_REPEAT_COUNT); handler = new EchoServiceHandler(repeatCount, serviceContext.getLogger()); }
void init() { ServiceContext serviceContext = getServiceContext(); serviceName = serviceContext.getServiceName(); Collection<String> acceptURIs = serviceContext.getAccepts(); Collection<String> connectURIs = serviceContext.getConnects(); ServiceProperties properties = serviceContext.getProperties(); throw new IllegalArgumentException(serviceContext.getServiceName() + " http.proxy service specifies unknown property value : " + useForwarded + " for use-forwarded");
@Override public void quiesce() throws Exception { if (serviceContext != null) { serviceContext.unbind(HttpBalancerService.toHttpBalancerURIs(serviceContext.getAccepts(), serviceContext.getAcceptOptionsContext(), transportFactory), wsebHandler); serviceContext.unbind(HttpBalancerService.toWsBalancerURIs(serviceContext.getAccepts(), serviceContext.getAcceptOptionsContext(), transportFactory), wsnHandler); } }
for (String acceptURI : serviceContext.getAccepts()) { String schemeName = getScheme(acceptURI); schemeNames.add(schemeName); for (String connectURI : serviceContext.getConnects()) { String schemeName = getScheme(connectURI); schemeNames.add(schemeName); ServiceProperties properties = serviceContext.getProperties(); String accept = properties.get("accept"); if (accept != null) {
serviceContext.bind(HttpBalancerService.toWsBalancerURIs(serviceContext.getAccepts(), serviceContext.getAcceptOptionsContext(), transportFactory), wsnHandler, wsBalancerSessionInitializer); serviceContext.bind(HttpBalancerService.toHttpBalancerURIs(serviceContext.getAccepts(), serviceContext.getAcceptOptionsContext(), transportFactory), wsebHandler);
OnClientMessage onClientMessage = OnClientMessage.fromString(serviceContext.getProperties().get(ON_CLIENT_MESSAGE)); if ( maximumScheduledWriteBytes != Long.MAX_VALUE ) { onClientMessage, serviceContext.getLogger()); Collection<String> connectURIs = serviceContext.getConnects(); ServiceProperties properties = serviceContext.getProperties(); String reconnectDelay = properties.get("reconnect.delay"); if ((connectURIs == null || connectURIs.isEmpty())) {
this.serviceContext = serviceContext; handler = new HttpDirectoryServiceHandler(); File webDir = serviceContext.getWebDirectory(); ServiceProperties properties = serviceContext.getProperties(); Collection<String> accepts = serviceContext.getAccepts(); Collection<String> failedAccepts = new HashSet<>(); for (String accept : accepts) {
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 boolean equals(Object otherObject) { if (otherObject instanceof ServiceContext) { ServiceContext otherServiceContext = (ServiceContext) otherObject; if (this.serviceType.equals(otherServiceContext.getServiceType())) { Collection<String> otherAccepts = otherServiceContext.getAccepts(); for (String uri : this.accepts) { if (!otherAccepts.contains(uri)) { return false; } } // same type, same accepts, return true return true; } } return false; }
@Override public void stop() throws Exception { quiesce(); if (serviceContext != null) { for (IoSession session : serviceContext.getActiveSessions()) { session.close(true); } } }
serviceContext.init(); gatewayListener.initedService(serviceContext); serviceContext.start(); gatewayListener.startedService(serviceContext); AcceptOptionsContext ctx = serviceContext.getAcceptOptionsContext(); Collection<String> serviceAccepts = serviceContext.getAccepts(); for (String serviceAccept : serviceAccepts) { String mappedURI = ctx.getInternalURI(serviceAccept);
@Override public String getProperties() { ServiceProperties properties = serviceContext.getProperties(); return properties == null ? "" : asJSONObject(properties).toString(); }
this.connectHandler = connectHandler; this.connectURI = connectURI; this.schedulerProvider = service.getSchedulerProvider(); this.logger = service.getLogger(); this.interval = interval; int workerCount = service.getProcessorCount(); assert workerCount > 0; this.preparedConnectionCount = preparedConnectionCount; logger.warn(String.format( "Configured prepared.connection.count %d for %s service has been increased to number of IO threads %d for extra efficiency", preparedConnectionCount, serviceCtx.getServiceType(), workerCount)); serviceCtx.getServiceType(), preparedConnectionCount));
@Override public String getAccepts() { if (serviceContext.supportsAccepts()) { Collection<String> accepts = serviceContext.getAccepts(); return accepts == null ? "" : new JSONArray(accepts).toString(); } else { return null; } }
boundURIs.addAll(serviceContext.getAccepts()); try { gatewayListener.stopingService(serviceContext); serviceContext.stop(); gatewayListener.stoppedService(serviceContext); gatewayListener.destroyingService(serviceContext); serviceContext.destroy(); gatewayListener.destroyedService(serviceContext); } catch (Exception e) {
@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(); }