2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.maven.plugin.util;
11 import java.util.ArrayList;
12 import java.util.List;
15 import sun.jvmstat.monitor.HostIdentifier;
16 import sun.jvmstat.monitor.MonitoredHost;
17 import sun.jvmstat.monitor.MonitoredVm;
18 import sun.jvmstat.monitor.MonitoredVmUtil;
19 import sun.jvmstat.monitor.VmIdentifier;
21 public class VMProcessMonitor extends ProcessMonitor {
24 public List<JavaProcess> getProcesses() {
25 Set<Integer> activeVmPids = null;
26 List<JavaProcess> result = new ArrayList<JavaProcess>();
27 MonitoredHost monitoredHost = null;
28 MonitoredVm mvm = null;
30 monitoredHost = MonitoredHost.getMonitoredHost(
31 new HostIdentifier((String) null));
32 activeVmPids = monitoredHost.activeVms();
33 } catch (Exception e) {
34 throw new IllegalStateException("Error accessing VM", e);
36 for (Integer vmPid : activeVmPids) {
38 mvm = monitoredHost.getMonitoredVm(
39 new VmIdentifier(vmPid.toString()));
40 JavaProcess proc = new JavaProcess(vmPid,
41 MonitoredVmUtil.mainClass(mvm, true));
42 proc.setSystemProperties(MonitoredVmUtil.jvmArgs(mvm));
43 proc.setSystemProperties(MonitoredVmUtil.jvmFlags(mvm));
45 } catch(Exception e2) {
46 log("Error connecting to pid: " + vmPid + " reason:"