All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.bonita.facade.impl.BAMAPIImpl Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (C) 2009-2013 BonitaSoft S.A.
 * BonitaSoft, 31 rue Gustave Eiffel - 38000 Grenoble
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation
 * version 2.1 of the License.
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
 * Floor, Boston, MA  02110-1301, USA.
 **/
package org.ow2.bonita.facade.impl;

import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.management.AttributeNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;

import org.ow2.bonita.facade.BAMAPI;
import org.ow2.bonita.facade.def.majorElement.ActivityDefinition.Type;
import org.ow2.bonita.facade.exception.MonitoringException;
import org.ow2.bonita.facade.monitoring.model.JvmMBean;
import org.ow2.bonita.facade.monitoring.model.impl.MBeanUtil;
import org.ow2.bonita.facade.uuid.ActivityDefinitionUUID;
import org.ow2.bonita.facade.uuid.ProcessDefinitionUUID;
import org.ow2.bonita.util.DateUtil;
import org.ow2.bonita.util.EnvTool;
import org.ow2.bonita.util.Misc;

/**
 * 
 * @author Matthieu Chaffotte
 * 
 */
public class BAMAPIImpl implements BAMAPI {

  private final String queryList;

  protected BAMAPIImpl(final String queryList) {
    this.queryList = queryList;
  }

  private String getQueryList() {
    return queryList;
  }

  @Override
  public List getNumberOfExecutingCasesPerDay(final Date since) {
    final Date now = new Date();
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfExecutingCasesPerDay(since, now);
  }

  @Override
  public List getNumberOfFinishedCasesPerDay(final Date since) {
    final Date now = new Date();
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfFinishedCasesPerDay(since, now);
  }

  @Override
  public int getNumberOfOpenSteps() {
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfOpenSteps();
  }

  @Override
  public List getNumberOfOpenStepsPerDay(final Date since) {
    final Date now = new Date();
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfOpenStepsPerDay(since, now);
  }

  @Override
  public int getNumberOfOverdueSteps() {
    final Date now = new Date();
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfOverdueSteps(now);
  }

  @Override
  public int getNumberOfStepsAtRisk(final int remainingDays) {
    if (remainingDays < 0) {
      throw new IllegalArgumentException("The number of remaining days is negative");
    }
    final Date currentDate = new Date();
    final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
    final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfStepsAtRisk(currentDate, atRisk);
  }

  @Override
  public int getNumberOfUserOpenSteps() {
    final String userId = EnvTool.getUserId();
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfUserOpenSteps(userId);
  }

  @Override
  public int getNumberOfUserOverdueSteps() {
    final Date now = new Date();
    final String userId = EnvTool.getUserId();
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfUserOverdueSteps(userId, now);
  }

  @Override
  public int getNumberOfUserStepsAtRisk(final int remainingDays) {
    if (remainingDays < 0) {
      throw new IllegalArgumentException("The number of remaining days is negative");
    }
    final String userId = EnvTool.getUserId();
    final Date currentDate = new Date();
    final Date beginningOfTheDay = DateUtil.getBeginningOfTheDay(currentDate);
    final Date atRisk = DateUtil.backTo(beginningOfTheDay, -(remainingDays + 1));
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfUserStepsAtRisk(userId, currentDate, atRisk);
  }

  @Override
  public int getNumberOfFinishedSteps(final int priority, final Date since) {
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfFinishedSteps(priority, since);
  }

  @Override
  public int getNumberOfOpenSteps(final int priority) {
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfOpenSteps(priority);
  }

  @Override
  public int getNumberOfUserFinishedSteps(final int priority, final Date since) {
    final String userId = EnvTool.getUserId();
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfUserFinishedSteps(userId, priority, since);
  }

  @Override
  public int getNumberOfUserOpenSteps(final int priority) {
    final String userId = EnvTool.getUserId();
    return EnvTool.getJournalQueriers(getQueryList()).getNumberOfUserOpenSteps(userId, priority);
  }

  @Override
  public List getProcessInstancesDuration(final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getHistoryQueriers(getQueryList()).getProcessInstancesDuration(since, until);
  }

  @Override
  public List getProcessInstancesDuration(final ProcessDefinitionUUID processUUID, final Date since,
      final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getHistoryQueriers(getQueryList()).getProcessInstancesDuration(processUUID, since, until);
  }

