docs: protected void deactivate(ComponentContext context) {
          final boolean trace = TraceComponent.isAnyTracingEnabled();
          if (trace && tc.isEntryEnabled())
              Tr.entry(this, tc, "deactivate");
  
          lock.writeLock().lock();
          try {
              if (isInitialized) {
                  if (classloader != null) {
                      if (isDerbyEmbedded.get())
                          shutdownDerbyEmbedded();
                      classloader = null;
                  }
                  for (Iterator<Class<? extends CommonDataSource>> it = introspectedClasses.iterator(); it.hasNext(); it.remove())
                      Introspector.flushFromCaches(it.next());
                  isInitialized = false;
              }
          } finally {
              lock.writeLock().unlock();
          }
  
          if (trace && tc.isEntryEnabled())
              Tr.exit(this, tc, "deactivate");
      }