コード例 #1
0
  /**
   * Create a new controller with the passed in operations.
   *
   * @param additionalInit Additional initialization that should be done to the parsers, controller
   *     and service container before initializing our extension
   * @param bootOperations the operations
   */
  protected KernelServices installInController(
      AdditionalInitialization additionalInit, List<ModelNode> bootOperations) throws Exception {
    if (additionalInit == null) {
      additionalInit = new AdditionalInitialization();
    }
    ControllerInitializer controllerInitializer = additionalInit.createControllerInitializer();
    additionalInit.setupController(controllerInitializer);

    // Initialize the controller
    ServiceContainer container =
        ServiceContainer.Factory.create("test" + counter.incrementAndGet());
    ServiceTarget target = container.subTarget();
    ControlledProcessState processState = new ControlledProcessState(true);
    List<ModelNode> extraOps = controllerInitializer.initializeBootOperations();
    List<ModelNode> allOps = new ArrayList<ModelNode>();
    if (extraOps != null) {
      allOps.addAll(extraOps);
    }
    allOps.addAll(bootOperations);
    StringConfigurationPersister persister = new StringConfigurationPersister(allOps, testParser);
    ModelControllerService svc =
        new ModelControllerService(
            additionalInit.getType(),
            mainExtension,
            controllerInitializer,
            additionalInit,
            processState,
            persister,
            additionalInit.isValidateOperations());
    ServiceBuilder<ModelController> builder =
        target.addService(ServiceName.of("ModelController"), svc);
    builder.install();

    additionalInit.addExtraServices(target);

    // sharedState = svc.state;
    svc.latch.await();
    ModelController controller = svc.getValue();
    ModelNode setup = Util.getEmptyOperation("setup", new ModelNode());
    controller.execute(setup, null, null, null);
    processState.setRunning();

    KernelServices kernelServices =
        new KernelServices(
            container, controller, persister, new OperationValidator(svc.rootRegistration));
    this.kernelServices.add(kernelServices);
    if (svc.error != null) {
      throw svc.error;
    }

    return kernelServices;
  }
コード例 #2
0
    @Override
    protected void initModel(
        Resource rootResource, ManagementResourceRegistration rootRegistration) {
      this.rootRegistration = rootRegistration;
      rootResource.getModel().get(SUBSYSTEM);
      rootRegistration.registerOperationHandler(
          READ_RESOURCE_OPERATION,
          GlobalOperationHandlers.READ_RESOURCE,
          CommonProviders.READ_RESOURCE_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_ATTRIBUTE_OPERATION,
          GlobalOperationHandlers.READ_ATTRIBUTE,
          CommonProviders.READ_ATTRIBUTE_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_RESOURCE_DESCRIPTION_OPERATION,
          GlobalOperationHandlers.READ_RESOURCE_DESCRIPTION,
          CommonProviders.READ_RESOURCE_DESCRIPTION_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_CHILDREN_NAMES_OPERATION,
          GlobalOperationHandlers.READ_CHILDREN_NAMES,
          CommonProviders.READ_CHILDREN_NAMES_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_CHILDREN_TYPES_OPERATION,
          GlobalOperationHandlers.READ_CHILDREN_TYPES,
          CommonProviders.READ_CHILDREN_TYPES_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_CHILDREN_RESOURCES_OPERATION,
          GlobalOperationHandlers.READ_CHILDREN_RESOURCES,
          CommonProviders.READ_CHILDREN_RESOURCES_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_OPERATION_NAMES_OPERATION,
          GlobalOperationHandlers.READ_OPERATION_NAMES,
          CommonProviders.READ_OPERATION_NAMES_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          READ_OPERATION_DESCRIPTION_OPERATION,
          GlobalOperationHandlers.READ_OPERATION_DESCRIPTION,
          CommonProviders.READ_OPERATION_PROVIDER,
          true);
      rootRegistration.registerOperationHandler(
          WRITE_ATTRIBUTE_OPERATION,
          GlobalOperationHandlers.WRITE_ATTRIBUTE,
          CommonProviders.WRITE_ATTRIBUTE_PROVIDER,
          true);

      controllerInitializer.initializeModel(rootResource, rootRegistration);

      ExtensionContext context = new ExtensionContextImpl(rootRegistration, null, persister);
      additionalInit.initializeExtraSubystemsAndModel(context, rootResource, rootRegistration);
      mainExtension.initialize(context);
    }