Example usage for javax.management Attribute getValue

List of usage examples for javax.management Attribute getValue

Introduction

In this page you can find the example usage for javax.management Attribute getValue.

Prototype

public Object getValue() 

Source Link

Document

Returns an Object that is the value of this attribute.

Usage

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * function used to get attribute values of Async Event Queue and map them to
 * Async Event Queue  inner class object
 *
 * @param mbeanName//from w ww  .j  a  v a  2 s  . c  om
 * @return
 * @throws InstanceNotFoundException
 * @throws IntrospectionException
 * @throws ReflectionException
 * @throws IOException
 * @throws AttributeNotFoundException
 * @throws MBeanException
 */
private Cluster.AsyncEventQueue initAsyncEventQueue(ObjectName mbeanName) throws InstanceNotFoundException,
        IntrospectionException, ReflectionException, IOException, AttributeNotFoundException, MBeanException {

    Cluster.AsyncEventQueue asyncEventQueue = new Cluster.AsyncEventQueue();
    AttributeList attributeList = this.mbs.getAttributes(mbeanName,
            PulseConstants.ASYNC_EVENT_QUEUE_MBEAN_ATTRIBUTES);

    for (int i = 0; i < attributeList.size(); i++) {
        Attribute attribute = (Attribute) attributeList.get(i);
        String name = attribute.getName();
        switch (name) {
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_ASYNCEVENTID:
            asyncEventQueue.setId(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_ASYNC_EVENT_LISTENER:
            asyncEventQueue
                    .setAsyncEventListener(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_BATCH_CONFLATION_ENABLED:
            asyncEventQueue
                    .setBatchConflationEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_BATCH_TIME_INTERVAL:
            asyncEventQueue.setBatchTimeInterval(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_BATCH_SIZE:
            asyncEventQueue.setBatchSize(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_EVENT_QUEUE_SIZE:
            asyncEventQueue.setEventQueueSize(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_PARALLEL:
            asyncEventQueue.setParallel(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AEQ_PRIMARY:
            asyncEventQueue.setPrimary(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        }
    }
    return asyncEventQueue;
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * function used to get attribute values of Cluster Region and map them to
 * cluster region vo/*from   ww w  .j  a  va  2s .  co m*/
 *
 * @param mbeanName
 *          Cluster Region MBean
 */
private void updateClusterRegion(ObjectName mbeanName) throws IOException {

    try {

        AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.REGION_MBEAN_ATTRIBUTES);

        // retrieve the full path of the region
        String regionObjectName = mbeanName.getKeyProperty("name");
        String regionFullPath = null;
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);

            if (attribute.getName().equals(PulseConstants.MBEAN_ATTRIBUTE_FULLPATH)) {
                regionFullPath = getStringAttribute(attribute.getValue(), attribute.getName());
                break;
            }
        }

        Cluster.Region region = cluster.getClusterRegions().get(regionFullPath);

        if (null == region) {
            region = new Cluster.Region();
        }

        for (int i = 0; i < attributeList.size(); i++) {

            Attribute attribute = (Attribute) attributeList.get(i);

            String name = attribute.getName();
            switch (name) {
            case PulseConstants.MBEAN_ATTRIBUTE_MEMBERS:
                String memName[] = (String[]) attribute.getValue();
                region.getMemberName().clear();
                for (int k = 0; k < memName.length; k++) {
                    region.getMemberName().add(memName[k]);
                }
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_FULLPATH:
                region.setFullPath(getStringAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                region.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                region.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_EMPTYNODES:
                region.setEmptyNode(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                region.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_LRUEVICTIONRATE:
                region.setLruEvictionRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                region.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_REGIONTYPE:
                region.setRegionType(getStringAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                region.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_SYSTEMREGIONENTRYCOUNT:
                region.setSystemRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
                region.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_PERSISTENTENABLED:
                region.setPersistentEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NAME:
                region.setName(getStringAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_GATEWAYENABLED:
                region.setWanEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKUSAGE:
                region.setDiskUsage(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            }
        }

        //add for each member
        updateRegionOnMembers(regionObjectName, regionFullPath, region);

        cluster.addClusterRegion(regionFullPath, region);
        cluster.getDeletedRegions().remove(region.getFullPath());
        // Memory Reads and writes
        region.getPutsPerSecTrend().add(region.getPutsRate());
        region.getGetsPerSecTrend().add(region.getGetsRate());
        // Disk Reads and Writes
        region.getDiskReadsPerSecTrend().add(region.getDiskReadsRate());
        region.getDiskWritesPerSecTrend().add(region.getDiskWritesRate());

    } catch (InstanceNotFoundException infe) {
        LOGGER.warning(infe);
    } catch (ReflectionException re) {
        LOGGER.warning(re);
    }
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * function used to get attribute values of Gateway Sender and map them to
 * GatewaySender inner class object/*from  w w w.ja va  2s.c  o  m*/
 *
 * @param mbeanName
 * @return
 * @throws InstanceNotFoundException
 * @throws IntrospectionException
 * @throws ReflectionException
 * @throws IOException
 * @throws AttributeNotFoundException
 * @throws MBeanException
 */
private Cluster.GatewaySender initGatewaySender(ObjectName mbeanName) throws InstanceNotFoundException,
        IntrospectionException, ReflectionException, IOException, AttributeNotFoundException, MBeanException {

    Cluster.GatewaySender gatewaySender = new Cluster.GatewaySender();
    AttributeList attributeList = this.mbs.getAttributes(mbeanName,
            PulseConstants.GATEWAYSENDER_MBEAN_ATTRIBUTES);

    for (int i = 0; i < attributeList.size(); i++) {
        Attribute attribute = (Attribute) attributeList.get(i);
        String name = attribute.getName();
        switch (name) {
        case PulseConstants.MBEAN_ATTRIBUTE_EVENTRECEIVEDDATE:
            gatewaySender.setLinkThroughput(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_BATCHSIZE:
            gatewaySender.setBatchSize(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_SENDERID:
            gatewaySender.setId(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_EVENTQUEUESIZE:
            gatewaySender.setQueueSize(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_RUNNING:
            gatewaySender.setStatus(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_PRIMARY:
            gatewaySender.setPrimary(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_PERSISTENCEENABLED:
            gatewaySender.setPersistenceEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_PARALLEL:
            gatewaySender.setSenderType(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_REMOTE_DS_ID:
            gatewaySender.setRemoteDSId(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_EVENTS_EXCEEDING_ALERT_THRESHOLD:
            gatewaySender.setEventsExceedingAlertThreshold(
                    getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        }
    }
    return gatewaySender;
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * function used to get attribute values of Member Region and map them to
 * Member vo//from   www  .j  a va2 s  . c o m
 *
 * @param mbeanName
 *          Member Region MBean
 */
private void updateMemberRegion(ObjectName mbeanName) throws IOException {

    try {
        String memberName = mbeanName.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_MEMBER);

        Cluster.Member member = cluster.getMembersHMap().get(memberName);

        AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.REGION_MBEAN_ATTRIBUTES);

        // retrieve the full path of the region
        String regionFullPathKey = null;
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);

            if (attribute.getName().equals(PulseConstants.MBEAN_ATTRIBUTE_FULLPATH)) {
                regionFullPathKey = getStringAttribute(attribute.getValue(), attribute.getName());
                break;
            }
        }

        // if member does not exists defined for this region then create a member
        if (null == member) {
            member = new Cluster.Member();
            member.setName(memberName);
            cluster.getMembersHMap().put(memberName, member);
        }

        // if region with given path exists then update same else add new region
        Cluster.Region region = member.getMemberRegions().get(regionFullPathKey);
        if (null == region) {
            region = new Cluster.Region();
            member.getMemberRegions().put(regionFullPathKey, region);
            member.setTotalRegionCount(member.getTotalRegionCount() + 1);
        }
        region.setFullPath(regionFullPathKey); // use already retrieved values

        // update the existing or new region
        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);
            String name = attribute.getName();
            switch (name) {
            case PulseConstants.MBEAN_ATTRIBUTE_FULLPATH:
                region.setFullPath(getStringAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                region.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                region.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                region.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_LRUEVICTIONRATE:
                region.setLruEvictionRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                region.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_REGIONTYPE:
                region.setRegionType(getStringAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
                region.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                region.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
                region.setSystemRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NAME:
                region.setName(getStringAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_PERSISTENTENABLED:
                region.setPersistentEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_GATEWAYENABLED:
                region.setWanEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
                break;
            }
        }
        /* GemfireXD related code
        try{// Added for Rolling upgrade changes. Needs to removed once Rolling upgrade handled gracefully
           CompositeData compositeData = (CompositeData) (this.mbs.invoke(mbeanName,
         PulseConstants.MBEAN_OPERATION_LISTREGIONATTRIBUTES, null, null));
                
               if (compositeData != null) {
                 if (compositeData.containsKey(PulseConstants.COMPOSITE_DATA_KEY_SCOPE)) {
         region.setScope((String) compositeData
             .get(PulseConstants.COMPOSITE_DATA_KEY_SCOPE));
                 } else if (compositeData
           .containsKey(PulseConstants.COMPOSITE_DATA_KEY_DISKSTORENAME)) {
         region.setDiskStoreName((String) compositeData
             .get(PulseConstants.COMPOSITE_DATA_KEY_DISKSTORENAME));
                 } else if (compositeData
           .containsKey(PulseConstants.COMPOSITE_DATA_KEY_DISKSYNCHRONOUS)) {
         region.setDiskSynchronous((Boolean) compositeData
             .get(PulseConstants.COMPOSITE_DATA_KEY_DISKSYNCHRONOUS));
                 }
               }
        }catch (MBeanException anfe) {
            LOGGER.warning(anfe);
        }catch (javax.management.RuntimeMBeanException anfe) {
            region.setScope("");
            region.setDiskStoreName("");
            region.setDiskSynchronous(false);
            //LOGGER.warning("Some of the Pulse elements are not available currently. There might be a GemFire upgrade going on.");
        }
                
                
        // Remove deleted regions from member's regions list
        for (Iterator<String> it = cluster.getDeletedRegions().iterator(); it
            .hasNext();) {
          String deletedRegion = it.next();
          if (member.getMemberRegions().get(deletedRegion) != null) {
            member.getMemberRegions().remove(deletedRegion);
          }
          member.setTotalRegionCount(member.getMemberRegions().size());
        }*/
    } catch (InstanceNotFoundException infe) {
        LOGGER.warning(infe);
    } catch (ReflectionException re) {
        LOGGER.warning(re);
    }
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

private void updateClusterStatement(ObjectName mbeanName) throws IOException {

    try {// w  w w  . j a  v a  2s  .c  om

        AttributeList attributeList = this.mbs.getAttributes(mbeanName,
                PulseConstants.STATEMENT_MBEAN_ATTRIBUTES);
        // retrieve the full path of the region
        String statementDefinition = mbeanName.getKeyProperty("name");

        if (isQuoted(statementDefinition)) {
            statementDefinition = ObjectName.unquote(statementDefinition);
        }

        Cluster.Statement statement = cluster.getClusterStatements().get(statementDefinition);

        if (null == statement) {
            statement = new Cluster.Statement();
            statement.setQueryDefinition(statementDefinition);
        }

        for (int i = 0; i < attributeList.size(); i++) {
            Attribute attribute = (Attribute) attributeList.get(i);
            String name = attribute.getName();
            switch (name) {
            case PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESCOMPILED:
                statement.setNumTimesCompiled(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTION:
                statement.setNumExecution(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTIONSINPROGRESS:
                statement.setNumExecutionsInProgress(
                        getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESGLOBALINDEXLOOKUP:
                statement.setNumTimesGlobalIndexLookup(
                        getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMROWSMODIFIED:
                statement.setNumRowsModified(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_PARSETIME:
                statement.setParseTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_BINDTIME:
                statement.setBindTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_OPTIMIZETIME:
                statement.setOptimizeTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_ROUTINGINFOTIME:
                statement.setRoutingInfoTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_GENERATETIME:
                statement.setGenerateTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_TOTALCOMPILATIONTIME:
                statement.setTotalCompilationTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_EXECUTIONTIME:
                statement.setExecutionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_PROJECTIONTIME:
                statement.setProjectionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_TOTALEXECUTIONTIME:
                statement.setTotalExecutionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_ROWSMODIFICATIONTIME:
                statement.setRowsModificationTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_QNNUMROWSSEEN:
                statement.setqNNumRowsSeen(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_QNMSGSENDTIME:
                statement.setqNMsgSendTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_QNMSGSERTIME:
                statement.setqNMsgSerTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_QNRESPDESERTIME:
                statement.setqNRespDeSerTime(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            }
        }

        cluster.addClusterStatement(statementDefinition, statement);
        // TODO : to store data for sparklines later
        /*
         * region.getPutsPerSecTrend().add(region.getPutsRate());
         * region.getGetsPerSecTrend().add(region.getGetsRate());
         */
    } catch (InstanceNotFoundException infe) {
        LOGGER.warning(infe);
    } catch (ReflectionException re) {
        LOGGER.warning(re);
    }
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * function used to get attribute values of Cluster System and map them to
 * cluster vo/*from w  w w  .j  a v  a2 s.  c  o m*/
 *
 * @param mbeanName
 *          Cluster System MBean
 * @throws IOException
 *
 */
private void updateClusterSystem(ObjectName mbeanName) throws IOException {
    try {
        if (!this.isAddedNotiListner) {
            this.mbs.addNotificationListener(mbeanName, this, null, new Object());
            this.isAddedNotiListner = true;
        }

        if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController.getPulseProductSupport())) {
            // Reset to zero
            cluster.setServerCount(0);
            cluster.setTotalRegionCount(0);
        } else {
            String[] serverCnt = (String[]) (this.mbs.invoke(mbeanName,
                    PulseConstants.MBEAN_OPERATION_LISTSERVERS, null, null));
            cluster.setServerCount(serverCnt.length);
        }

        TabularData table = (TabularData) (this.mbs.invoke(mbeanName,
                PulseConstants.MBEAN_OPERATION_VIEWREMOTECLUSTERSTATUS, null, null));

        Collection<CompositeData> rows = (Collection<CompositeData>) table.values();
        cluster.getWanInformationObject().clear();
        for (CompositeData row : rows) {
            final Object key = row.get("key");
            final Object value = row.get("value");
            cluster.getWanInformationObject().put((String) key, (Boolean) value);
        }

        AttributeList attributeList = this.mbs.getAttributes(mbeanName,
                PulseConstants.CLUSTER_MBEAN_ATTRIBUTES);

        for (int i = 0; i < attributeList.size(); i++) {

            Attribute attribute = (Attribute) attributeList.get(i);
            String name = attribute.getName();
            switch (name) {
            case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
                cluster.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMCLIENTS:
                cluster.setClientConnectionCount(
                        getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISTRIBUTEDSYSTEMID:
                cluster.setClusterId(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_LOCATORCOUNT:
                cluster.setLocatorCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMRUNNIGFUNCTION:
                try {
                    cluster.setRunningFunctionCount(
                            getIntegerAttribute(attribute.getValue(), attribute.getName()));
                } catch (Exception e) {
                    cluster.setRunningFunctionCount(0);
                    continue;
                }
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_REGISTEREDCQCOUNT:
                cluster.setRegisteredCQCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMSUBSCRIPTIONS:
                cluster.setSubscriptionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMTXNCOMMITTED:
                cluster.setTxnCommittedCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_NUMTXNROLLBACK:
                cluster.setTxnRollbackCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_TOTALHEAPSIZE:
                cluster.setTotalHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_USEDHEAPSIZE:
                try {
                    cluster.setUsedHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
                } catch (Exception e) {
                    cluster.setUsedHeapSize((long) 0);
                    continue;
                }
                cluster.getMemoryUsageTrend().add(cluster.getUsedHeapSize());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONENTRYCOUNT:
                cluster.setTotalRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_CURRENTENTRYCOUNT:
                cluster.setCurrentQueryCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_TOTALDISKUSAGE:
                try {
                    cluster.setTotalBytesOnDisk(getLongAttribute(attribute.getValue(), attribute.getName()));
                } catch (Exception e) {
                    cluster.setTotalBytesOnDisk((long) 0);
                    continue;
                }
                cluster.getTotalBytesOnDiskTrend().add(cluster.getTotalBytesOnDisk());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                cluster.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                cluster.getThroughoutWritesTrend().add(cluster.getDiskWritesRate());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEWRITES:
                try {
                    cluster.setWritePerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                } catch (Exception e) {
                    cluster.setWritePerSec(0);
                    continue;
                }
                cluster.getWritePerSecTrend().add(cluster.getWritePerSec());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEREADS:
                try {
                    cluster.setReadPerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                } catch (Exception e) {
                    cluster.setReadPerSec(0);
                    continue;
                }
                cluster.getReadPerSecTrend().add(cluster.getReadPerSec());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_QUERYREQUESTRATE:
                cluster.setQueriesPerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                cluster.getQueriesPerSecTrend().add(cluster.getQueriesPerSec());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                cluster.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                cluster.getThroughoutReadsTrend().add(cluster.getDiskReadsRate());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_JVMPAUSES:
                long trendVal = determineCurrentJVMPauses(PulseConstants.JVM_PAUSES_TYPE_CLUSTER, "",
                        getLongAttribute(attribute.getValue(), attribute.getName()));
                cluster.setGarbageCollectionCount(trendVal);
                cluster.getGarbageCollectionTrend().add(cluster.getGarbageCollectionCount());
                break;
            case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONCOUNT:
                if (!PulseConstants.PRODUCT_NAME_SQLFIRE
                        .equalsIgnoreCase(PulseController.getPulseProductSupport())) {
                    // for Gemfire
                    cluster.setTotalRegionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                }
                break;
            }
        }

        // SQLFIRE attributes
        if (PulseConstants.PRODUCT_NAME_SQLFIRE.equalsIgnoreCase(PulseController.getPulseProductSupport())) {

            try { // get sqlfire cluster mbean

                ObjectName sfMemberMbeansObjectName = new ObjectName(PulseConstants.OBJECT_NAME_SF_CLUSTER);

                Set<ObjectName> sfCluserMBeans = this.mbs.queryNames(sfMemberMbeansObjectName, null);

                for (ObjectName sfCluserMBean : sfCluserMBeans) {

                    AttributeList attrList = this.mbs.getAttributes(sfCluserMBean,
                            PulseConstants.SF_CLUSTER_MBEAN_ATTRIBUTES);

                    for (int i = 0; i < attrList.size(); i++) {

                        Attribute attribute = (Attribute) attrList.get(i);

                        if (attribute.getName()
                                .equals(PulseConstants.MBEAN_ATTRIBUTE_PROCEDURECALLSINPROGRESS)) {
                            try {
                                cluster.setRunningFunctionCount(
                                        getIntegerAttribute(attribute.getValue(), attribute.getName()));
                            } catch (Exception e) {
                                cluster.setRunningFunctionCount(0);
                                continue;
                            }
                        } else if (attribute.getName()
                                .equals(PulseConstants.MBEAN_ATTRIBUTE_NETWORKSERVERCLIENTCONNECTIONSTATS)) {
                            // set number of cluster's clients
                            CompositeData nscConnStats = (CompositeData) attribute.getValue();

                            cluster.setClientConnectionCount(getLongAttribute(
                                    nscConnStats.get(PulseConstants.COMPOSITE_DATA_KEY_CONNECTIONSACTIVE),
                                    PulseConstants.COMPOSITE_DATA_KEY_CONNECTIONSACTIVE));
                        }
                    }
                    break;
                }

            } catch (MalformedObjectNameException e) {
                LOGGER.warning(e);
            } catch (NullPointerException e) {
                LOGGER.warning(e);
            }

        }

    } catch (InstanceNotFoundException infe) {
        LOGGER.warning(infe);
    } catch (ReflectionException re) {
        LOGGER.warning(re);
    } catch (MBeanException anfe) {
        LOGGER.warning(anfe);
    }
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * Add member specific region information on the region
 *
 * @param regionObjectName: used to construct the jmx objectname. For region name that has special characters in, it will have double quotes around it.
 * @param region//from w w w  . ja v a  2  s. co m
 */
private void updateRegionOnMembers(String regionObjectName, String regionFullPath, Cluster.Region region)
        throws IOException {

    try {
        List<String> memberNamesTemp = region.getMemberName();
        ArrayList<String> memberNames = new ArrayList<String>(memberNamesTemp);

        List<Cluster.RegionOnMember> regionOnMemberList = new ArrayList<Cluster.RegionOnMember>();
        List<Cluster.RegionOnMember> regionOnMemberListNew = new ArrayList<Cluster.RegionOnMember>();
        Cluster.RegionOnMember[] regionOnMemberNames = region.getRegionOnMembers();

        if ((regionOnMemberNames != null) && (regionOnMemberNames.length > 0)) {
            regionOnMemberList = new ArrayList<Cluster.RegionOnMember>(Arrays.asList(regionOnMemberNames));
        }
        LOGGER.fine(
                "updateRegionOnMembers : # regionOnMembers objects in region = " + regionOnMemberList.size());

        for (Cluster.RegionOnMember anRom : regionOnMemberList) {

            for (String memberName : memberNames) {
                if (anRom.getMemberName().equals(memberName)) {
                    // Add regionOnMember object in new list
                    regionOnMemberListNew.add(anRom);

                    LOGGER.fine("updateRegionOnMembers : Processing existing Member name = "
                            + anRom.getMemberName());
                    String objectNameROM = PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObjectName
                            + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + anRom.getMemberName();
                    ObjectName regionOnMemberMBean = new ObjectName(objectNameROM);
                    LOGGER.fine(
                            "updateRegionOnMembers : Object name = " + regionOnMemberMBean.getCanonicalName());

                    AttributeList attributeList = this.mbs.getAttributes(regionOnMemberMBean,
                            PulseConstants.REGION_ON_MEMBER_MBEAN_ATTRIBUTES);
                    for (int i = 0; i < attributeList.size(); i++) {
                        Attribute attribute = (Attribute) attributeList.get(i);
                        String name = attribute.getName();
                        switch (name) {
                        case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                            anRom.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine(
                                    "updateRegionOnMembers : anRom.getEntrySize() = " + anRom.getEntrySize());
                            break;
                        case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
                            anRom.setEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine(
                                    "updateRegionOnMembers : anRom.getEntryCount() = " + anRom.getEntryCount());
                            break;
                        case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                            anRom.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine("updateRegionOnMembers : anRom.getPutsRate() = " + anRom.getPutsRate());
                            break;
                        case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                            anRom.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine("updateRegionOnMembers : anRom.getGetsRate() = " + anRom.getGetsRate());
                            break;
                        case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                            anRom.setDiskGetsRate(
                                    getDoubleAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine("updateRegionOnMembers : anRom.getDiskGetsRate() = "
                                    + anRom.getDiskGetsRate());
                            break;
                        case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                            anRom.setDiskPutsRate(
                                    getDoubleAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine("updateRegionOnMembers : anRom.getDiskPutsRate() = "
                                    + anRom.getDiskPutsRate());
                            break;
                        case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
                            anRom.setLocalMaxMemory(
                                    getIntegerAttribute(attribute.getValue(), attribute.getName()));
                            LOGGER.fine("updateRegionOnMembers : anRom.getLocalMaxMemory() = "
                                    + anRom.getLocalMaxMemory());
                            break;
                        }
                    }

                    anRom.getGetsPerSecTrend().add(anRom.getGetsRate());
                    anRom.getPutsPerSecTrend().add(anRom.getPutsRate());
                    anRom.getDiskReadsPerSecTrend().add(anRom.getDiskGetsRate());
                    anRom.getDiskWritesPerSecTrend().add(anRom.getDiskPutsRate());
                    LOGGER.fine("updateRegionOnMembers : Existing member on region : getGetsRate() = "
                            + anRom.getGetsPerSecTrend().size() + ", getPutsRate() = "
                            + anRom.getPutsPerSecTrend().size() + ", getDiskGetsRate() = "
                            + anRom.getDiskReadsPerSecTrend().size() + ", getDiskPutsRate() = "
                            + anRom.getDiskWritesPerSecTrend().size());

                    //remove existing member names from list so only new ones will remain
                    memberNames.remove(anRom.getMemberName());

                    break;
                }
            }
        }

        LOGGER.fine(
                "updateRegionOnMembers : Loop over remaining member names and adding new member in region. Existing count = "
                        + regionOnMemberList.size());
        LOGGER.fine("updateRegionOnMembers : Remaining new members in this region = " + memberNames.size());
        //loop over the remaining regions members and add new members for this region
        for (String memberName : memberNames) {
            String objectNameROM = PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObjectName
                    + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + memberName;
            ObjectName regionOnMemberMBean = new ObjectName(objectNameROM);
            Cluster.RegionOnMember regionOnMember = new Cluster.RegionOnMember();
            regionOnMember.setMemberName(memberName);
            regionOnMember.setRegionFullPath(regionFullPath);
            AttributeList attributeList = this.mbs.getAttributes(regionOnMemberMBean,
                    PulseConstants.REGION_ON_MEMBER_MBEAN_ATTRIBUTES);
            for (int i = 0; i < attributeList.size(); i++) {
                Attribute attribute = (Attribute) attributeList.get(i);
                String name = attribute.getName();
                switch (name) {
                case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
                    regionOnMember.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
                    regionOnMember.setEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
                    regionOnMember.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
                    regionOnMember.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
                    regionOnMember
                            .setDiskGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
                    regionOnMember
                            .setDiskPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
                    break;
                case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
                    regionOnMember
                            .setLocalMaxMemory(getIntegerAttribute(attribute.getValue(), attribute.getName()));
                    break;
                }
            }

            regionOnMember.getGetsPerSecTrend().add(regionOnMember.getGetsRate());
            regionOnMember.getPutsPerSecTrend().add(regionOnMember.getPutsRate());
            regionOnMember.getDiskReadsPerSecTrend().add(regionOnMember.getDiskGetsRate());
            regionOnMember.getDiskWritesPerSecTrend().add(regionOnMember.getDiskPutsRate());

            LOGGER.fine("updateRegionOnMembers : Adding New member on region : getGetsRate() = "
                    + regionOnMember.getGetsRate() + ", getPutsRate() = " + regionOnMember.getPutsRate()
                    + ", getDiskGetsRate() = " + regionOnMember.getDiskGetsRate() + ", getDiskPutsRate() = "
                    + regionOnMember.getDiskPutsRate());

            regionOnMemberListNew.add(regionOnMember);
        }

        //set region on member
        region.setRegionOnMembers(regionOnMemberListNew);
        LOGGER.fine("updateRegionOnMembers : Total regions on member in region " + region.getFullPath()
                + " after update = " + region.getRegionOnMembers().length);
    } catch (MalformedObjectNameException e) {
        LOGGER.warning(e);
    } catch (InstanceNotFoundException infe) {
        LOGGER.warning(infe);
    } catch (ReflectionException re) {
        LOGGER.warning(re);
    }
}

From source file:edu.nwpu.gemfire.monitor.data.JMXDataUpdater.java

/**
 * function used to iterate through all member attributes and return the
 * updated member// w ww . j a  v a 2 s.  c  o  m
 */
private Cluster.Member initializeMember(ObjectName mbeanName, Cluster.Member member)
        throws InstanceNotFoundException, ReflectionException, IOException {

    AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.MEMBER_MBEAN_ATTRIBUTES);

    for (int i = 0; i < attributeList.size(); i++) {

        Attribute attribute = (Attribute) attributeList.get(i);
        String name = attribute.getName();
        switch (name) {
        case PulseConstants.MBEAN_ATTRIBUTE_GEMFIREVERSION:
            if (member.getGemfireVersion() == null) {
                // Set Member's GemFire Version if not set already
                String gemfireVersion = obtainGemfireVersion(
                        getStringAttribute(attribute.getValue(), attribute.getName()));
                member.setGemfireVersion(gemfireVersion);
            }
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_MANAGER:
            member.setManager(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONCOUNT:
            member.setTotalRegionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_LOCATOR:
            member.setLocator(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_TOTALDISKUSAGE:
            member.setTotalDiskUsage(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_SERVER:
            member.setServer(getBooleanAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_TOTALFILEDESCRIPTOROPEN:
            member.setTotalFileDescriptorOpen(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_LOADAVERAGE:
            member.setLoadAverage(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
            member.setThroughputWrites(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            member.getThroughputWritesTrend().add(member.getThroughputWrites());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
            member.setThroughputReads(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            member.getThroughputReadsTrend().add(member.getThroughputReads());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_JVMPAUSES:
            long trendVal = determineCurrentJVMPauses(PulseConstants.JVM_PAUSES_TYPE_MEMBER, member.getName(),
                    getLongAttribute(attribute.getValue(), attribute.getName()));
            member.setGarbageCollectionCount(trendVal);
            member.getGarbageCollectionSamples().add(member.getGarbageCollectionCount());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_USEDMEMORY:
            member.setCurrentHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
            member.getHeapUsageSamples().add(member.getCurrentHeapSize());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_MAXMEMORY:
            member.setMaxHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_NUMTHREADS:
            member.setNumThreads(getIntegerAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_MEMBERUPTIME:
            member.setUptime(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_HOST:
            member.setHost(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_HOSTNAMEFORCLIENTS:
            member.setHostnameForClients(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_BINDADDRESS:
            member.setBindAddress(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_TOTALBYTESONDISK:
            member.setTotalBytesOnDisk(getLongAttribute(attribute.getValue(), attribute.getName()));
            member.getTotalBytesOnDiskSamples().add(member.getTotalBytesOnDisk());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_CPUUSAGE:
            member.setCpuUsage(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            member.getCpuUsageSamples().add(member.getCpuUsage());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_HOSTCPUUSAGE:
            // Float value is expected for host cpu usage.
            // TODO Remove Float.valueOf() when float value is provided in mbean
            member.setHostCpuUsage(
                    Double.valueOf(getIntegerAttribute(attribute.getValue(), attribute.getName())));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_MEMBER:
            member.setName(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_ID:
            member.setId(getStringAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEREADS:
            member.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            member.getGetsPerSecond().add(member.getGetsRate());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEWRITES:
            member.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
            member.getPutsPerSecond().add(member.getPutsRate());
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_OFFHEAPFREESIZE:
            member.setOffHeapFreeSize(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_OFFHEAPUSEDSIZE:
            member.setOffHeapUsedSize(getLongAttribute(attribute.getValue(), attribute.getName()));
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_SERVERGROUPS:
            String sgValues[] = (String[]) attribute.getValue();
            member.getServerGroups().clear();
            for (int k = 0; k < sgValues.length; k++) {
                member.getServerGroups().add(sgValues[k]);
            }
            break;
        case PulseConstants.MBEAN_ATTRIBUTE_REDUNDANCYZONES:
            String rzValue = "";
            if (null != attribute.getValue()) {
                rzValue = getStringAttribute(attribute.getValue(), attribute.getName());
            }
            member.getRedundancyZones().clear();
            if (!rzValue.isEmpty()) {
                member.getRedundancyZones().add(rzValue);
            }
            break;
        }
    }

    // SQLFire specific attributes
    if (PulseController.getPulseProductSupport().equalsIgnoreCase(PulseConstants.PRODUCT_NAME_SQLFIRE)) {

        try {
            // get sqlfire mbeans
            String memberName = mbeanName.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_MEMBER);

            ObjectName sfMemberMbeansObjectName = new ObjectName(
                    PulseConstants.OBJECT_NAME_SF_MEMBER_PATTERN + memberName);

            Set<ObjectName> sfMemberMBeans = this.mbs.queryNames(sfMemberMbeansObjectName, null);
            for (ObjectName sfMemberMBean : sfMemberMBeans) {

                AttributeList attrList = this.mbs.getAttributes(sfMemberMBean,
                        PulseConstants.SF_MEMBER_MBEAN_ATTRIBUTES);
                for (int i = 0; i < attrList.size(); i++) {

                    Attribute attribute = (Attribute) attrList.get(i);

                    if (attribute.getName().equals(PulseConstants.MBEAN_ATTRIBUTE_DATASTORE)) {
                        member.setServer(getBooleanAttribute(attribute.getValue(), attribute.getName()));

                        // Update Server count
                        if (member.isServer()) {
                            cluster.setServerCount(cluster.getServerCount() + 1);
                        }
                    } else if (attribute.getName()
                            .equals(PulseConstants.MBEAN_ATTRIBUTE_NETWORKSERVERCLIENTCONNECTIONSTATS)) {

                        CompositeData nscConnStats = (CompositeData) attribute.getValue();

                        // Update sqlfire client count
                        member.setNumSqlfireClients(getLongAttribute(
                                nscConnStats.get(PulseConstants.COMPOSITE_DATA_KEY_CONNECTIONSACTIVE),
                                PulseConstants.COMPOSITE_DATA_KEY_CONNECTIONSACTIVE));
                    }
                }
                break;
            }

        } catch (MalformedObjectNameException e) {
            LOGGER.warning(e);
        } catch (NullPointerException e) {
            LOGGER.warning(e);
        }

    }

    return member;
}

From source file:org.rifidi.edge.rest.SensorManagerServiceRestletImpl.java

private Object getAttributeValue(AttributeList attributes, String attributeName) throws Exception {

    for (Attribute attr : attributes.asList()) {

        if (attr.getName().equals(attributeName)) {
            return attr.getValue();
        }/*from   w  w w .  j  a v  a 2s.  co m*/

    }

    throw new Exception("The property " + attributeName + " is required and is not present");

}

From source file:org.rifidi.edge.rest.SensorManagerServiceRestletImpl.java

private Object getNonRequiredAttributeValue(AttributeList attributes, String attributeName) throws Exception {

    for (Attribute attr : attributes.asList()) {

        if (attr.getName().equals(attributeName)) {
            return attr.getValue();
        }/* ww  w  .  jav  a 2  s. co m*/

    }

    return null;

}