  @Override
  public List getProcessInstancesDuration(final Set processUUIDs, final Date since,
      final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (processUUIDs == null || processUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getHistoryQueriers(getQueryList()).getProcessInstancesDurationFromProcessUUIDs(processUUIDs, since,
        until);
  }

  @Override
  public List getActivityInstancesExecutionTime(final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesExecutionTime(since, until);
  }

  @Override
  public List getActivityInstancesExecutionTime(final ProcessDefinitionUUID processUUID, final Date since,
      final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesExecutionTime(processUUID, since, until);
  }

  @Override
  public List getActivityInstancesExecutionTimeFromProcessUUIDs(final Set processUUIDs,
      final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (processUUIDs == null || processUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesExecutionTimeFromProcessUUIDs(processUUIDs,
        since, until);
  }

  @Override
  public List getActivityInstancesExecutionTime(final ActivityDefinitionUUID activityUUID, final Date since,
      final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesExecutionTime(activityUUID, since, until);
  }

  @Override
  public List getActivityInstancesExecutionTimeFromActivityUUIDs(final Set activityUUIDs,
      final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (activityUUIDs == null || activityUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesExecutionTimeFromActivityUUIDs(activityUUIDs,
        since, until);
  }

  @Override
  public List getTaskInstancesWaitingTime(final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTime(since, until);
  }

  @Override
  public List getTaskInstancesWaitingTime(final ProcessDefinitionUUID processUUID, final Date since,
      final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTime(processUUID, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeFromProcessUUIDs(final Set processUUIDs,
      final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (processUUIDs == null || processUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTimeFromProcessUUIDs(processUUIDs, since,
        until);
  }

  @Override
  public List getTaskInstancesWaitingTime(final ActivityDefinitionUUID taskUUID, final Date since,
      final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTime(taskUUID, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeFromTaskUUIDs(final Set tasksUUIDs,
      final Date since, final Date until) {
    Misc.checkArgsNotNull(tasksUUIDs);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (tasksUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTimeFromTaskUUIDs(tasksUUIDs, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeOfUser(final String username, final Date since, final Date until) {
    Misc.checkArgsNotNull(username);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTimeOfUser(username, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeOfUser(final String username, final ProcessDefinitionUUID processUUID,
      final Date since, final Date until) {
    Misc.checkArgsNotNull(username, processUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList())
        .getTaskInstancesWaitingTimeOfUser(username, processUUID, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeOfUserFromProcessUUIDs(final String username,
      final Set processUUIDs, final Date since, final Date until) {
    Misc.checkArgsNotNull(username, processUUIDs);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (processUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTimeOfUserFromProcessUUIDs(username,
        processUUIDs, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeOfUser(final String username, final ActivityDefinitionUUID taskUUID,
      final Date since, final Date until) {
    Misc.checkArgsNotNull(username, taskUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTimeOfUser(username, taskUUID, since, until);
  }

  @Override
  public List getTaskInstancesWaitingTimeOfUserFromTaskUUIDs(final String username,
      final Set tasksUUIDs, final Date since, final Date until) {
    Misc.checkArgsNotNull(username, tasksUUIDs);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (tasksUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getTaskInstancesWaitingTimeOfUserFromTaskUUIDs(username, tasksUUIDs,
        since, until);
  }

  @Override
  public List getActivityInstancesDuration(final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDuration(since, until);
  }

  @Override
  public List getActivityInstancesDuration(final ProcessDefinitionUUID processUUID, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(processUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDuration(processUUID, since, until);
  }

  @Override
  public List getActivityInstancesDurationFromProcessUUIDs(final Set processUUIDs,
      final Date since, final Date until) {
    Misc.checkArgsNotNull(processUUIDs);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (processUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDurationFromProcessUUIDs(processUUIDs, since,
        until);
  }

  @Override
  public List getActivityInstancesDuration(final ActivityDefinitionUUID activityUUID, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(activityUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDuration(activityUUID, since, until);
  }

  @Override
  public List getActivityInstancesDurationFromActivityUUIDs(final Set activityUUIDs,
      final Date since, final Date until) {
    Misc.checkArgsNotNull(activityUUIDs);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    if (activityUUIDs.isEmpty()) {
      return Collections.emptyList();
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDurationFromActivityUUIDs(activityUUIDs, since,
        until);
  }

  @Override
  public List getActivityInstancesDurationByActivityType(final Type activityType, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(activityType);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList())
        .getActivityInstancesDurationByActivityType(activityType, since, until);
  }

  @Override
  public List getActivityInstancesDurationByActivityType(final Type activityType,
      final ProcessDefinitionUUID processUUID, final Date since, final Date until) {
    Misc.checkArgsNotNull(activityType, processUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDurationByActivityType(activityType, processUUID,
        since, until);
  }

  @Override
  public List getActivityInstancesDurationByActivityTypeFromProcessUUIDs(final Type activityType,
      final Set processUUIDs, final Date since, final Date until) {
    if (processUUIDs == null || processUUIDs.isEmpty()) {
      return Collections.emptyList();
    }
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getActivityInstancesDurationByActivityTypeFromProcessUUIDs(
        activityType, processUUIDs, since, until);
  }

  @Override
  public long getNumberOfCreatedProcessInstances(final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedProcessInstances(since, until);
  }

  @Override
  public long getNumberOfCreatedProcessInstances(final ProcessDefinitionUUID processUUID, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(processUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedProcessInstances(processUUID, since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstances(final Date since, final Date until) {
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }

    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstances(since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstances(final ProcessDefinitionUUID processUUID, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(processUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstances(processUUID, since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstancesFromProcessUUIDs(final Set processUUIDs,
      final Date since, final Date until) {
    if (processUUIDs == null || processUUIDs.isEmpty()) {
      return 0;
    }
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstancesFromProcessUUIDs(processUUIDs,
        since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstances(final ActivityDefinitionUUID activityUUID, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(activityUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstances(activityUUID, since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstancesFromActivityUUIDs(final Set activityUUIDs,
      final Date since, final Date until) {
    if (activityUUIDs == null || activityUUIDs.isEmpty()) {
      return 0;
    }
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstancesFromActivityUUIDs(activityUUIDs,
        since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstancesByActivityType(final Type activityType, final Date since,
      final Date until) {
    Misc.checkArgsNotNull(activityType);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstancesByActivityType(activityType,
        since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstancesByActivityType(final Type activityType,
      final ProcessDefinitionUUID processUUID, final Date since, final Date until) {
    Misc.checkArgsNotNull(activityType, processUUID);
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstancesByActivityType(activityType,
        processUUID, since, until);
  }

  @Override
  public long getNumberOfCreatedActivityInstancesByActivityTypeFromProcessUUIDs(final Type activityType,
      final Set processUUIDs, final Date since, final Date until) {
    Misc.checkArgsNotNull(activityType);
    if (processUUIDs == null || processUUIDs.isEmpty()) {
      return 0;
    }
    if (since.getTime() > until.getTime()) {
      throw new IllegalArgumentException("The since date is greater than the until date");
    }
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfCreatedActivityInstancesByActivityTypeFromProcessUUIDs(
        activityType, processUUIDs, since, until);
  }

  @Override
  public long getCurrentMemoryUsage() throws MonitoringException {
    long result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Long) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "CurrentMemoryUsage");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public float getMemoryUsagePercentage() throws MonitoringException {
    float result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Float) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "MemoryUsagePercentage");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public double getSystemLoadAverage() throws MonitoringException {
    double result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Double) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "SystemLoadAverage");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public long getUpTime() throws MonitoringException {
    long result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Long) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "UpTime");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public long getStartTime() throws MonitoringException {
    long result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();

    try {
      result = (Long) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "StartTime");
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final NullPointerException e) {
      throw new MonitoringException(e.getMessage(), e);
    }

    return result;
  }

  @Override
  public long getTotalThreadsCpuTime() throws MonitoringException {
    long result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Long) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "TotalThreadsCpuTime");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public int getThreadCount() throws MonitoringException {
    int result = 0;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Integer) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "ThreadCount");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public int getAvailableProcessors() throws MonitoringException {
    int result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (Integer) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "AvailableProcessors");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public String getOSArch() throws MonitoringException {
    String result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (String) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "OSArch");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public String getOSName() throws MonitoringException {
    String result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (String) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "OSName");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public String getOSVersion() throws MonitoringException {
    String result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (String) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "OSVersion");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public String getJvmName() throws MonitoringException {
    String result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (String) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "JvmName");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public String getJvmVendor() throws MonitoringException {
    String result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (String) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "JvmVendor");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @Override
  public String getJvmVersion() throws MonitoringException {
    String result;
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      result = (String) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "JvmVersion");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
    return result;
  }

  @SuppressWarnings("unchecked")
  @Override
  public Map getJvmSystemProperties() throws MonitoringException {
    final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
    try {
      return (Map) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME),
          "JvmSystemProperties");
    } catch (final MalformedObjectNameException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final MBeanException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final ReflectionException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final AttributeNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    } catch (final javax.management.InstanceNotFoundException e) {
      throw new MonitoringException(e.getMessage(), e);
    }
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy