call methods directly instead of using SigarInvokerJMX
This commit is contained in:
		
							parent
							
								
									296af07277
								
							
						
					
					
						commit
						fa5bea7363
					
				@ -1,5 +1,7 @@
 | 
				
			|||||||
package net.hyperic.sigar.jmx;
 | 
					package net.hyperic.sigar.jmx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import net.hyperic.sigar.ProcMem;
 | 
				
			||||||
 | 
					import net.hyperic.sigar.ProcTime;
 | 
				
			||||||
import net.hyperic.sigar.Sigar;
 | 
					import net.hyperic.sigar.Sigar;
 | 
				
			||||||
import net.hyperic.sigar.SigarException;
 | 
					import net.hyperic.sigar.SigarException;
 | 
				
			||||||
import net.hyperic.sigar.SigarProxy;
 | 
					import net.hyperic.sigar.SigarProxy;
 | 
				
			||||||
@ -12,45 +14,38 @@ import net.hyperic.sigar.SigarProxyCache;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class SigarProcess implements SigarProcessMBean {
 | 
					public class SigarProcess implements SigarProcessMBean {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Sigar sigar;
 | 
					    private Sigar sigarImpl;
 | 
				
			||||||
    private SigarProxy sigarProxy;
 | 
					    private SigarProxy sigar;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final String procMemName =
 | 
					 | 
				
			||||||
        SigarInvokerJMX.getObjectName("ProcMem", "$$");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final String procTimeName =
 | 
					 | 
				
			||||||
        SigarInvokerJMX.getObjectName("ProcTime", "$$");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private SigarInvokerJMX procMem, procTime;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public SigarProcess() {
 | 
					    public SigarProcess() {
 | 
				
			||||||
        this(null);
 | 
					        this.sigarImpl = new Sigar();
 | 
				
			||||||
    }
 | 
					        this.sigar = SigarProxyCache.newInstance(sigarImpl);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public SigarProcess(String path) {
 | 
					 | 
				
			||||||
        sigar = new Sigar();
 | 
					 | 
				
			||||||
        sigarProxy = SigarProxyCache.newInstance(sigar);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        procMem = SigarInvokerJMX.getInstance(sigarProxy,
 | 
					 | 
				
			||||||
                                              procMemName);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        procTime = SigarInvokerJMX.getInstance(sigarProxy,
 | 
					 | 
				
			||||||
                                               procTimeName);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void close() {
 | 
					    public void close() {
 | 
				
			||||||
 | 
					        this.sigarImpl.close();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private synchronized Long getLongValue(SigarInvokerJMX invoker, String attr) {
 | 
					    private ProcMem getMem() {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            return (Long)invoker.invoke(attr);
 | 
					            long pid = this.sigar.getPid();
 | 
				
			||||||
 | 
					            return this.sigar.getProcMem(pid);
 | 
				
			||||||
        } catch (SigarException e) {
 | 
					        } catch (SigarException e) {
 | 
				
			||||||
            return new Long(-1);
 | 
					            throw new IllegalArgumentException();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private ProcTime getTime() {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            long pid = this.sigar.getPid();
 | 
				
			||||||
 | 
					            return this.sigar.getProcTime(pid);
 | 
				
			||||||
 | 
					        } catch (SigarException e) {
 | 
				
			||||||
 | 
					            throw new IllegalArgumentException();
 | 
				
			||||||
        }   
 | 
					        }   
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    public Long getMemSize() {
 | 
					    public Long getMemSize() {
 | 
				
			||||||
        return getLongValue(procMem, "Size");
 | 
					        return new Long(getMem().getSize());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -62,23 +57,23 @@ public class SigarProcess implements SigarProcessMBean {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getMemResident() {
 | 
					    public Long getMemResident() {
 | 
				
			||||||
        return getLongValue(procMem, "Resident");
 | 
					        return new Long(getMem().getResident());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getMemShare() {
 | 
					    public Long getMemShare() {
 | 
				
			||||||
        return getLongValue(procMem, "Share");
 | 
					        return new Long(getMem().getShare());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getMemPageFaults() {
 | 
					    public Long getMemPageFaults() {
 | 
				
			||||||
        return getLongValue(procMem, "PageFaults");
 | 
					        return new Long(getMem().getPageFaults());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getTimeUser() {
 | 
					    public Long getTimeUser() {
 | 
				
			||||||
        return getLongValue(procTime, "User");
 | 
					        return new Long(getTime().getUser());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getTimeSys() {
 | 
					    public Long getTimeSys() {
 | 
				
			||||||
        return getLongValue(procTime, "Sys");
 | 
					        return new Long(getTime().getSys());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void main(String args[]) {
 | 
					    public static void main(String args[]) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user