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);
    }
protected void deactivate ( ComponentContext context ) { appListener . unregister ( this ) ; 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 ) { } return null ; } } ) ; containerAuthDataRef . deactivate ( context ) ; sslConfig . deactivate ( context ) ; }
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