ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sboi...@apache.org
Subject [22/53] [abbrv] incubator-ignite git commit: IGNITE-49 Rename and remove metrics classes
Date Tue, 27 Jan 2015 16:40:42 GMT
IGNITE-49 Rename and remove metrics classes


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f6a7abd9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f6a7abd9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f6a7abd9

Branch: refs/heads/sprint-1
Commit: f6a7abd98cbcdf3e8288a79d538dbacd83ca003c
Parents: 6a17d4a
Author: nikolay_tikhonov <ntikhonov@gridgain.com>
Authored: Mon Jan 26 11:32:02 2015 +0300
Committer: nikolay_tikhonov <ntikhonov@gridgain.com>
Committed: Mon Jan 26 11:32:02 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/CacheMxBeanImpl.java |  73 -----
 .../java/org/apache/ignite/IgniteCache.java     |   3 +-
 .../org/apache/ignite/IgniteCacheManager.java   |  19 +-
 .../java/org/apache/ignite/cache/GridCache.java |   3 +-
 .../apache/ignite/cache/IgniteCacheMxBean.java  | 222 ---------------
 .../ignite/cluster/ClusterNodeMetrics.java      |  56 ----
 .../internal/CacheConfigurationMxBeanImpl.java  |  75 +++++
 .../internal/ClusterNodeMetricsMxBean.java      | 211 +++++++++++++-
 .../cache/CacheMetricsMxBeanImpl.java           | 275 +++++++++++++++++++
 .../processors/cache/CacheMxBeanImpl.java       | 275 -------------------
 .../processors/cache/GridCacheAdapter.java      |   7 +-
 .../processors/cache/GridCacheProxyImpl.java    |   3 +-
 .../processors/cache/IgniteCacheProxy.java      |   3 +-
 .../ignite/mbean/CacheConfigurationMxBean.java  |  54 ++++
 .../apache/ignite/mbean/CacheMetricsMxBean.java | 222 +++++++++++++++
 15 files changed, 858 insertions(+), 643 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/CacheMxBeanImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/CacheMxBeanImpl.java b/modules/core/src/main/java/org/apache/ignite/CacheMxBeanImpl.java
