code: @Trivial
      protected void activate(ComponentContext componentContext) {
          Dictionary<String, ?> properties = componentContext.getProperties();
          final boolean trace = TraceComponent.isAnyTracingEnabled();
          if (trace && tc.isEntryEnabled())
              Tr.entry(this, tc, "activate", properties);
  
          contextSvcRef.activate(componentContext);
  
          String jndiName = (String) properties.get(JNDI_NAME);
          name = jndiName == null ? (String) properties.get(CONFIG_ID) : jndiName;
  
          defaultExecutionProperties = new TreeMap<String, String>();
          defaultExecutionProperties.put(WSContextService.DEFAULT_CONTEXT, WSContextService.UNCONFIGURED_CONTEXT_TYPES);
          defaultExecutionProperties.put(WSContextService.TASK_OWNER, name);
  
          createDaemonThreads = (Boolean) properties.get(CREATE_DAEMON_THREADS);
          defaultPriority = (Integer) properties.get(DEFAULT_PRIORITY);
          Integer maxPriority = (Integer) properties.get(MAX_PRIORITY);
          threadGroup = AccessController.doPrivileged(new CreateThreadGroupAction(name + " Thread Group", maxPriority), threadGroupTracker.serverAccessControlContext);
  
          if (trace && tc.isEntryEnabled())
              Tr.exit(this, tc, "activate");
      }
docs: DS method to activate this component.
  Best practice: this should be a protected method, not public or private
  
  @param componentContext DeclarativeService defined/populated component context