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

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

/**
 * Copyright (C) 2009  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.HashMap;
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 String queryList;
	
  protected BAMAPIImpl(final String queryList) {
  	this.queryList = queryList;
  }

  private String getQueryList() {
  	return this.queryList;
  }
  
  public List getNumberOfExecutingCasesPerDay(Date since) {
    Date now = new Date();
    return EnvTool.getAllQueriers(getQueryList()).getNumberOfExecutingCasesPerDay(since, now);
  }

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

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

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

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

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

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

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

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

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

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

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

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

  public List getProcessInstancesDuration(Date since, 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);
  }

  public List getProcessInstancesDuration(
      ProcessDefinitionUUID processUUID, Date since, 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);
  }

  public List getProcessInstancesDuration(
      Set processUUIDs, Date since, 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);
  }

  public List getActivityInstancesExecutionTime(Date since, 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);
  }

  public List getActivityInstancesExecutionTime(
      ProcessDefinitionUUID processUUID, Date since, 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);    
  }

  public List getActivityInstancesExecutionTimeFromProcessUUIDs(
      Set processUUIDs, Date since, 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);
  }
  
  public List getActivityInstancesExecutionTime(
      ActivityDefinitionUUID activityUUID, Date since, 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);  
  }

  public List getActivityInstancesExecutionTimeFromActivityUUIDs(
      Set activityUUIDs, Date since, 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);
  }

  public List getTaskInstancesWaitingTime(Date since, 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);
  }

  public List getTaskInstancesWaitingTime(
      ProcessDefinitionUUID processUUID, Date since, 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);
  }

  public List getTaskInstancesWaitingTimeFromProcessUUIDs(
      Set processUUIDs, Date since, 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);
  }

  public List getTaskInstancesWaitingTime(
      ActivityDefinitionUUID taskUUID, Date since, 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);
  }

  public List getTaskInstancesWaitingTimeFromTaskUUIDs(
      Set tasksUUIDs, Date since, 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);
  }

  public List getTaskInstancesWaitingTimeOfUser(String username,
      Date since, 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);
  }

  public List getTaskInstancesWaitingTimeOfUser(String username,
      ProcessDefinitionUUID processUUID, Date since, 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);    
  }

  public List getTaskInstancesWaitingTimeOfUserFromProcessUUIDs(
      String username, Set processUUIDs, Date since,
      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);   
  }

  public List getTaskInstancesWaitingTimeOfUser(String username,
      ActivityDefinitionUUID taskUUID, Date since, 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);    
  }

  public List getTaskInstancesWaitingTimeOfUserFromTaskUUIDs(
      String username, Set tasksUUIDs, Date since,
      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);   
  }

  public List getActivityInstancesDuration(Date since, 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);
  }

  public List getActivityInstancesDuration(
      ProcessDefinitionUUID processUUID, Date since, 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);
  }

  public List getActivityInstancesDurationFromProcessUUIDs(
      Set processUUIDs, Date since, 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);
  }

  public List getActivityInstancesDuration(
      ActivityDefinitionUUID activityUUID, Date since, 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);
  }

  public List getActivityInstancesDurationFromActivityUUIDs(
      Set activityUUIDs, Date since, 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);
  }

  public List getActivityInstancesDurationByActivityType(
      Type activityType, Date since, 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);
  }

  public List getActivityInstancesDurationByActivityType(
      Type activityType, ProcessDefinitionUUID processUUID, Date since,
      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);
  }

  public List getActivityInstancesDurationByActivityTypeFromProcessUUIDs(
      Type activityType, Set processUUIDs, Date since,
      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);
  }

  public long getNumberOfCreatedProcessInstances(Date since, 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);
  }

  public long getNumberOfCreatedProcessInstances(
      ProcessDefinitionUUID processUUID, Date since, 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);
  }

  public long getNumberOfCreatedActivityInstances(Date since, 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);
  }

  public long getNumberOfCreatedActivityInstances(
      ProcessDefinitionUUID processUUID, Date since, 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);
  }

  public long getNumberOfCreatedActivityInstancesFromProcessUUIDs(
      Set processUUIDs, Date since, 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);
  }

  public long getNumberOfCreatedActivityInstances(
      ActivityDefinitionUUID activityUUID, Date since, 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);    
  }

  public long getNumberOfCreatedActivityInstancesFromActivityUUIDs(
      Set activityUUIDs, Date since, 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);
  }

  public long getNumberOfCreatedActivityInstancesByActivityType(
      Type activityType, Date since, 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);
  }

  public long getNumberOfCreatedActivityInstancesByActivityType(
      Type activityType, ProcessDefinitionUUID processUUID, Date since,
      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);
  }

  public long getNumberOfCreatedActivityInstancesByActivityTypeFromProcessUUIDs(
      Type activityType, Set processUUIDs, Date since,
      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);
  }
  /*
   * (non-Javadoc)
   * 
   * @see org.ow2.bonita.facade.BAMAPI#getMemoryUsage()
   */
  @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 (MalformedObjectNameException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (MBeanException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (ReflectionException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (AttributeNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (javax.management.InstanceNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      }
      return result;
  }
  
  /* (non-Javadoc)
   * @see org.ow2.bonita.facade.BAMAPI#getMemoryUsagePercentage()
   */
  @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 (MalformedObjectNameException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (MBeanException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (ReflectionException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (AttributeNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (javax.management.InstanceNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      }
      return result;
  }    

  /* (non-Javadoc)
   * @see org.ow2.bonita.facade.BAMAPI#getSystemLoadAverage()
   */
  @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 (MalformedObjectNameException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (MBeanException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (ReflectionException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (AttributeNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (javax.management.InstanceNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      }
      return result;
  }

  /* (non-Javadoc)
   * @see org.ow2.bonita.facade.BAMAPI#getUpTime()
   */
  @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 (MalformedObjectNameException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (MBeanException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (ReflectionException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (AttributeNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (javax.management.InstanceNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      }
      return result;
  }

  /* (non-Javadoc)
   * @see org.ow2.bonita.facade.BAMAPI#getStartTime()
   */
  @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 (AttributeNotFoundException e) {
              throw new MonitoringException(e.getMessage(),e);
          } catch (javax.management.InstanceNotFoundException e) {
              throw new MonitoringException(e.getMessage(),e);
          } catch (MalformedObjectNameException e) {
              throw new MonitoringException(e.getMessage(),e);
          } catch (MBeanException e) {
              throw new MonitoringException(e.getMessage(),e);
          } catch (ReflectionException e) {
              throw new MonitoringException(e.getMessage(),e);
          } catch (NullPointerException e) {
              throw new MonitoringException(e.getMessage(),e);
          }

      return result;
  }

  /* (non-Javadoc)
   * @see org.ow2.bonita.facade.BAMAPI#getTotalThreadsCpuTime()
   */
  @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 (MalformedObjectNameException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (MBeanException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (ReflectionException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (AttributeNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (javax.management.InstanceNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      }
      return result;
  }

  /* (non-Javadoc)
   * @see org.ow2.bonita.facade.BAMAPI#getThreadCount()
   */
  @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 (MalformedObjectNameException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (MBeanException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (ReflectionException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (AttributeNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      } catch (javax.management.InstanceNotFoundException e) {
          throw new MonitoringException(e.getMessage(),e);
      }
      return result;
  }
    
    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getAvailableProcessors()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;
    }

    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getOSArch()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;
    }    
    
    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getOSName()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;        
    }

    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getOSVersion()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;       
    }

    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getJvmName()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;    
    }

    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getJvmVendor()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;    
    }

    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getJvmVersion()
     */
    @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 (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;   
    }
    
    /* (non-Javadoc)
     * @see org.ow2.bonita.facade.BAMAPI#getJvmSystemProperties()
     */
    @SuppressWarnings("unchecked")
    @Override
    public Map getJvmSystemProperties() throws MonitoringException {
        Map result = new HashMap();
        final MBeanServer mbeanServer = MBeanUtil.getMBeanServer();
        try {
            result = ((Map) mbeanServer.getAttribute(new ObjectName(JvmMBean.JVM_MBEAN_NAME), "JvmSystemProperties"));
        } catch (MalformedObjectNameException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (MBeanException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (ReflectionException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (AttributeNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        } catch (javax.management.InstanceNotFoundException e) {
            throw new MonitoringException(e.getMessage(),e);
        }
        return result;   
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy