code: protected void deactivate(ComponentContext context) {
          appListener.unregister(this);
  
          // shut down instances that were created
          if (!clients.isEmpty())
              AccessController.doPrivileged(new PrivilegedAction<Void>() {
                  @Override
                  public Void run() {
                      Method shutdown = null;
                      for (Object client : clients.values())
                          try {
                              if (shutdown == null)
                                  shutdown = client.getClass().getMethod("shutdown");
                              shutdown.invoke(client);
                          } catch (Throwable x) {
                              // FFDC will be logged, otherwise ignore
                          }
                      return null;
                  }
              });
  
          containerAuthDataRef.deactivate(context);
          sslConfig.deactivate(context);
      }
docs: DS method to deactivate this component. Best practice: this should be a protected method,
  not public or private
  
  @param context
  DeclarativeService defined/populated component context