public boolean isExcludedClass ( String className ) { // We rely heavily on reflection to deliver probes if ( className . startsWith ( "java/lang/reflect" ) ) { return true ; } // Miscellaneous sun.misc classes if ( className . startsWith ( "sun/misc" ) ) { return true ; } // Sun VM generated accessors wreak havoc if ( className . startsWith ( "sun/reflect" ) ) { return true ; } // IBM J9 VM internals if ( className . startsWith ( "com/ibm/oti/" ) ) { return true ; } // Don't allow hooking into the monitoring code if ( className . startsWith ( "com/ibm/ws/monitor/internal" ) ) { return true ; } if ( className . startsWith ( "com/ibm/websphere/monitor" ) ) { return true ; } if ( className . startsWith ( "com/ibm/ws/boot/delegated/monitoring" ) ) { return true ; } if ( ( className . startsWith ( "com/ibm/ws/pmi" ) ) || ( className . startsWith ( "com/ibm/websphere/pmi" ) ) || ( className . startsWith ( "com/ibm/wsspi/pmi" ) ) ) { return true ; } //D89497-Excluding those classes which are not part of the Set. if ( ( ! ( probeMonitorSet . contains ( ( className . replace ( "/" , "." ) ) ) ) ) ) { return true ; } return false ; }
Determine if the named class is one that should be excluded from monitoring via probe injection . The patterns below generally include classes required to implement JVM function on which the monitoring code depends .