deleted file mode 100644
index 626ea0f..0000000
--- a/modules/core/src/main/java/org/apache/ignite/CacheMxBeanImpl.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite;
-
-import javax.cache.*;
-import javax.cache.configuration.*;
-import javax.cache.management.*;
-
-/**
- * Implementation of {@link CacheMXBean}.
- *
- */
-public class CacheMxBeanImpl implements CacheMXBean {
-    /** */
-    private final Cache<?, ?> cache;
-
-    /**
-     * @param cache Cache.
-     */
-    public CacheMxBeanImpl(Cache<?, ?> cache) {
-        this.cache = cache;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String getKeyType() {
-        return cache.getConfiguration(CompleteConfiguration.class).getKeyType().getName();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String getValueType() {
-        return cache.getConfiguration(CompleteConfiguration.class).getValueType().getName();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isReadThrough() {
-        return cache.getConfiguration(CompleteConfiguration.class).isReadThrough();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isWriteThrough() {
-        return cache.getConfiguration(CompleteConfiguration.class).isWriteThrough();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isStoreByValue() {
-        return cache.getConfiguration(CompleteConfiguration.class).isStoreByValue();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isStatisticsEnabled() {
-        return cache.getConfiguration(CompleteConfiguration.class).isStatisticsEnabled();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isManagementEnabled() {
-        return cache.getConfiguration(CompleteConfiguration.class).isManagementEnabled();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
index f2b9f73..50cc629 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
@@ -21,6 +21,7 @@ import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.query.*;
 import org.apache.ignite.cache.store.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.mbean.*;
 import org.jetbrains.annotations.*;
 
 import javax.cache.*;
@@ -366,5 +367,5 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS
      *
      * @return MxBean.
      */
-    public IgniteCacheMxBean mxBean();
+    public CacheMetricsMxBean mxBean();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java b/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
index ba8b853..7a4ced6 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
@@ -19,6 +19,7 @@ package org.apache.ignite;
 
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.CacheConfigurationMxBeanImpl;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
 
@@ -41,7 +42,7 @@ public class IgniteCacheManager implements CacheManager {
     private static final String CACHE_CONFIGURATION = "CacheConfiguration";
 
     /** */
-    private final Map<String, IgniteBiTuple<Ignite, CacheMxBeanImpl>> igniteMap = new HashMap<>();
+    private final Map<String, IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl>> igniteMap = new HashMap<>();
 
     /** */
     private final URI uri;
@@ -147,7 +148,7 @@ public class IgniteCacheManager implements CacheManager {
 
             res = ignite.jcache(cacheName);
 
-            igniteMap.put(cacheName, new T2<>(ignite, new CacheMxBeanImpl(res)));
+            igniteMap.put(cacheName, new T2<>(ignite, new CacheConfigurationMxBeanImpl(res)));
         }
 
         if (((CompleteConfiguration)cacheCfg).isManagementEnabled())
@@ -163,7 +164,7 @@ public class IgniteCacheManager implements CacheManager {
      * @param cacheName Cache name.
      */
     private <K, V> IgniteCache<K, V> findCache(String cacheName) {
-        IgniteBiTuple<Ignite, CacheMxBeanImpl> tuple;
+        IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl> tuple;
 
         synchronized (igniteMap) {
             tuple = igniteMap.get(cacheName);
@@ -229,7 +230,7 @@ public class IgniteCacheManager implements CacheManager {
      */
     public boolean isManagedIgnite(Ignite ignite) {
         synchronized (igniteMap) {
-            for (IgniteBiTuple<Ignite, CacheMxBeanImpl> tuple : igniteMap.values()) {
+            for (IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl> tuple : igniteMap.values()) {
                 if (ignite.equals(tuple.get1()))
                     return true;
             }
@@ -245,7 +246,7 @@ public class IgniteCacheManager implements CacheManager {
         if (cacheName == null)
             throw new NullPointerException();
 
-        IgniteBiTuple<Ignite, CacheMxBeanImpl> tuple;
+        IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl> tuple;
 
         synchronized (igniteMap) {
             tuple = igniteMap.remove(cacheName);
@@ -290,7 +291,7 @@ public class IgniteCacheManager implements CacheManager {
         if (cacheName == null)
             throw new NullPointerException();
 
-        IgniteBiTuple<Ignite, CacheMxBeanImpl> tuple;
+        IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl> tuple;
 
         synchronized (igniteMap) {
             tuple = igniteMap.get(cacheName);
@@ -318,7 +319,7 @@ public class IgniteCacheManager implements CacheManager {
         if (cacheName == null)
             throw new NullPointerException();
 
-        IgniteBiTuple<Ignite, CacheMxBeanImpl> tuple;
+        IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl> tuple;
 
         synchronized (igniteMap) {
             tuple = igniteMap.get(cacheName);
@@ -404,13 +405,13 @@ public class IgniteCacheManager implements CacheManager {
     /** {@inheritDoc} */
     @Override public void close() {
         if (closed.compareAndSet(false, true)) {
-            IgniteBiTuple<Ignite, CacheMxBeanImpl>[] ignites;
+            IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl>[] ignites;
 
             synchronized (igniteMap) {
                 ignites = igniteMap.values().toArray(new IgniteBiTuple[igniteMap.values().size()]);
             }
 
-            for (IgniteBiTuple<Ignite, CacheMxBeanImpl> tuple : ignites) {
+            for (IgniteBiTuple<Ignite, CacheConfigurationMxBeanImpl> tuple : ignites) {
                 try {
                     tuple.get1().close();
                 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/cache/GridCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/GridCache.java b/modules/core/src/main/java/org/apache/ignite/cache/GridCache.java
index 03c48b0..100a6c1 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/GridCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/GridCache.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cache.affinity.*;
 import org.apache.ignite.cache.datastructures.*;
 import org.apache.ignite.cache.store.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.mbean.*;
 import org.apache.ignite.transactions.*;
 import org.jetbrains.annotations.*;
 
@@ -121,7 +122,7 @@ public interface GridCache<K, V> extends CacheProjection<K, V> {
      *
      * @return Cache metrics.
      */
-    public IgniteCacheMxBean mxBean();
+    public CacheMetricsMxBean mxBean();
 
     /**
      * Gets size (in bytes) of all entries swapped to disk.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/cache/IgniteCacheMxBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/IgniteCacheMxBean.java b/modules/core/src/main/java/org/apache/ignite/cache/IgniteCacheMxBean.java
deleted file mode 100644
index 36e946f..0000000
--- a/modules/core/src/main/java/org/apache/ignite/cache/IgniteCacheMxBean.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.cache;
-
-import org.apache.ignite.mbean.*;
-import org.apache.ignite.*;
-
-/**
- * This interface defines JMX view on {@link IgniteCache}.
- */
-import org.apache.ignite.*;
-
-import javax.cache.management.*;
-
-/**
- * This interface defines JMX view on {@link IgniteCache}.
- */
-@IgniteMBeanDescription("MBean that provides access to cache descriptor.")
-public interface IgniteCacheMxBean extends CacheStatisticsMXBean, CacheMetrics {
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Clear statistics.")
-    public void clear();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of hits.")
-    public long getCacheHits();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Percentage of successful hits.")
-    public float getCacheHitPercentage();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of misses.")
-    public long getCacheMisses();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Percentage of accesses that failed to find anything.")
-    public float getCacheMissPercentage();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of gets.")
-    public long getCacheGets();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of puts.")
-    public long getCachePuts();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of removals.")
-    public long getCacheRemovals();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of eviction entries.")
-    public long getCacheEvictions();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Average time to execute get.")
-    public float getAverageGetTime();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Average time to execute put.")
-    public float getAveragePutTime();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Average time to execute remove.")
-    public float getAverageRemoveTime();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Average time to commit transaction.")
-    public float getAverageTxCommitTime();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Average time to rollback transaction.")
-    public float getAverageTxRollbackTime();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of transaction commits.")
-    public long getCacheTxCommits();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of transaction rollback.")
-    public long getCacheTxRollbacks();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Cache name.")
-    public String name();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of entries that was swapped to disk.")
-    public long getOverflowSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of entries stored in off-heap memory.")
-    public long getOffHeapEntriesCount();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Memory size allocated in off-heap.")
-    public long getOffHeapAllocatedSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of non-null values in the cache.")
-    public int getSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Number of keys in the cache (possibly with null values).")
-    public int getKeySize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("True if cache is empty.")
-    public boolean isEmpty();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Current size of evict queue.")
-    public int getDhtEvictQueueCurrentSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction per-thread map size.")
-    public int getTxThreadMapSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction per-Xid map size.")
-    public int getTxXidMapSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction committed queue size.")
-    public int getTxCommitQueueSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction prepared queue size.")
-    public int getTxPrepareQueueSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction start version counts map size.")
-    public int getTxStartVersionCountsSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction committed ID map size.")
-    public int getTxCommittedVersionsSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction rolled back ID map size.")
-    public int getTxRolledbackVersionsSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT per-thread map size.")
-    public int getTxDhtThreadMapSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT per-Xid map size.")
-    public int getTxDhtXidMapSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT committed queue size.")
-    public int getTxDhtCommitQueueSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT prepared queue size.")
-    public int getTxDhtPrepareQueueSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT start version counts map size.")
-    public int getTxDhtStartVersionCountsSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT committed ID map size.")
-    public int getTxDhtCommittedVersionsSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Transaction DHT rolled back ID map size.")
-    public int getTxDhtRolledbackVersionsSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("True if write-behind is enabled for this cache.")
-    public boolean isWriteBehindEnabled();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Size of internal buffer that triggers flush procedure.")
-    public int getWriteBehindFlushSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Count of flush threads.")
-    public int getWriteBehindFlushThreadCount();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Flush frequency interval in milliseconds.")
-    public long getWriteBehindFlushFrequency();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Maximum size of batch for similar operations.")
-    public int getWriteBehindStoreBatchSize();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Count of cache overflow events since write-behind cache has started.")
-    public int getWriteBehindTotalCriticalOverflowCount();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Count of cache overflow events since write-behind cache has started.")
-    public int getWriteBehindCriticalOverflowCount();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Count of cache cache entries that are currently in retry state.")
-    public int getWriteBehindErrorRetryCount();
-
-    /** {@inheritDoc} */
-    @IgniteMBeanDescription("Count of cache entries that are waiting to be flushed.")
-    public int getWriteBehindBufferSize();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeMetrics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeMetrics.java b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeMetrics.java
index c818b3d..a9cc70a 100644
--- a/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeMetrics.java
+++ b/modules/core/src/main/java/org/apache/ignite/cluster/ClusterNodeMetrics.java
@@ -17,8 +17,6 @@
 
 package org.apache.ignite.cluster;
 
-import org.apache.ignite.mbean.*;
-
 import java.io.*;
 
 /**
@@ -46,7 +44,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Last update time.
      */
-    @IgniteMBeanDescription("Last update time of this node metrics.")
     public long getLastUpdateTime();
 
     /**
@@ -64,7 +61,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Maximum number of jobs that ever ran concurrently on this node.
      */
-    @IgniteMBeanDescription("Maximum number of jobs that ever ran concurrently on this node.")
     public int getMaximumActiveJobs();
 
     /**
@@ -72,7 +68,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Number of currently active jobs concurrently executing on the node.
      */
-    @IgniteMBeanDescription("Number of currently active jobs concurrently executing on the node.")
     public int getCurrentActiveJobs();
 
     /**
@@ -88,7 +83,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average number of active jobs.
      */
-    @IgniteMBeanDescription("Average number of active jobs concurrently executing on the node.")
     public float getAverageActiveJobs();
 
     /**
@@ -104,7 +98,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Maximum number of waiting jobs.
      */
-    @IgniteMBeanDescription("Maximum number of waiting jobs this node had.")
     public int getMaximumWaitingJobs();
 
     /**
@@ -112,7 +105,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Number of queued jobs currently waiting to be executed.
      */
-    @IgniteMBeanDescription("Number of queued jobs currently waiting to be executed.")
     public int getCurrentWaitingJobs();
 
     /**
@@ -128,7 +120,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average number of waiting jobs.
      */
-    @IgniteMBeanDescription("Average number of waiting jobs this node had queued.")
     public float getAverageWaitingJobs();
 
     /**
@@ -145,7 +136,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Maximum number of jobs rejected at once.
      */
-    @IgniteMBeanDescription("Maximum number of jobs rejected at once during a single collision resolution operation.")
     public int getMaximumRejectedJobs();
 
     /**
@@ -153,7 +143,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Number of jobs rejected after more recent collision resolution operation.
      */
-    @IgniteMBeanDescription("Number of jobs rejected after more recent collision resolution operation.")
     public int getCurrentRejectedJobs();
 
     /**
@@ -169,7 +158,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average number of jobs this node rejects during collision resolution operations.
      */
-    @IgniteMBeanDescription("Average number of jobs this node rejects during collision resolution operations.")
     public float getAverageRejectedJobs();
 
     /**
@@ -181,8 +169,6 @@ public interface ClusterNodeMetrics extends Serializable {
      * @return Total number of jobs this node rejects during collision resolution
      *      operations since node startup.
      */
-    @IgniteMBeanDescription(
-        "Total number of jobs this node rejects during collision resolution operations since node startup.")
     public int getTotalRejectedJobs();
 
     /**
@@ -191,7 +177,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Maximum number of cancelled jobs.
      */
-    @IgniteMBeanDescription("Maximum number of cancelled jobs this node ever had running concurrently.")
     public int getMaximumCancelledJobs();
 
     /**
@@ -201,7 +186,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Number of cancelled jobs that are still running.
      */
-    @IgniteMBeanDescription("Number of cancelled jobs that are still running.")
     public int getCurrentCancelledJobs();
 
     /**
@@ -218,7 +202,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average number of cancelled jobs.
      */
-    @IgniteMBeanDescription("Average number of cancelled jobs this node ever had running concurrently.")
     public float getAverageCancelledJobs();
 
     /**
@@ -229,7 +212,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Total number of cancelled jobs since node startup.
      */
-    @IgniteMBeanDescription("Total number of cancelled jobs since node startup.")
     public int getTotalCancelledJobs();
 
     /**
@@ -240,7 +222,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Total number of jobs handled by the node since node startup.
      */
-    @IgniteMBeanDescription("Total number of jobs handled by the node.")
     public int getTotalExecutedJobs();
 
     /**
@@ -256,7 +237,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Maximum waiting time.
      */
-    @IgniteMBeanDescription("Maximum time a job ever spent waiting in a queue to be executed.")
     public long getMaximumJobWaitTime();
 
     /**
@@ -264,7 +244,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Current wait time of oldest job.
      */
-    @IgniteMBeanDescription("Current wait time of oldest job.")
     public long getCurrentJobWaitTime();
 
     /**
@@ -280,7 +259,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average job wait time.
      */
-    @IgniteMBeanDescription("Average time jobs spend waiting in the queue to be executed.")
     public double getAverageJobWaitTime();
 
     /**
@@ -296,7 +274,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Time it took to execute the longest job on the node.
      */
-    @IgniteMBeanDescription("Time it took to execute the longest job on the node.")
     public long getMaximumJobExecuteTime();
 
     /**
@@ -304,7 +281,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Longest time a current job has been executing for.
      */
-    @IgniteMBeanDescription("Longest time a current job has been executing for.")
     public long getCurrentJobExecuteTime();
 
     /**
@@ -320,7 +296,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average job execution time.
      */
-    @IgniteMBeanDescription("Average time a job takes to execute on the node.")
     public double getAverageJobExecuteTime();
 
     /**
@@ -336,7 +311,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Total number of jobs handled by the node.
      */
-    @IgniteMBeanDescription("Total number of tasks handled by the node.")
     public int getTotalExecutedTasks();
 
     /**
@@ -344,7 +318,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Total time this node spent executing jobs.
      */
-    @IgniteMBeanDescription("Total time this node spent executing jobs.")
     public long getTotalBusyTime();
 
     /**
@@ -352,7 +325,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Gets total time this node spent idling.
      */
-    @IgniteMBeanDescription("Total time this node spent idling (not executing any jobs).")
     public long getTotalIdleTime();
 
     /**
@@ -360,7 +332,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Time this node spend idling since executing last job.
      */
-    @IgniteMBeanDescription("Time this node spend idling since executing last job.")
     public long getCurrentIdleTime();
 
     /**
@@ -369,7 +340,6 @@ public interface ClusterNodeMetrics extends Serializable {
      * @return Percentage of time this node is busy (value is less than
      *      or equal to {@code 1} and greater than or equal to {@code 0})
      */
-    @IgniteMBeanDescription("Percentage of time this node is busy executing jobs vs. idling.")
     public float getBusyTimePercentage();
 
     /**
@@ -378,7 +348,6 @@ public interface ClusterNodeMetrics extends Serializable {
      * @return Percentage of time this node is idle (value is less than
      *      or equal to {@code 1} and greater than or equal to {@code 0})
      */
-    @IgniteMBeanDescription("Percentage of time this node is idling vs. executing jobs.")
     public float getIdleTimePercentage();
 
     /**
@@ -392,7 +361,6 @@ public interface ClusterNodeMetrics extends Serializable {
      * @return The number of processors available to the virtual
      *      machine, never smaller than one.
      */
-    @IgniteMBeanDescription("The number of CPUs available to the Java Virtual Machine.")
     public int getTotalCpus();
 
     /**
@@ -408,7 +376,6 @@ public interface ClusterNodeMetrics extends Serializable {
      * @return The estimated CPU usage in {@code [0, 1]} range.
      *      Negative value if not available.
      */
-    @IgniteMBeanDescription("The system load average; or a negative value if not available.")
     public double getCurrentCpuLoad();
 
     /**
@@ -425,7 +392,6 @@ public interface ClusterNodeMetrics extends Serializable {
      * @return Average of CPU load value in {@code [0, 1]} range over all metrics kept
      *      in the history.
      */
-    @IgniteMBeanDescription("Average of CPU load values over all metrics kept in the history.")
     public double getAverageCpuLoad();
 
     /**
@@ -433,7 +399,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Average time spent in CG since the last update.
      */
-    @IgniteMBeanDescription("Average time spent in CG since the last update.")
     public double getCurrentGcCpuLoad();
 
     /**
@@ -449,7 +414,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The initial size of memory in bytes; {@code -1} if undefined.
      */
-    @IgniteMBeanDescription("The initial size of memory in bytes; -1 if undefined.")
     public long getHeapMemoryInitialized();
 
     /**
@@ -466,7 +430,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Amount of heap memory used.
      */
-    @IgniteMBeanDescription("Current heap size that is used for object allocation.")
     public long getHeapMemoryUsed();
 
     /**
@@ -481,7 +444,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The amount of committed memory in bytes.
      */
-    @IgniteMBeanDescription("The amount of committed memory in bytes.")
     public long getHeapMemoryCommitted();
 
     /**
@@ -503,7 +465,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The maximum amount of memory in bytes; {@code -1} if undefined.
      */
-    @IgniteMBeanDescription("The maximum amount of memory in bytes; -1 if undefined.")
     public long getHeapMemoryMaximum();
 
     /**
@@ -519,7 +480,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The initial size of memory in bytes; {@code -1} if undefined.
      */
-    @IgniteMBeanDescription("The initial size of memory in bytes; -1 if undefined.")
     public long getNonHeapMemoryInitialized();
 
     /**
@@ -535,7 +495,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Amount of none-heap memory used.
      */
-    @IgniteMBeanDescription("Current non-heap memory size that is used by Java VM.")
     public long getNonHeapMemoryUsed();
 
     /**
@@ -550,7 +509,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The amount of committed memory in bytes.
      */
-    @IgniteMBeanDescription("Amount of non-heap memory in bytes that is committed for the JVM to use.")
     public long getNonHeapMemoryCommitted();
 
     /**
@@ -572,8 +530,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The maximum amount of memory in bytes; {@code -1} if undefined.
      */
-    @IgniteMBeanDescription("Maximum amount of non-heap memory in bytes that can " +
-        "be used for memory management. -1 if undefined.")
     public long getNonHeapMemoryMaximum();
 
     /**
@@ -581,7 +537,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Uptime of the JVM in milliseconds.
      */
-    @IgniteMBeanDescription("Uptime of the JVM in milliseconds.")
     public long getUpTime();
 
     /**
@@ -591,7 +546,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Start time of the JVM in milliseconds.
      */
-    @IgniteMBeanDescription("Start time of the JVM in milliseconds.")
     public long getStartTime();
 
     /**
@@ -609,7 +563,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Current number of live threads.
      */
-    @IgniteMBeanDescription("Current number of live threads.")
     public int getCurrentThreadCount();
 
     /**
@@ -621,7 +574,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The peak live thread count.
      */
-    @IgniteMBeanDescription("The peak live thread count.")
     public int getMaximumThreadCount();
 
     /**
@@ -633,7 +585,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return The total number of threads started.
      */
-    @IgniteMBeanDescription("The total number of threads started.")
     public long getTotalStartedThreadCount();
 
     /**
@@ -641,7 +592,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Current number of live daemon threads.
      */
-    @IgniteMBeanDescription("Current number of live daemon threads.")
     public int getCurrentDaemonThreadCount();
 
     /**
@@ -650,7 +600,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Last data version.
      */
-    @IgniteMBeanDescription("Last data version.")
     public long getLastDataVersion();
 
     /**
@@ -658,7 +607,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Sent messages count.
      */
-    @IgniteMBeanDescription("Sent messages count.")
     public int getSentMessagesCount();
 
     /**
@@ -666,7 +614,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Sent bytes count.
      */
-    @IgniteMBeanDescription("Sent bytes count.")
     public long getSentBytesCount();
 
     /**
@@ -674,7 +621,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Received messages count.
      */
-    @IgniteMBeanDescription("Received messages count.")
     public int getReceivedMessagesCount();
 
     /**
@@ -682,7 +628,6 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Received bytes count.
      */
-    @IgniteMBeanDescription("Received bytes count.")
     public long getReceivedBytesCount();
 
     /**
@@ -690,6 +635,5 @@ public interface ClusterNodeMetrics extends Serializable {
      *
      * @return Outbound messages queue size.
      */
-    @IgniteMBeanDescription("Outbound messages queue size.")
     public int getOutboundMessagesQueueSize();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/CacheConfigurationMxBeanImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/CacheConfigurationMxBeanImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/CacheConfigurationMxBeanImpl.java
new file mode 100644
index 0000000..46ed5d9
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/CacheConfigurationMxBeanImpl.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal;
+
+import org.apache.ignite.mbean.*;
+
+import javax.cache.*;
+import javax.cache.configuration.*;
+import javax.cache.management.*;
+
+/**
+ * Implementation of {@link CacheMXBean}.
+ *
+ */
+public class CacheConfigurationMxBeanImpl implements CacheConfigurationMxBean {
+    /** */
+    private final Cache<?, ?> cache;
+
+    /**
+     * @param cache Cache.
+     */
+    public CacheConfigurationMxBeanImpl(Cache<?, ?> cache) {
+        this.cache = cache;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String getKeyType() {
+        return cache.getConfiguration(CompleteConfiguration.class).getKeyType().getName();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String getValueType() {
+        return cache.getConfiguration(CompleteConfiguration.class).getValueType().getName();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isReadThrough() {
+        return cache.getConfiguration(CompleteConfiguration.class).isReadThrough();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isWriteThrough() {
+        return cache.getConfiguration(CompleteConfiguration.class).isWriteThrough();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isStoreByValue() {
+        return cache.getConfiguration(CompleteConfiguration.class).isStoreByValue();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isStatisticsEnabled() {
+        return cache.getConfiguration(CompleteConfiguration.class).isStatisticsEnabled();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isManagementEnabled() {
+        return cache.getConfiguration(CompleteConfiguration.class).isManagementEnabled();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/ClusterNodeMetricsMxBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/ClusterNodeMetricsMxBean.java b/modules/core/src/main/java/org/apache/ignite/internal/ClusterNodeMetricsMxBean.java
index 58ef4aa..4f7c82e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/ClusterNodeMetricsMxBean.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/ClusterNodeMetricsMxBean.java
@@ -25,5 +25,214 @@ import org.apache.ignite.mbean.*;
  */
 @IgniteMBeanDescription("MBean that provides access to all local node metrics.")
 public interface ClusterNodeMetricsMxBean extends ClusterNodeMetrics {
-    // No-op.
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Last update time of this node metrics.")
+    public long getLastUpdateTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum number of jobs that ever ran concurrently on this node.")
+    public int getMaximumActiveJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of currently active jobs concurrently executing on the node.")
+    public int getCurrentActiveJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average number of active jobs concurrently executing on the node.")
+    public float getAverageActiveJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum number of waiting jobs this node had.")
+    public int getMaximumWaitingJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of queued jobs currently waiting to be executed.")
+    public int getCurrentWaitingJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average number of waiting jobs this node had queued.")
+    public float getAverageWaitingJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum number of jobs rejected at once during a single collision resolution operation.")
+    public int getMaximumRejectedJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of jobs rejected after more recent collision resolution operation.")
+    public int getCurrentRejectedJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average number of jobs this node rejects during collision resolution operations.")
+    public float getAverageRejectedJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription(
+        "Total number of jobs this node rejects during collision resolution operations since node startup.")
+    public int getTotalRejectedJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum number of cancelled jobs this node ever had running concurrently.")
+    public int getMaximumCancelledJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of cancelled jobs that are still running.")
+    public int getCurrentCancelledJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average number of cancelled jobs this node ever had running concurrently.")
+    public float getAverageCancelledJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Total number of cancelled jobs since node startup.")
+    public int getTotalCancelledJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Total number of jobs handled by the node.")
+    public int getTotalExecutedJobs();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum time a job ever spent waiting in a queue to be executed.")
+    public long getMaximumJobWaitTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Current wait time of oldest job.")
+    public long getCurrentJobWaitTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time jobs spend waiting in the queue to be executed.")
+    public double getAverageJobWaitTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Time it took to execute the longest job on the node.")
+    public long getMaximumJobExecuteTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Longest time a current job has been executing for.")
+    public long getCurrentJobExecuteTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time a job takes to execute on the node.")
+    public double getAverageJobExecuteTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Total number of tasks handled by the node.")
+    public int getTotalExecutedTasks();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Total time this node spent executing jobs.")
+    public long getTotalBusyTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Total time this node spent idling (not executing any jobs).")
+    public long getTotalIdleTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Time this node spend idling since executing last job.")
+    public long getCurrentIdleTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Percentage of time this node is busy executing jobs vs. idling.")
+    public float getBusyTimePercentage();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Percentage of time this node is idling vs. executing jobs.")
+    public float getIdleTimePercentage();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The number of CPUs available to the Java Virtual Machine.")
+    public int getTotalCpus();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The system load average; or a negative value if not available.")
+    public double getCurrentCpuLoad();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average of CPU load values over all metrics kept in the history.")
+    public double getAverageCpuLoad();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time spent in CG since the last update.")
+    public double getCurrentGcCpuLoad();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The initial size of memory in bytes; -1 if undefined.")
+    public long getHeapMemoryInitialized();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Current heap size that is used for object allocation.")
+    public long getHeapMemoryUsed();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The amount of committed memory in bytes.")
+    public long getHeapMemoryCommitted();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The maximum amount of memory in bytes; -1 if undefined.")
+    public long getHeapMemoryMaximum();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The initial size of memory in bytes; -1 if undefined.")
+    public long getNonHeapMemoryInitialized();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Current non-heap memory size that is used by Java VM.")
+    public long getNonHeapMemoryUsed();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Amount of non-heap memory in bytes that is committed for the JVM to use.")
+    public long getNonHeapMemoryCommitted();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum amount of non-heap memory in bytes that can " +
+            "be used for memory management. -1 if undefined.")
+    public long getNonHeapMemoryMaximum();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Uptime of the JVM in milliseconds.")
+    public long getUpTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Start time of the JVM in milliseconds.")
+    public long getStartTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Current number of live threads.")
+    public int getCurrentThreadCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The peak live thread count.")
+    public int getMaximumThreadCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("The total number of threads started.")
+    public long getTotalStartedThreadCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Current number of live daemon threads.")
+    public int getCurrentDaemonThreadCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Last data version.")
+    public long getLastDataVersion();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Sent messages count.")
+    public int getSentMessagesCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Sent bytes count.")
+    public long getSentBytesCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Received messages count.")
+    public int getReceivedMessagesCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Received bytes count.")
+    public long getReceivedBytesCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Outbound messages queue size.")
+    public int getOutboundMessagesQueueSize();
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsMxBeanImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsMxBeanImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsMxBeanImpl.java
new file mode 100644
index 0000000..acce7e9
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsMxBeanImpl.java
@@ -0,0 +1,275 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.mbean.*;
+
+/**
+ * Management bean that provides access to {@link IgniteCache IgniteCache}.
+ */
+class CacheMetricsMxBeanImpl implements CacheMetricsMxBean {
+    /** Cache. */
+    private GridCacheAdapter<?, ?> cache;
+
+    /**
+     * Creates MBean;
+     *
+     * @param cache Cache.
+     */
+    CacheMetricsMxBeanImpl(GridCacheAdapter<?, ?> cache) {
+        assert cache != null;
+
+        this.cache = cache;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String name() {
+        return cache.metrics0().name();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getOverflowSize() {
+        return cache.metrics0().getOverflowSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getOffHeapEntriesCount() {
+        return cache.metrics0().getOffHeapEntriesCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getOffHeapAllocatedSize() {
+        return cache.metrics0().getOffHeapAllocatedSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getSize() {
+        return cache.metrics0().getSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getKeySize() {
+        return cache.metrics0().getKeySize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isEmpty() {
+        return cache.metrics0().isEmpty();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getDhtEvictQueueCurrentSize() {
+        return cache.metrics0().getDhtEvictQueueCurrentSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxCommitQueueSize() {
+        return cache.metrics0().getTxCommitQueueSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxThreadMapSize() {
+        return cache.metrics0().getTxThreadMapSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxXidMapSize() {
+        return cache.metrics0().getTxXidMapSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxPrepareQueueSize() {
+        return cache.metrics0().getTxPrepareQueueSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxStartVersionCountsSize() {
+        return cache.metrics0().getTxStartVersionCountsSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxCommittedVersionsSize() {
+        return cache.metrics0().getTxCommittedVersionsSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxRolledbackVersionsSize() {
+        return cache.metrics0().getTxRolledbackVersionsSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtThreadMapSize() {
+        return cache.metrics0().getTxDhtThreadMapSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtXidMapSize() {
+        return cache.metrics0().getTxDhtXidMapSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtCommitQueueSize() {
+        return cache.metrics0().getTxDhtCommitQueueSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtPrepareQueueSize() {
+        return cache.metrics0().getTxDhtPrepareQueueSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtStartVersionCountsSize() {
+        return cache.metrics0().getTxDhtStartVersionCountsSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtCommittedVersionsSize() {
+        return cache.metrics0().getTxDhtCommittedVersionsSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getTxDhtRolledbackVersionsSize() {
+        return cache.metrics0().getTxDhtRolledbackVersionsSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean isWriteBehindEnabled() {
+        return cache.metrics0().isWriteBehindEnabled();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindFlushSize() {
+        return cache.metrics0().getWriteBehindFlushSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindFlushThreadCount() {
+        return cache.metrics0().getWriteBehindFlushThreadCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getWriteBehindFlushFrequency() {
+        return cache.metrics0().getWriteBehindFlushFrequency();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindStoreBatchSize() {
+        return cache.metrics0().getWriteBehindStoreBatchSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindTotalCriticalOverflowCount() {
+        return cache.metrics0().getWriteBehindTotalCriticalOverflowCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindCriticalOverflowCount() {
+        return cache.metrics0().getWriteBehindCriticalOverflowCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindErrorRetryCount() {
+        return cache.metrics0().getWriteBehindErrorRetryCount();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getWriteBehindBufferSize() {
+        return cache.metrics0().getWriteBehindBufferSize();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void clear() {
+        cache.metrics0().clear();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheHits() {
+        return cache.metrics0().getCacheHits();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getCacheHitPercentage() {
+        return cache.metrics0().getCacheHitPercentage();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheMisses() {
+        return cache.metrics0().getCacheMisses();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getCacheMissPercentage() {
+        return cache.metrics0().getCacheMissPercentage();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheGets() {
+        return cache.metrics0().getCacheGets();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCachePuts() {
+        return cache.metrics0().getCachePuts();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheRemovals() {
+        return cache.metrics0().getCacheRemovals();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheEvictions() {
+        return cache.metrics0().getCacheEvictions();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageGetTime() {
+        return cache.metrics0().getAverageGetTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAveragePutTime() {
+        return cache.metrics0().getAveragePutTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageRemoveTime() {
+        return cache.metrics0().getAverageRemoveTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageTxCommitTime() {
+        return cache.metrics0().getAverageTxCommitTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public float getAverageTxRollbackTime() {
+        return cache.metrics0().getAverageTxRollbackTime();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheTxCommits() {
+        return cache.metrics0().getCacheTxCommits();
+    }
+
+    /** {@inheritDoc} */
+    @Override public long getCacheTxRollbacks() {
+        return cache.metrics0().getCacheTxRollbacks();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMxBeanImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMxBeanImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMxBeanImpl.java
deleted file mode 100644
index 2c23594..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMxBeanImpl.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-
-/**
- * Management bean that provides access to {@link IgniteCache IgniteCache}.
- */
-class CacheMxBeanImpl implements IgniteCacheMxBean {
-    /** Cache. */
-    private GridCacheAdapter<?, ?> cache;
-
-    /**
-     * Creates MBean;
-     *
-     * @param cache Cache.
-     */
-    CacheMxBeanImpl(GridCacheAdapter<?, ?> cache) {
-        assert cache != null;
-
-        this.cache = cache;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String name() {
-        return cache.metrics0().name();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getOverflowSize() {
-        return cache.metrics0().getOverflowSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getOffHeapEntriesCount() {
-        return cache.metrics0().getOffHeapEntriesCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getOffHeapAllocatedSize() {
-        return cache.metrics0().getOffHeapAllocatedSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getSize() {
-        return cache.metrics0().getSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getKeySize() {
-        return cache.metrics0().getKeySize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isEmpty() {
-        return cache.metrics0().isEmpty();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getDhtEvictQueueCurrentSize() {
-        return cache.metrics0().getDhtEvictQueueCurrentSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxCommitQueueSize() {
-        return cache.metrics0().getTxCommitQueueSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxThreadMapSize() {
-        return cache.metrics0().getTxThreadMapSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxXidMapSize() {
-        return cache.metrics0().getTxXidMapSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxPrepareQueueSize() {
-        return cache.metrics0().getTxPrepareQueueSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxStartVersionCountsSize() {
-        return cache.metrics0().getTxStartVersionCountsSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxCommittedVersionsSize() {
-        return cache.metrics0().getTxCommittedVersionsSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxRolledbackVersionsSize() {
-        return cache.metrics0().getTxRolledbackVersionsSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtThreadMapSize() {
-        return cache.metrics0().getTxDhtThreadMapSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtXidMapSize() {
-        return cache.metrics0().getTxDhtXidMapSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtCommitQueueSize() {
-        return cache.metrics0().getTxDhtCommitQueueSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtPrepareQueueSize() {
-        return cache.metrics0().getTxDhtPrepareQueueSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtStartVersionCountsSize() {
-        return cache.metrics0().getTxDhtStartVersionCountsSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtCommittedVersionsSize() {
-        return cache.metrics0().getTxDhtCommittedVersionsSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getTxDhtRolledbackVersionsSize() {
-        return cache.metrics0().getTxDhtRolledbackVersionsSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isWriteBehindEnabled() {
-        return cache.metrics0().isWriteBehindEnabled();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindFlushSize() {
-        return cache.metrics0().getWriteBehindFlushSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindFlushThreadCount() {
-        return cache.metrics0().getWriteBehindFlushThreadCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWriteBehindFlushFrequency() {
-        return cache.metrics0().getWriteBehindFlushFrequency();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindStoreBatchSize() {
-        return cache.metrics0().getWriteBehindStoreBatchSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindTotalCriticalOverflowCount() {
-        return cache.metrics0().getWriteBehindTotalCriticalOverflowCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindCriticalOverflowCount() {
-        return cache.metrics0().getWriteBehindCriticalOverflowCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindErrorRetryCount() {
-        return cache.metrics0().getWriteBehindErrorRetryCount();
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWriteBehindBufferSize() {
-        return cache.metrics0().getWriteBehindBufferSize();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void clear() {
-        cache.metrics0().clear();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheHits() {
-        return cache.metrics0().getCacheHits();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getCacheHitPercentage() {
-        return cache.metrics0().getCacheHitPercentage();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheMisses() {
-        return cache.metrics0().getCacheMisses();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getCacheMissPercentage() {
-        return cache.metrics0().getCacheMissPercentage();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheGets() {
-        return cache.metrics0().getCacheGets();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCachePuts() {
-        return cache.metrics0().getCachePuts();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheRemovals() {
-        return cache.metrics0().getCacheRemovals();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheEvictions() {
-        return cache.metrics0().getCacheEvictions();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageGetTime() {
-        return cache.metrics0().getAverageGetTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAveragePutTime() {
-        return cache.metrics0().getAveragePutTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageRemoveTime() {
-        return cache.metrics0().getAverageRemoveTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageTxCommitTime() {
-        return cache.metrics0().getAverageTxCommitTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageTxRollbackTime() {
-        return cache.metrics0().getAverageTxRollbackTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheTxCommits() {
-        return cache.metrics0().getCacheTxCommits();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheTxRollbacks() {
-        return cache.metrics0().getCacheTxRollbacks();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index af27940..898ecd4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -29,6 +29,7 @@ import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.mbean.*;
 import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.portables.*;
 import org.apache.ignite.resources.*;
@@ -150,7 +151,7 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
     protected CacheMetricsAdapter metrics;
 
     /** Cache mxBean. */
-    protected IgniteCacheMxBean mxBean;
+    protected CacheMetricsMxBean mxBean;
 
     /** Logger. */
     protected IgniteLogger log;
@@ -231,7 +232,7 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
 
         metrics = new CacheMetricsAdapter(ctx);
 
-        mxBean = new CacheMxBeanImpl(this);
+        mxBean = new CacheMetricsMxBeanImpl(this);
 
         IgniteFsConfiguration[] ggfsCfgs = gridCfg.getGgfsConfiguration();
 
@@ -3401,7 +3402,7 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>,
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteCacheMxBean mxBean() {
+    @Override public CacheMetricsMxBean mxBean() {
         return mxBean;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
index 78ea95a..4f8e1bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
@@ -24,6 +24,7 @@ import org.apache.ignite.cache.datastructures.*;
 import org.apache.ignite.cache.query.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.mbean.*;
 import org.apache.ignite.transactions.*;
 import org.apache.ignite.internal.processors.cache.affinity.*;
 import org.apache.ignite.internal.processors.cache.datastructures.*;
@@ -207,7 +208,7 @@ public class GridCacheProxyImpl<K, V> implements GridCacheProxy<K, V>, Externali
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteCacheMxBean mxBean() {
+    @Override public CacheMetricsMxBean mxBean() {
         GridCacheProjectionImpl<K, V> prev = gate.enter(prj);
 
         try {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index f1c91e9..c036902 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.query.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.mbean.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.*;
@@ -99,7 +100,7 @@ public class IgniteCacheProxy<K, V> extends IgniteAsyncSupportAdapter implements
     }
 
     /** {@inheritDoc} */
-    @Override public IgniteCacheMxBean mxBean() {
+    @Override public CacheMetricsMxBean mxBean() {
         GridCacheProjectionImpl<K, V> prev = gate.enter(prj);
 
         try {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/mbean/CacheConfigurationMxBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/mbean/CacheConfigurationMxBean.java b/modules/core/src/main/java/org/apache/ignite/mbean/CacheConfigurationMxBean.java
new file mode 100644
index 0000000..9b87b7d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/mbean/CacheConfigurationMxBean.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.mbean;
+
+import javax.cache.management.*;
+
+/**
+ *  A management bean for cache. It provides configuration information.
+ */
+@IgniteMBeanDescription("MBean that provides configuration information.")
+public interface CacheConfigurationMxBean extends CacheMXBean {
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Key type.")
+    String getKeyType();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Value type.")
+    String getValueType();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True if the cache is store by value.")
+    boolean isStoreByValue();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True if statistics collection is enabled.")
+    boolean isStatisticsEnabled();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True if management is enabled.")
+    boolean isManagementEnabled();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True when a cache is in read-through mode.")
+    boolean isReadThrough();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True when a cache is in write-through mode.")
+    boolean isWriteThrough();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6a7abd9/modules/core/src/main/java/org/apache/ignite/mbean/CacheMetricsMxBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/mbean/CacheMetricsMxBean.java b/modules/core/src/main/java/org/apache/ignite/mbean/CacheMetricsMxBean.java
new file mode 100644
index 0000000..387347d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/mbean/CacheMetricsMxBean.java
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.mbean;
+
+import org.apache.ignite.cache.*;
+import org.apache.ignite.*;
+
+/**
+ * This interface defines JMX view on {@link IgniteCache}.
+ */
+import org.apache.ignite.*;
+
+import javax.cache.management.*;
+
+/**
+ * This interface defines JMX view on {@link IgniteCache}.
+ */
+@IgniteMBeanDescription("MBean that provides access to cache descriptor.")
+public interface CacheMetricsMxBean extends CacheStatisticsMXBean, CacheMetrics {
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Clear statistics.")
+    public void clear();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of hits.")
+    public long getCacheHits();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Percentage of successful hits.")
+    public float getCacheHitPercentage();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of misses.")
+    public long getCacheMisses();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Percentage of accesses that failed to find anything.")
+    public float getCacheMissPercentage();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of gets.")
+    public long getCacheGets();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of puts.")
+    public long getCachePuts();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of removals.")
+    public long getCacheRemovals();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of eviction entries.")
+    public long getCacheEvictions();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time to execute get.")
+    public float getAverageGetTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time to execute put.")
+    public float getAveragePutTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time to execute remove.")
+    public float getAverageRemoveTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time to commit transaction.")
+    public float getAverageTxCommitTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Average time to rollback transaction.")
+    public float getAverageTxRollbackTime();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of transaction commits.")
+    public long getCacheTxCommits();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of transaction rollback.")
+    public long getCacheTxRollbacks();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Cache name.")
+    public String name();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of entries that was swapped to disk.")
+    public long getOverflowSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of entries stored in off-heap memory.")
+    public long getOffHeapEntriesCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Memory size allocated in off-heap.")
+    public long getOffHeapAllocatedSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of non-null values in the cache.")
+    public int getSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Number of keys in the cache (possibly with null values).")
+    public int getKeySize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True if cache is empty.")
+    public boolean isEmpty();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Current size of evict queue.")
+    public int getDhtEvictQueueCurrentSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction per-thread map size.")
+    public int getTxThreadMapSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction per-Xid map size.")
+    public int getTxXidMapSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction committed queue size.")
+    public int getTxCommitQueueSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction prepared queue size.")
+    public int getTxPrepareQueueSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction start version counts map size.")
+    public int getTxStartVersionCountsSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction committed ID map size.")
+    public int getTxCommittedVersionsSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction rolled back ID map size.")
+    public int getTxRolledbackVersionsSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT per-thread map size.")
+    public int getTxDhtThreadMapSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT per-Xid map size.")
+    public int getTxDhtXidMapSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT committed queue size.")
+    public int getTxDhtCommitQueueSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT prepared queue size.")
+    public int getTxDhtPrepareQueueSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT start version counts map size.")
+    public int getTxDhtStartVersionCountsSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT committed ID map size.")
+    public int getTxDhtCommittedVersionsSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Transaction DHT rolled back ID map size.")
+    public int getTxDhtRolledbackVersionsSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("True if write-behind is enabled for this cache.")
+    public boolean isWriteBehindEnabled();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Size of internal buffer that triggers flush procedure.")
+    public int getWriteBehindFlushSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Count of flush threads.")
+    public int getWriteBehindFlushThreadCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Flush frequency interval in milliseconds.")
+    public long getWriteBehindFlushFrequency();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Maximum size of batch for similar operations.")
+    public int getWriteBehindStoreBatchSize();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Count of cache overflow events since write-behind cache has started.")
+    public int getWriteBehindTotalCriticalOverflowCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Count of cache overflow events since write-behind cache has started.")
+    public int getWriteBehindCriticalOverflowCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Count of cache cache entries that are currently in retry state.")
+    public int getWriteBehindErrorRetryCount();
+
+    /** {@inheritDoc} */
+    @IgniteMBeanDescription("Count of cache entries that are waiting to be flushed.")
+    public int getWriteBehindBufferSize();
+}


Mime
View raw message