@Override protected void performRuntime( OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); final PathAddress parent = address.subAddress(0, address.size() - 1); String name = address.getLastElement().getValue(); String bindingRef = ListenerResourceDefinition.SOCKET_BINDING.resolveModelAttribute(context, model).asString(); String workerName = ListenerResourceDefinition.WORKER.resolveModelAttribute(context, model).asString(); String bufferPoolName = ListenerResourceDefinition.BUFFER_POOL.resolveModelAttribute(context, model).asString(); boolean enabled = ListenerResourceDefinition.ENABLED.resolveModelAttribute(context, model).asBoolean(); OptionMap listenerOptions = OptionList.resolveOptions(context, model, ListenerResourceDefinition.LISTENER_OPTIONS); OptionMap socketOptions = OptionList.resolveOptions(context, model, ListenerResourceDefinition.SOCKET_OPTIONS); String serverName = parent.getLastElement().getValue(); final ServiceName listenerServiceName = UndertowService.listenerName(name); final ListenerService<? extends ListenerService> service = createService(name, serverName, context, model, listenerOptions, socketOptions); final ServiceBuilder<? extends ListenerService> serviceBuilder = context.getServiceTarget().addService(listenerServiceName, service); serviceBuilder .addDependency(IOServices.WORKER.append(workerName), XnioWorker.class, service.getWorker()) .addDependency( SocketBinding.JBOSS_BINDING_NAME.append(bindingRef), SocketBinding.class, service.getBinding()) .addDependency( IOServices.BUFFER_POOL.append(bufferPoolName), Pool.class, service.getBufferPool()) .addDependency( UndertowService.SERVER.append(serverName), Server.class, service.getServerService()); configureAdditionalDependencies(context, serviceBuilder, model, service); serviceBuilder.setInitialMode( enabled ? ServiceController.Mode.ACTIVE : ServiceController.Mode.NEVER); serviceBuilder.addListener(verificationHandler); final ServiceController<? extends ListenerService> serviceController = serviceBuilder.install(); if (newControllers != null) { newControllers.add(serviceController); } }
@Override protected void executeRuntimeStep(OperationContext context, ModelNode operation) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR)); final Resource web = context.readResourceFromRoot(address.subAddress(0, address.size()), false); final ModelNode subModel = web.getModel(); final String host = VIRTUAL_HOST.resolveModelAttribute(context, subModel).asString(); final String path = CONTEXT_ROOT.resolveModelAttribute(context, subModel).asString(); final String server = SERVER.resolveModelAttribute(context, subModel).asString(); final ServiceController<?> controller = context .getServiceRegistry(false) .getService(UndertowService.deploymentServiceName(server, host, path)); SessionStat stat = SessionStat.getStat(operation.require(ModelDescriptionConstants.NAME).asString()); if (stat == null) { context .getFailureDescription() .set( UndertowMessages.MESSAGES.unknownMetric( operation.require(ModelDescriptionConstants.NAME).asString())); } else { context.getResult().set("<not implemented>"); /*final Context webContext = Context.class.cast(controller.getValue()); ManagerBase sm = (ManagerBase) webContext.getManager(); ModelNode result = new ModelNode(); switch (stat) { case ACTIVE_SESSIONS: result.set(sm.getActiveSessions()); break; case EXPIRED_SESSIONS: result.set(sm.getExpiredSessions()); break; case MAX_ACTIVE_SESSIONS: result.set(sm.getMaxActive()); break; case SESSIONS_CREATED: result.set(sm.getSessionCounter()); break; case DUPLICATED_SESSION_IDS: result.set(sm.getDuplicates()); break; case SESSION_AVG_ALIVE_TIME: result.set(sm.getSessionAverageAliveTime()); break; case SESSION_MAX_ALIVE_TIME: result.set(sm.getSessionMaxAliveTime()); break; case REJECTED_SESSIONS: result.set(sm.getRejectedSessions()); break; default: throw new IllegalStateException(WebMessages.MESSAGES.unknownMetric(stat)); } context.getResult().set(result);*/ } context.stepCompleted(); }