docs: @Trivial
      protected void activate(ComponentContext context) throws MalformedObjectNameException {
          Dictionary<String, ?> properties = context.getProperties();
          final boolean trace = TraceComponent.isAnyTracingEnabled();
          if (trace && tc.isEntryEnabled())
              Tr.entry(this, tc, "activate", properties);
  
          Config config = new Config(properties);
          configRef.set(config);
  
          // Precedence for identifying the persistent identifier name must be:
          // 1) config.displayId if contains "]/persistentExecutor[" which means we are nested
          // 2) id
          // 3) jndiName
          // 4) error
          String displayId = (String) properties.get("config.displayId");
          name = displayId.contains("]/persistentExecutor[") ? displayId : (String) properties.get("id");
          if (name == null) {
              name = config.jndiName;
              if (name == null)
                  throw new IllegalArgumentException("id: null, jndiName: null");
          }
  
          defaultExecProps.put(ManagedTask.TRANSACTION, ManagedTask.USE_TRANSACTION_OF_EXECUTION_THREAD);
          defaultExecProps.put(WSContextService.DEFAULT_CONTEXT, WSContextService.UNCONFIGURED_CONTEXT_TYPES);
          defaultExecProps.put(WSContextService.TASK_OWNER, name);
  
          appTrackerRef.activate(context);
          contextSvcRef.activate(context);
          controllerRef.activate(context);
          localTranCurrentRef.activate(context);
          serializationSvcRef.activate(context);
          tranMgrRef.activate(context);
  
          taskStore = DatabaseTaskStore.get(persistentStore);
  
          if (config.initialPollDelay < 0)
              readyForPollingTask.add(PollingManager.SIGNAL_REQUIRED);
  
          if (config.enableTaskExecution)
              readyForPollingTask.add(PollingManager.EXECUTION_ENABLED);
  
          if (readyForPollingTask.addAndCheckIfReady(PollingManager.DS_READY))
              startPollingTask(config);
  
          mbean = new PersistentExecutorMBeanImpl(this);
          mbean.register(InvokerTask.priv.getBundleContext(context));
  
          if (trace && tc.isEntryEnabled())
              Tr.exit(this, tc, "activate");
      }