docs: protected void activate(ComponentContext cc) {
          _runtimeMetaDataProvider = new LibertyRuntimeMetaDataProvider(this);
          activateHasBeenCalled = true;
          _transactionSettingsProviders.activate(cc);
          _cc = cc;
          // Irrespective of the logtype we need to get the properties
          _props = _cc.getProperties();
          if (tc.isDebugEnabled())
              Tr.debug(tc, "activate  properties set to " + _props);
  
          // There is additional work to do if we are storing transaction log in an RDBMS. The key
          // determinant that we are using an RDBMS is the specification of the dataSourceRef
          // attribute of the transaction stanza in the server.xml. So start by checking this
          // attribute. If it is present, set the _isSQLRecoveryLog flag and set the logDir
          // to "custom" <- this will allow compatibility with tWAS code.
          //
          // Drive the getTransactionLogDirectory() method if we're working against the filesys.
          checkDataSourceRef();
  
          if (_isSQLRecoveryLog) {
              if (tc.isDebugEnabled())
                  Tr.debug(tc, "activate  working with Tran Log in an RDBMS");
  
              ServiceReference<ResourceFactory> serviceRef = dataSourceFactoryRef.getReference();
  
              if (tc.isDebugEnabled())
                  Tr.debug(tc, "pre-activate  datasourceFactory ref " + dataSourceFactoryRef +
                               ", underlying reference: " + serviceRef);
              dataSourceFactoryRef.activate(_cc);
              if (tc.isDebugEnabled())
                  Tr.debug(tc, "post-activate  datasourceFactory ref " + dataSourceFactoryRef);
  
              //  If we already have a dataSourceFactory then we can startup (and drive recovery) now.
              if (tc.isDebugEnabled())
                  Tr.debug(tc, "retrieved datasourceFactory service ref " + serviceRef);
              if (serviceRef != null) {
                  // The DataSource is available, which means that we are able to drive recovery
                  // processing. This is driven through the reference to the TransactionManagerService,
                  // assuming that it is available
                  if (tmsRef != null)
                      tmsRef.doStartup(this, _isSQLRecoveryLog);
              }
          } else {
              getTransactionLogDirectory();
              if (tmsRef != null)
                  tmsRef.doStartup(this, _isSQLRecoveryLog);
          }
  
          if (tc.isDebugEnabled())
              Tr.debug(tc, "activate  retrieved datasourceFactory is " + _theDataSourceFactory);
  
      }