public void shutdown() { if ( null != jmxName ) { try { ManagementFactory.getPlatformMBeanServer().unregisterMBean( jmxName ); } catch ( final Exception e ) { Logs.warn( "Problem unregistering LocksMBean for: <>", this, e ); } } }
public final T get() { try { // load class and bootstrap injection return injector.getInstance( load() ); } catch ( final Throwable e ) { Logs.catchThrowable( e ); try { Logs.warn( "Error injecting: {}", getName(), e ); } finally { Logs.throwUnchecked( e ); } } return null; // not used }
public static void inject( final Object that ) { final BeanLocator locator = getBeanLocator(); if ( null != locator ) { Guice.createInjector( new WireModule() { @Override public void configure( final Binder binder ) { binder.bind( BeanLocator.class ).toProvider( Providers.of( locator ) ); binder.requestInjection( that ); } } ); } else { Logs.debug( "No BeanLocator found for thread {}", Thread.currentThread(), null ); } }
/** * Returns a string representation of the given {@link Module}. * * @param module The module * @return String representation of the module. */ public static String toString( final Module module ) { final StringBuilder buf = new StringBuilder( identityToString( module ) ); buf.append( NEW_LINE ).append( NEW_LINE ); buf.append( "-----[elements]----------------------------------------------------------------" ).append( NEW_LINE ); int i = 0; for ( final Element e : Elements.getElements( module ) ) { buf.append( i++ ).append( ". " ).append( e ).append( NEW_LINE ); } return buf.append( "-------------------------------------------------------------------------------" ).append( NEW_LINE ).toString(); }
/** * Logs a warning message; uses "{}" format anchors. Pass {@link Throwable}s in last parameter for special handling. * * @param format The warning message format * @param arg1 First object to format * @param arg2 Second object to format */ public static void warn( final String format, final Object arg1, final Object arg2 ) { SINK.warn( format( format( format, arg1 ), arg2 ), arg2 instanceof Throwable ? (Throwable) arg2 : null ); }
buf.append( detailed ? arg : identityToString( arg ) );
/** * Logs a debug message; uses "{}" format anchors. Pass {@link Throwable}s in last parameter for special handling. * * @param format The debug message format * @param arg1 First object to format * @param arg2 Second object to format */ public static void debug( final String format, final Object arg1, final Object arg2 ) { if ( DEBUG_ENABLED ) { SINK.debug( format( format( format, arg1 ), arg2 ), arg2 instanceof Throwable ? (Throwable) arg2 : null ); } }
@Override public List<String> call() throws Exception { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); // assumes methods have string-only signatures final String[] sig = new String[args.length]; Arrays.fill( sig, String.class.getName() ); final List<String> results = new ArrayList<String>(); for ( final ObjectName mBean : server.queryNames( jmxQuery, null ) ) { try { // Invoke across all matching MBeans in this Hazelcast instance final Object result = server.invoke( mBean, method, args, sig ); if ( result instanceof String[] ) { Collections.addAll( results, (String[]) result ); } } catch ( final Exception e ) { Logs.warn( "Problem invoking JMX method: \"{}\"", method, e ); } } return qualifyResults( results ); }
final StringBuilder buf = new StringBuilder( identityToString( injector ) ); if ( null != injector.getParent() ) buf.append( " parent: " ).append( identityToString( injector.getParent() ) );
public static <T> T lookup( final Key<T> key ) { final BeanLocator locator = getBeanLocator(); if ( null != locator ) { final Iterator<? extends Entry<?, T>> i = locator.locate( key ).iterator(); if ( i.hasNext() ) { return i.next().getValue(); } } else { Logs.debug( "No BeanLocator found for thread {}", Thread.currentThread(), null ); } return null; }
AbstractResourceLockFactory( final boolean jmxEnabled ) { if ( jmxEnabled ) { try { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); final String hash = String.format( "0x%08X", new Integer( System.identityHashCode( this ) ) ); jmxName = ObjectName.getInstance( JMX_DOMAIN, properties( "type", category(), "hash", hash ) ); server.registerMBean( new LocalResourceLockMBean( this ), jmxName ); } catch ( final Exception e ) { Logs.warn( "Problem registering LocksMBean for: <>", this, e ); } } }
@Inject HazelcastResourceLockFactory( @Nullable @Named( "hazelcast.config" ) final File configFile ) { super( true ); instance = Hazelcast.newHazelcastInstance( getHazelcastConfig( configFile ) ); try { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); jmxMaster = ObjectName.getInstance( JMX_DOMAIN, "type", category() ); jmxQuery = ObjectName.getInstance( JMX_DOMAIN, properties( "type", category(), "hash", "*" ) ); if ( !server.isRegistered( jmxMaster ) ) { server.registerMBean( new HazelcastResourceLockMBean( instance, jmxQuery ), jmxMaster ); } } catch ( final Exception e ) { Logs.warn( "Problem registering master LocksMBean for: <>", this, e ); } }
public Object addingBundle( final Bundle bundle, final BundleEvent event ) { if ( CONTAINER_SYMBOLIC_NAME.equals( bundle.getSymbolicName() ) ) { return null; // this is our container, ignore it to avoid circularity errors } if ( needsScanning( bundle ) && getBundleInjectorService( bundle ) == null ) { try { new BundleInjector( bundle ); } catch ( final RuntimeException e ) { Logs.warn( "Problem starting: {}", bundle, e ); } } return null; }
/** * Distributes the given JMX invocation across the Hazelcast cluster. * * @param method JMX method * @param args JMX arguments * @return Aggregated results */ public String[] multiInvoke( final String method, final String... args ) { final HazelcastMBeansInvoker invoker = new HazelcastMBeansInvoker( jmxQuery, method, args ); final MultiTask<List<String>> task = new MultiTask<List<String>>( invoker, filterMembers( method, args ) ); final Set<String> results = new HashSet<String>(); try { instance.getExecutorService().execute( task ); for ( final List<String> result : task.get() ) { results.addAll( result ); } } catch ( final Exception e ) { Logs.warn( "Problem executing cluster MultiTask for: \"{}\"", method, e ); } return results.toArray( new String[results.size()] ); }
Logs.warn( "Problem unregistering master LocksMBean for: <>", this, e );
Logs.warn( "Problem filtering cluster members for: \"{}\"", method, e );