You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/04/14 15:27:59 UTC
[34/44] ignite git commit: IGNITE-4988 Cleanup and refactor VisorXxx
tasks and DTO for ignite-2.0
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStoreConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStoreConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStoreConfiguration.java
index fd3d980..dc1ba2a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStoreConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheStoreConfiguration.java
@@ -17,14 +17,17 @@
package org.apache.ignite.internal.visor.cache;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.internal.LessNamingBean;
import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.visor.util.VisorTaskUtils.compactClass;
@@ -32,7 +35,7 @@ import static org.apache.ignite.internal.visor.util.VisorTaskUtils.compactClass;
/**
* Data transfer object for cache store configuration properties.
*/
-public class VisorCacheStoreConfiguration implements Serializable, LessNamingBean {
+public class VisorCacheStoreConfiguration extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
@@ -70,11 +73,19 @@ public class VisorCacheStoreConfiguration implements Serializable, LessNamingBea
private boolean storeKeepBinary;
/**
+ * Default constructor.
+ */
+ public VisorCacheStoreConfiguration() {
+ // No-op.
+ }
+
+ /**
+ * Create data transfer object for cache store configuration properties.
+ *
* @param ignite Ignite instance.
* @param ccfg Cache configuration.
- * @return Data transfer object for cache store configuration properties.
*/
- public VisorCacheStoreConfiguration from(IgniteEx ignite, CacheConfiguration ccfg) {
+ public VisorCacheStoreConfiguration(IgniteEx ignite, CacheConfiguration ccfg) {
IgniteCacheProxy<Object, Object> c = ignite.context().cache().jcache(ccfg.getName());
CacheStore cstore = c != null && c.context().started() ? c.context().store().configuredStore() : null;
@@ -94,95 +105,123 @@ public class VisorCacheStoreConfiguration implements Serializable, LessNamingBea
flushThreadCnt = ccfg.getWriteBehindFlushThreadCount();
storeKeepBinary = ccfg.isStoreKeepBinary();
-
- return this;
}
/**
* @return {@code true} if cache has store.
*/
- public boolean enabled() {
+ public boolean isEnabled() {
return store != null;
}
/**
* @return {@code true} if cache has JDBC store.
*/
- public boolean jdbcStore() {
+ public boolean isJdbcStore() {
return jdbcStore;
}
/**
* @return Cache store class name.
*/
- @Nullable public String store() {
+ @Nullable public String getStore() {
return store;
}
/**
* @return Cache store factory class name..
*/
- public String storeFactory() {
+ public String getStoreFactory() {
return storeFactory;
}
/**
* @return Whether cache should operate in read-through mode.
*/
- public boolean readThrough() {
+ public boolean isReadThrough() {
return readThrough;
}
/**
* @return Whether cache should operate in write-through mode.
*/
- public boolean writeThrough() {
+ public boolean isWriteThrough() {
return writeThrough;
}
/**
* @return Flag indicating whether write-behind behaviour should be used for the cache store.
*/
- public boolean writeBehindEnabled() {
+ public boolean isWriteBehindEnabled() {
return writeBehindEnabled;
}
/**
* @return Maximum batch size for write-behind cache store operations.
*/
- public int batchSize() {
+ public int getBatchSize() {
return batchSz;
}
/**
* @return Frequency with which write-behind cache is flushed to the cache store in milliseconds.
*/
- public long flushFrequency() {
+ public long getFlushFrequency() {
return flushFreq;
}
/**
* @return Maximum object count in write-behind cache.
*/
- public int flushSize() {
+ public int getFlushSize() {
return flushSz;
}
/**
* @return Number of threads that will perform cache flushing.
*/
- public int flushThreadCount() {
+ public int getFlushThreadCount() {
return flushThreadCnt;
}
/**
* @return Keep binary in store flag.
*/
- public boolean storeKeepBinary() {
+ public boolean isStoreKeepBinary() {
return storeKeepBinary;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeBoolean(jdbcStore);
+ U.writeString(out, store);
+ U.writeString(out, storeFactory);
+ out.writeBoolean(readThrough);
+ out.writeBoolean(writeThrough);
+ out.writeBoolean(writeBehindEnabled);
+ out.writeInt(batchSz);
+ out.writeLong(flushFreq);
+ out.writeInt(flushSz);
+ out.writeInt(flushThreadCnt);
+ out.writeBoolean(storeKeepBinary);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ jdbcStore = in.readBoolean();
+ store = U.readString(in);
+ storeFactory = U.readString(in);
+ readThrough = in.readBoolean();
+ writeThrough = in.readBoolean();
+ writeBehindEnabled = in.readBoolean();
+ batchSz = in.readInt();
+ flushFreq = in.readLong();
+ flushSz = in.readInt();
+ flushThreadCnt = in.readInt();
+ storeKeepBinary = in.readBoolean();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorCacheStoreConfiguration.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java
deleted file mode 100644
index c9bf960..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeFieldMetadata.java
+++ /dev/null
@@ -1,92 +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.visor.cache;
-
-import java.io.Serializable;
-import org.apache.ignite.cache.store.jdbc.JdbcTypeField;
-import org.apache.ignite.internal.LessNamingBean;
-
-/**
- * Data transfer object for {@link JdbcTypeField}.
- */
-public class VisorCacheTypeFieldMetadata implements Serializable, LessNamingBean {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** Column name in database. */
- private String dbName;
-
- /** Column JDBC type in database. */
- private int dbType;
-
- /** Field name in java object. */
- private String javaName;
-
- /** Corresponding java type. */
- private String javaType;
-
- /**
- * Empty constructor.
- */
- public VisorCacheTypeFieldMetadata() {
- // No-op.
- }
-
- /**
- * Full constructor.
- *
- * @param dbName Column name in database.
- * @param dbType Column JDBC type in database.
- * @param javaName Field name in java object.
- * @param javaType Corresponding java type.
- */
- public VisorCacheTypeFieldMetadata(String dbName, int dbType, String javaName, String javaType) {
- this.dbName = dbName;
- this.dbType = dbType;
- this.javaName = javaName;
- this.javaType = javaType;
- }
-
- /**
- * @return Column name in database.
- */
- public String dbName() {
- return dbName;
- }
-
- /**
- * @return Column JDBC type in database.
- */
- public int dbType() {
- return dbType;
- }
-
- /**
- * @return Field name in java object.
- */
- public String javaName() {
- return javaName;
- }
-
- /**
- * @return Corresponding java type.
- */
- public String javaType() {
- return javaType;
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java
deleted file mode 100644
index 7463887..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java
+++ /dev/null
@@ -1,294 +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.visor.cache;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import org.apache.ignite.cache.QueryEntity;
-import org.apache.ignite.cache.QueryIndex;
-import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory;
-import org.apache.ignite.cache.store.jdbc.JdbcType;
-import org.apache.ignite.cache.store.jdbc.JdbcTypeField;
-import org.apache.ignite.internal.LessNamingBean;
-import org.apache.ignite.internal.util.tostring.GridToStringInclude;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.lang.IgniteBiTuple;
-
-import javax.cache.configuration.Factory;
-
-/**
- * Data transfer object for {@link JdbcType}.
- */
-public class VisorCacheTypeMetadata implements Serializable, LessNamingBean {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** Schema name in database. */
- private String dbSchema;
-
- /** Table name in database. */
- private String dbTbl;
-
- /** Key class used to store key in cache. */
- private String keyType;
-
- /** Value class used to store value in cache. */
- private String valType;
-
- /** Key fields. */
- @GridToStringInclude
- private Collection<VisorCacheTypeFieldMetadata> keyFields;
-
- /** Value fields. */
- @GridToStringInclude
- private Collection<VisorCacheTypeFieldMetadata> valFields;
-
- /** Fields to be queried, in addition to indexed fields. */
- @GridToStringInclude
- private Map<String, String> qryFlds;
-
- /** Fields to index in ascending order. */
- @GridToStringInclude
- private Map<String, String> ascFlds;
-
- /** Fields to index in descending order. */
- @GridToStringInclude
- private Map<String, String> descFlds;
-
- /** Fields to index as text. */
- @GridToStringInclude
- private Collection<String> txtFlds;
-
- /** Fields to create group indexes for. */
- @GridToStringInclude
- private Map<String, LinkedHashMap<String, IgniteBiTuple<String, Boolean>>> grps;
-
- /**
- * @param qryEntities Collection of query entities.
- * @param factory Store factory to extract JDBC types info.
- * @return Data transfer object for cache type metadata configurations.
- */
- public static Collection<VisorCacheTypeMetadata> list(Collection<QueryEntity> qryEntities, Factory factory) {
- final Collection<VisorCacheTypeMetadata> metas = new ArrayList<>();
-
- Map<String, VisorCacheTypeMetadata> metaMap =
- U.newHashMap(qryEntities != null ? qryEntities.size() : 0);
-
- // Add query entries.
- if (qryEntities != null)
- for (QueryEntity qryEntity : qryEntities) {
- VisorCacheTypeMetadata meta = from(qryEntity);
-
- metas.add(meta);
-
- metaMap.put(meta.keyType, meta);
- }
-
- // Add JDBC types.
- if (factory != null && factory instanceof CacheJdbcPojoStoreFactory) {
- CacheJdbcPojoStoreFactory jdbcFactory = (CacheJdbcPojoStoreFactory) factory;
-
- JdbcType[] jdbcTypes = jdbcFactory.getTypes();
-
- if (jdbcTypes != null && jdbcTypes.length > 0) {
- for (JdbcType jdbcType : jdbcTypes) {
- VisorCacheTypeMetadata meta = metaMap.get(jdbcType.getKeyType());
-
- boolean notFound = meta == null;
-
- if (notFound) {
- meta = new VisorCacheTypeMetadata();
-
- meta.keyType = jdbcType.getKeyType();
- meta.valType = jdbcType.getValueType();
-
- meta.qryFlds = Collections.emptyMap();
- meta.ascFlds = Collections.emptyMap();
- meta.descFlds = Collections.emptyMap();
- meta.txtFlds = Collections.emptyList();
- meta.grps = Collections.emptyMap();
- }
-
- meta.dbSchema = jdbcType.getDatabaseSchema();
- meta.dbTbl = jdbcType.getDatabaseTable();
-
- JdbcTypeField[] keyFields = jdbcType.getKeyFields();
-
- if (keyFields != null) {
- meta.keyFields = new ArrayList<>(keyFields.length);
-
- for (JdbcTypeField fld : keyFields)
- meta.keyFields.add(new VisorCacheTypeFieldMetadata(
- fld.getDatabaseFieldName(), fld.getDatabaseFieldType(),
- fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName())));
- }
-
- JdbcTypeField[] valFields = jdbcType.getValueFields();
-
- if (valFields != null) {
- meta.valFields = new ArrayList<>(valFields.length);
-
- for (JdbcTypeField fld : valFields)
- meta.valFields.add(new VisorCacheTypeFieldMetadata(
- fld.getDatabaseFieldName(), fld.getDatabaseFieldType(),
- fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName())));
- }
-
- if (notFound)
- metas.add(meta);
- }
- }
- }
-
- return metas;
- }
-
- /**
- * @param q Actual cache query entities.
- * @return Data transfer object for given cache type metadata.
- */
- public static VisorCacheTypeMetadata from(QueryEntity q) {
- assert q != null;
-
- VisorCacheTypeMetadata metadata = new VisorCacheTypeMetadata();
-
- metadata.keyType = q.getKeyType();
- metadata.valType = q.getValueType();
-
- metadata.dbSchema = "";
- metadata.dbTbl = "";
-
- metadata.keyFields = Collections.emptyList();
- metadata.valFields = Collections.emptyList();
-
- LinkedHashMap<String, String> qryFields = q.getFields();
-
- metadata.qryFlds = new LinkedHashMap<>(qryFields);
-
- metadata.ascFlds = Collections.emptyMap();
- metadata.descFlds = Collections.emptyMap();
- metadata.txtFlds = Collections.emptyList();
-
- Collection<QueryIndex> qryIdxs = q.getIndexes();
-
- metadata.grps = new LinkedHashMap<>(qryIdxs.size());
-
- for (QueryIndex qryIdx : qryIdxs) {
- LinkedHashMap<String, Boolean> qryIdxFlds = qryIdx.getFields();
-
- LinkedHashMap<String, IgniteBiTuple<String, Boolean>> grpFlds = new LinkedHashMap<>();
-
- for (Map.Entry<String, Boolean> qryIdxFld : qryIdxFlds.entrySet()) {
- String fldName = qryIdxFld.getKey();
-
- grpFlds.put(fldName, new IgniteBiTuple<>(qryFields.get(fldName), !qryIdxFld.getValue()));
- }
-
- metadata.grps.put(qryIdx.getName(), grpFlds);
- }
-
- return metadata;
- }
-
- /**
- * @return Schema name in database.
- */
- public String dbSchema() {
- return dbSchema;
- }
-
- /**
- * @return Table name in database.
- */
- public String dbTbl() {
- return dbTbl;
- }
-
- /**
- * @return Key class used to store key in cache.
- */
- public String keyType() {
- return keyType;
- }
-
- /**
- * @return Value class used to store value in cache.
- */
- public String valType() {
- return valType;
- }
-
- /**
- * @return Key fields.
- */
- public Collection<VisorCacheTypeFieldMetadata> keyFields() {
- return keyFields;
- }
-
- /**
- * @return Value fields.
- */
- public Collection<VisorCacheTypeFieldMetadata> valFields() {
- return valFields;
- }
-
- /**
- * @return Fields to be queried, in addition to indexed fields.
- */
- public Map<String, String> qryFlds() {
- return qryFlds;
- }
-
- /**
- * @return Fields to index in ascending order.
- */
- public Map<String, String> ascFlds() {
- return ascFlds;
- }
-
- /**
- * @return Fields to index in descending order.
- */
- public Map<String, String> descFlds() {
- return descFlds;
- }
-
- /**
- * @return Fields to index as text.
- */
- public Collection<String> txtFlds() {
- return txtFlds;
- }
-
- /**
- * @return Fields to create group indexes for.
- */
- public Map<String, LinkedHashMap<String, IgniteBiTuple<String, Boolean>>> grps() {
- return grps;
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(VisorCacheTypeMetadata.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorPartitionMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorPartitionMap.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorPartitionMap.java
new file mode 100644
index 0000000..f263db5
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorPartitionMap.java
@@ -0,0 +1,90 @@
+/*
+ * 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.visor.cache;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.Map;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState;
+import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionMap;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Data transfer object for partitions map.
+ */
+public class VisorPartitionMap extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Map of partition states. */
+ private Map<Integer, GridDhtPartitionState> parts;
+
+ /**
+ * Default constructor.
+ */
+ public VisorPartitionMap() {
+ // No-op.
+ }
+
+ /**
+ * @param map Partitions map.
+ */
+ public VisorPartitionMap(GridDhtPartitionMap map) {
+ parts = map.map();
+ }
+
+ /**
+ * @return Partitions map.
+ */
+ public Map<Integer, GridDhtPartitionState> getPartitions() {
+ return parts;
+ }
+
+ /**
+ * @return Partitions map size.
+ */
+ public int size() {
+ return parts.size();
+ }
+
+ /**
+ * @param part Partition.
+ * @return Partition state.
+ */
+ public GridDhtPartitionState get(Integer part) {
+ return parts.get(part);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeIntKeyMap(out, parts);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ parts = U.readIntKeyMap(in);
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorPartitionMap.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeMonitoringHolder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeMonitoringHolder.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeMonitoringHolder.java
index 01d6f4f..42eb4f5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeMonitoringHolder.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeMonitoringHolder.java
@@ -55,7 +55,7 @@ public class VisorComputeMonitoringHolder {
cleanupStopped = false;
}
- listenVisor.put(visorKey, true);
+ listenVisor.put(visorKey, Boolean.TRUE);
ignite.events().enableLocal(VISOR_TASK_EVTS);
}
@@ -68,7 +68,7 @@ public class VisorComputeMonitoringHolder {
* @return {@code true} if task events should remain enabled.
*/
private boolean tryDisableEvents(IgniteEx ignite) {
- if (!listenVisor.values().contains(true)) {
+ if (!listenVisor.values().contains(Boolean.TRUE)) {
listenVisor.clear();
ignite.events().disableLocal(VISOR_TASK_EVTS);
@@ -103,7 +103,7 @@ public class VisorComputeMonitoringHolder {
synchronized (listenVisor) {
if (tryDisableEvents(ignite)) {
for (String visorKey : listenVisor.keySet())
- listenVisor.put(visorKey, false);
+ listenVisor.put(visorKey, Boolean.FALSE);
scheduleCleanupJob(ignite);
}
@@ -118,4 +118,4 @@ public class VisorComputeMonitoringHolder {
@Override public String toString() {
return S.toString(VisorComputeMonitoringHolder.class, this);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTask.java
index ae66d4b..e9bd940 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTask.java
@@ -26,7 +26,6 @@ import org.apache.ignite.internal.processors.task.GridInternal;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.visor.VisorJob;
import org.apache.ignite.internal.visor.VisorMultiNodeTask;
-import org.apache.ignite.lang.IgniteBiTuple;
import org.jetbrains.annotations.Nullable;
import static org.apache.ignite.internal.visor.compute.VisorComputeMonitoringHolder.COMPUTE_MONITORING_HOLDER_KEY;
@@ -38,7 +37,7 @@ import static org.apache.ignite.internal.visor.util.VisorTaskUtils.checkExplicit
*/
@GridInternal
public class VisorComputeToggleMonitoringTask extends
- VisorMultiNodeTask<IgniteBiTuple<String, Boolean>, Boolean, Boolean> {
+ VisorMultiNodeTask<VisorComputeToggleMonitoringTaskArg, Boolean, Boolean> {
/** */
private static final long serialVersionUID = 0L;
@@ -54,14 +53,14 @@ public class VisorComputeToggleMonitoringTask extends
}
/** {@inheritDoc} */
- @Override protected VisorComputeToggleMonitoringJob job(IgniteBiTuple<String, Boolean> arg) {
+ @Override protected VisorComputeToggleMonitoringJob job(VisorComputeToggleMonitoringTaskArg arg) {
return new VisorComputeToggleMonitoringJob(arg, debug);
}
/**
* Job to toggle task monitoring on node.
*/
- private static class VisorComputeToggleMonitoringJob extends VisorJob<IgniteBiTuple<String, Boolean>, Boolean> {
+ private static class VisorComputeToggleMonitoringJob extends VisorJob<VisorComputeToggleMonitoringTaskArg, Boolean> {
/** */
private static final long serialVersionUID = 0L;
@@ -69,41 +68,40 @@ public class VisorComputeToggleMonitoringTask extends
* @param arg Visor ID key and monitoring state flag.
* @param debug Debug flag.
*/
- private VisorComputeToggleMonitoringJob(IgniteBiTuple<String, Boolean> arg, boolean debug) {
+ private VisorComputeToggleMonitoringJob(VisorComputeToggleMonitoringTaskArg arg, boolean debug) {
super(arg, debug);
}
/** {@inheritDoc} */
- @Override protected Boolean run(IgniteBiTuple<String, Boolean> arg) {
+ @Override protected Boolean run(VisorComputeToggleMonitoringTaskArg arg) {
if (checkExplicitTaskMonitoring(ignite))
- return true;
- else {
- ConcurrentMap<String, VisorComputeMonitoringHolder> storage = ignite.cluster().nodeLocalMap();
+ return Boolean.TRUE;
- VisorComputeMonitoringHolder holder = storage.get(COMPUTE_MONITORING_HOLDER_KEY);
+ ConcurrentMap<String, VisorComputeMonitoringHolder> storage = ignite.cluster().nodeLocalMap();
- if (holder == null) {
- VisorComputeMonitoringHolder holderNew = new VisorComputeMonitoringHolder();
+ VisorComputeMonitoringHolder holder = storage.get(COMPUTE_MONITORING_HOLDER_KEY);
- VisorComputeMonitoringHolder holderOld =
- storage.putIfAbsent(COMPUTE_MONITORING_HOLDER_KEY, holderNew);
+ if (holder == null) {
+ VisorComputeMonitoringHolder holderNew = new VisorComputeMonitoringHolder();
- holder = holderOld == null ? holderNew : holderOld;
- }
+ VisorComputeMonitoringHolder holderOld =
+ storage.putIfAbsent(COMPUTE_MONITORING_HOLDER_KEY, holderNew);
- String visorKey = arg.get1();
+ holder = holderOld == null ? holderNew : holderOld;
+ }
- boolean state = arg.get2();
+ String visorKey = arg.getVisorKey();
- // Set task monitoring state.
- if (state)
- holder.startCollect(ignite, visorKey);
- else
- holder.stopCollect(ignite, visorKey);
+ boolean state = arg.isEnabled();
- // Return actual state. It could stay the same if events explicitly enabled in configuration.
- return ignite.allEventsUserRecordable(VISOR_TASK_EVTS);
- }
+ // Set task monitoring state.
+ if (state)
+ holder.startCollect(ignite, visorKey);
+ else
+ holder.stopCollect(ignite, visorKey);
+
+ // Return actual state. It could stay the same if events explicitly enabled in configuration.
+ return ignite.allEventsUserRecordable(VISOR_TASK_EVTS);
}
/** {@inheritDoc} */
@@ -111,4 +109,4 @@ public class VisorComputeToggleMonitoringTask extends
return S.toString(VisorComputeToggleMonitoringJob.class, this);
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTaskArg.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTaskArg.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTaskArg.java
new file mode 100644
index 0000000..e17379a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorComputeToggleMonitoringTaskArg.java
@@ -0,0 +1,86 @@
+/*
+ * 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.visor.compute;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Toggle compute monitoring arguments.
+ */
+public class VisorComputeToggleMonitoringTaskArg extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Visor monitoring id */
+ private String visorKey;
+
+ /** Enable state of compute monitoring */
+ private boolean enabled;
+
+ /**
+ * Default constructor.
+ */
+ public VisorComputeToggleMonitoringTaskArg() {
+ // No-op.
+ }
+
+ /**
+ * @param visorKey Visor monitoring id.
+ * @param enabled Enable state of compute monitoring.
+ */
+ public VisorComputeToggleMonitoringTaskArg(String visorKey, boolean enabled) {
+ this.visorKey = visorKey;
+ this.enabled = enabled;
+ }
+
+ /**
+ * @return Visor monitoring id.
+ */
+ public String getVisorKey() {
+ return visorKey;
+ }
+
+ /**
+ * @return Enable state of compute monitoring.
+ */
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, visorKey);
+ out.writeBoolean(enabled);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ visorKey = U.readString(in);
+ enabled = in.readBoolean();
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorComputeToggleMonitoringTaskArg.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorGatewayTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorGatewayTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorGatewayTask.java
index 1113ca1..22cd460 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorGatewayTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/compute/VisorGatewayTask.java
@@ -277,7 +277,7 @@ public class VisorGatewayTask implements ComputeTask<Object[], Object> {
byte[] res = new byte[els.length];
for (int i = 0; i < els.length; i ++)
- res[i] = Byte.valueOf(els[i]);
+ res[i] = Byte.valueOf(els[i]);
return res;
}
@@ -348,7 +348,7 @@ public class VisorGatewayTask implements ComputeTask<Object[], Object> {
}
}
- final Collection<UUID> nids;
+ final List<UUID> nids;
if (nidsArg == null || "null".equals(nidsArg) || nidsArg.isEmpty()) {
Collection<ClusterNode> nodes = ignite.cluster().nodes();
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTask.java
index 68cfdb3..9c6aa60 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTask.java
@@ -24,13 +24,12 @@ import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.internal.visor.VisorJob;
import org.apache.ignite.internal.visor.VisorOneNodeTask;
-import org.apache.ignite.lang.IgniteBiTuple;
/**
* Creates thread dump.
*/
@GridInternal
-public class VisorThreadDumpTask extends VisorOneNodeTask<Void, IgniteBiTuple<VisorThreadInfo[], long[]>> {
+public class VisorThreadDumpTask extends VisorOneNodeTask<Void, VisorThreadDumpTaskResult> {
/** */
private static final long serialVersionUID = 0L;
@@ -42,7 +41,7 @@ public class VisorThreadDumpTask extends VisorOneNodeTask<Void, IgniteBiTuple<Vi
/**
* Job that take thread dump on node.
*/
- private static class VisorDumpThreadJob extends VisorJob<Void, IgniteBiTuple<VisorThreadInfo[], long[]>> {
+ private static class VisorDumpThreadJob extends VisorJob<Void, VisorThreadDumpTaskResult> {
/** */
private static final long serialVersionUID = 0L;
@@ -55,7 +54,7 @@ public class VisorThreadDumpTask extends VisorOneNodeTask<Void, IgniteBiTuple<Vi
}
/** {@inheritDoc} */
- @Override protected IgniteBiTuple<VisorThreadInfo[], long[]> run(Void arg) {
+ @Override protected VisorThreadDumpTaskResult run(Void arg) {
ThreadMXBean mx = U.getThreadMx();
ThreadInfo[] info = mx.dumpAllThreads(true, true);
@@ -63,9 +62,9 @@ public class VisorThreadDumpTask extends VisorOneNodeTask<Void, IgniteBiTuple<Vi
VisorThreadInfo[] visorInfo = new VisorThreadInfo[info.length];
for (int i = 0; i < info.length; i++)
- visorInfo[i] = VisorThreadInfo.from(info[i]);
+ visorInfo[i] = new VisorThreadInfo(info[i]);
- return new IgniteBiTuple<>(visorInfo, mx.findDeadlockedThreads());
+ return new VisorThreadDumpTaskResult(visorInfo, mx.findDeadlockedThreads());
}
/** {@inheritDoc} */
@@ -73,4 +72,4 @@ public class VisorThreadDumpTask extends VisorOneNodeTask<Void, IgniteBiTuple<Vi
return S.toString(VisorDumpThreadJob.class, this);
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTaskResult.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTaskResult.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTaskResult.java
new file mode 100644
index 0000000..f6e0161
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadDumpTaskResult.java
@@ -0,0 +1,88 @@
+/*
+ * 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.visor.debug;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.lang.management.ThreadInfo;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
+
+/**
+ * Data transfer object for Visor {@link ThreadInfo}.
+ */
+public class VisorThreadDumpTaskResult extends VisorDataTransferObject {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** List of information about threads. */
+ private VisorThreadInfo[] threadInfo;
+
+ /** List of deadlocked thread ids. */
+ private long[] deadlockedThreads;
+
+ /**
+ * Default constructor.
+ */
+ public VisorThreadDumpTaskResult() {
+ // No-op.
+ }
+
+ /**
+ * Create data transfer object for given thread info.
+ *
+ * @param threadInfo Thread info.
+ * @param deadlockedThreads Thread info.
+ */
+ public VisorThreadDumpTaskResult(VisorThreadInfo[] threadInfo, long[] deadlockedThreads) {
+ this.threadInfo = threadInfo;
+ this.deadlockedThreads = deadlockedThreads;
+ }
+
+ /**
+ * @return List of information about threads.
+ */
+ public VisorThreadInfo[] getThreadInfo() {
+ return threadInfo;
+ }
+
+ /**
+ * @return List of deadlocked thread ids.
+ */
+ public long[] getDeadlockedThreads() {
+ return deadlockedThreads;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeObject(threadInfo);
+ out.writeObject(deadlockedThreads);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ threadInfo = (VisorThreadInfo[])in.readObject();
+ deadlockedThreads = (long[])in.readObject();
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorThreadDumpTaskResult.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadInfo.java
index d656ad1..3db4074 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadInfo.java
@@ -17,14 +17,21 @@
package org.apache.ignite.internal.visor.debug;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.lang.management.ThreadInfo;
-import org.apache.ignite.internal.LessNamingBean;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
/**
* Data transfer object for Visor {@link ThreadInfo}.
*/
-public class VisorThreadInfo implements Serializable, LessNamingBean {
+public class VisorThreadInfo extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
@@ -32,241 +39,260 @@ public class VisorThreadInfo implements Serializable, LessNamingBean {
private static final int MAX_FRAMES = 8;
/** Thread name. */
- private final String name;
+ private String name;
/** Thread ID. */
- private final Long id;
+ private Long id;
/** Thread state. */
- private final Thread.State state;
+ private Thread.State state;
/** Lock information. */
- private final VisorThreadLockInfo lock;
+ private VisorThreadLockInfo lock;
/** Lock name. */
- private final String lockName;
+ private String lockName;
/** Lock owner thread ID. */
- private final Long lockOwnerId;
+ private Long lockOwnerId;
/** Lock owner name. */
- private final String lockOwnerName;
+ private String lockOwnerName;
/** Thread executing native code. */
- private final Boolean inNative;
+ private Boolean inNative;
/** Thread is suspended. */
- private final Boolean suspended;
+ private Boolean suspended;
/** Waited count. */
- private final Long waitedCnt;
+ private Long waitedCnt;
/** Waited time. */
- private final Long waitedTime;
+ private Long waitedTime;
/** Blocked count. */
- private final Long blockedCnt;
+ private Long blockedCnt;
/** Blocked time. */
- private final Long blockedTime;
+ private Long blockedTime;
/** Stack trace. */
- private final StackTraceElement[] stackTrace;
+ private List<StackTraceElement> stackTrace;
/** Locks info. */
- private final VisorThreadLockInfo[] locks;
+ private List<VisorThreadLockInfo> locks;
/** Locked monitors. */
- private final VisorThreadMonitorInfo[] lockedMonitors;
-
- /** Create thread info with given parameters. */
- public VisorThreadInfo(String name,
- Long id,
- Thread.State state,
- VisorThreadLockInfo lock,
- String lockName,
- Long lockOwnerId,
- String lockOwnerName,
- Boolean inNative,
- Boolean suspended,
- Long waitedCnt,
- Long waitedTime,
- Long blockedCnt,
- Long blockedTime,
- StackTraceElement[] stackTrace,
- VisorThreadLockInfo[] locks,
- VisorThreadMonitorInfo[] lockedMonitors
- ) {
- this.name = name;
- this.id = id;
- this.state = state;
- this.lock = lock;
- this.lockName = lockName;
- this.lockOwnerId = lockOwnerId;
- this.lockOwnerName = lockOwnerName;
- this.inNative = inNative;
- this.suspended = suspended;
- this.waitedCnt = waitedCnt;
- this.waitedTime = waitedTime;
- this.blockedCnt = blockedCnt;
- this.blockedTime = blockedTime;
- this.stackTrace = stackTrace;
- this.locks = locks;
- this.lockedMonitors = lockedMonitors;
+ private List<VisorThreadMonitorInfo> lockedMonitors;
+
+ /**
+ * Default constructor.
+ */
+ public VisorThreadInfo() {
+ // No-op.
}
- /** Create data transfer object for given thread info. */
- public static VisorThreadInfo from(ThreadInfo ti) {
+ /**
+ * Create data transfer object for given thread info.
+ *
+ * @param ti Thread info.
+ */
+ public VisorThreadInfo(ThreadInfo ti) {
assert ti != null;
- VisorThreadLockInfo[] linfos = ti.getLockedSynchronizers() != null ?
- new VisorThreadLockInfo[ti.getLockedSynchronizers().length] : null;
+ name = ti.getThreadName();
+ id = ti.getThreadId();
+ state = ti.getThreadState();
+ lock = ti.getLockInfo() != null ? new VisorThreadLockInfo(ti.getLockInfo()) : null;
+ lockName =ti.getLockName();
+ lockOwnerId = ti.getLockOwnerId();
+ lockOwnerName = ti.getLockOwnerName();
+ inNative = ti.isInNative();
+ suspended = ti.isSuspended();
+ waitedCnt = ti.getWaitedCount();
+ waitedTime = ti.getWaitedTime();
+ blockedCnt = ti.getBlockedCount();
+ blockedTime = ti.getBlockedTime();
+ stackTrace = Arrays.asList(ti.getStackTrace());
+
+ locks = ti.getLockedSynchronizers() != null ?
+ new ArrayList<VisorThreadLockInfo>(ti.getLockedSynchronizers().length) : null;
if (ti.getLockedSynchronizers() != null)
for (int i = 0; i < ti.getLockedSynchronizers().length; i++)
- linfos[i] = VisorThreadLockInfo.from(ti.getLockedSynchronizers()[i]);
+ locks.add(new VisorThreadLockInfo(ti.getLockedSynchronizers()[i]));
- VisorThreadMonitorInfo[] minfos = ti.getLockedMonitors() != null ?
- new VisorThreadMonitorInfo[ti.getLockedMonitors().length] : null;
+ lockedMonitors = ti.getLockedMonitors() != null ?
+ new ArrayList<VisorThreadMonitorInfo>(ti.getLockedMonitors().length) : null;
if (ti.getLockedMonitors() != null)
for (int i = 0; i < ti.getLockedMonitors().length; i++)
- minfos[i] = VisorThreadMonitorInfo.from(ti.getLockedMonitors()[i]);
-
- return new VisorThreadInfo(ti.getThreadName(),
- ti.getThreadId(),
- ti.getThreadState(),
- ti.getLockInfo() != null ? VisorThreadLockInfo.from(ti.getLockInfo()) : null,
- ti.getLockName(),
- ti.getLockOwnerId(),
- ti.getLockOwnerName(),
- ti.isInNative(),
- ti.isSuspended(),
- ti.getWaitedCount(),
- ti.getWaitedTime(),
- ti.getBlockedCount(),
- ti.getBlockedTime(),
- ti.getStackTrace(),
- linfos,
- minfos
- );
+ lockedMonitors.add(new VisorThreadMonitorInfo(ti.getLockedMonitors()[i]));
}
/**
* @return Thread name.
*/
- public String name() {
+ public String getName() {
return name;
}
/**
* @return Thread ID.
*/
- public Long id() {
+ public Long getId() {
return id;
}
/**
* @return Thread state.
*/
- public Thread.State state() {
+ public Thread.State getState() {
return state;
}
/**
* @return Lock information.
*/
- public VisorThreadLockInfo lock() {
+ public VisorThreadLockInfo getLock() {
return lock;
}
/**
* @return Lock name.
*/
- public String lockName() {
+ public String getLockName() {
return lockName;
}
/**
* @return Lock owner thread ID.
*/
- public Long lockOwnerId() {
+ public Long getLockOwnerId() {
return lockOwnerId;
}
/**
* @return Lock owner name.
*/
- public String lockOwnerName() {
+ public String getLockOwnerName() {
return lockOwnerName;
}
/**
* @return Thread executing native code.
*/
- public Boolean inNative() {
+ public Boolean isInNative() {
return inNative;
}
/**
* @return Thread is suspended.
*/
- public Boolean suspended() {
+ public Boolean isSuspended() {
return suspended;
}
/**
* @return Waited count.
*/
- public Long waitedCount() {
+ public Long getWaitedCount() {
return waitedCnt;
}
/**
* @return Waited time.
*/
- public Long waitedTime() {
+ public Long getWaitedTime() {
return waitedTime;
}
/**
* @return Blocked count.
*/
- public Long blockedCount() {
+ public Long getBlockedCount() {
return blockedCnt;
}
/**
* @return Blocked time.
*/
- public Long blockedTime() {
+ public Long getBlockedTime() {
return blockedTime;
}
/**
* @return Stack trace.
*/
- public StackTraceElement[] stackTrace() {
+ public List<StackTraceElement> getStackTrace() {
return stackTrace;
}
/**
* @return Locks info.
*/
- public VisorThreadLockInfo[] locks() {
+ public List<VisorThreadLockInfo> getLocks() {
return locks;
}
/**
* @return Locked monitors.
*/
- public VisorThreadMonitorInfo[] lockedMonitors() {
+ public List<VisorThreadMonitorInfo> getLockedMonitors() {
return lockedMonitors;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, name);
+ out.writeObject(id);
+ U.writeString(out, state.toString());
+ out.writeObject(lock);
+ U.writeString(out, lockName);
+ out.writeObject(lockOwnerId);
+ U.writeString(out, lockOwnerName);
+ out.writeObject(inNative);
+ out.writeObject(suspended);
+ out.writeObject(waitedCnt);
+ out.writeObject(waitedTime);
+ out.writeObject(blockedCnt);
+ out.writeObject(blockedTime);
+ U.writeCollection(out, stackTrace);
+ U.writeCollection(out, locks);
+ U.writeCollection(out, lockedMonitors);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ name = U.readString(in);
+ id = (Long)in.readObject();
+
+ String statePresentation = U.readString(in);
+
+ if (statePresentation != null)
+ state = Enum.valueOf(Thread.State.class, statePresentation);
+
+ lock = (VisorThreadLockInfo)in.readObject();
+ lockName = U.readString(in);
+ lockOwnerId = (Long)in.readObject();
+ lockOwnerName = U.readString(in);
+ inNative = (Boolean)in.readObject();
+ suspended = (Boolean)in.readObject();
+ waitedCnt = (Long)in.readObject();
+ waitedTime = (Long)in.readObject();
+ blockedCnt = (Long)in.readObject();
+ blockedTime = (Long)in.readObject();
+ stackTrace = U.readList(in);
+ locks = U.readList(in);
+ lockedMonitors = U.readList(in);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
- StringBuilder sb = new StringBuilder("\"" + name + "\"" + " Id=" + id + " " + state);
+ StringBuilder sb = new StringBuilder(512);
+
+ sb.append('"').append(name).append('"').append(" Id=").append(id).append(' ').append(state);
if (lockName != null)
sb.append(" on ").append(lockName);
@@ -282,12 +308,12 @@ public class VisorThreadInfo implements Serializable, LessNamingBean {
sb.append('\n');
- int maxFrames = Math.min(stackTrace.length, MAX_FRAMES);
+ int maxFrames = Math.min(stackTrace.size(), MAX_FRAMES);
for (int i = 0; i < maxFrames; i++) {
- StackTraceElement ste = stackTrace[i];
+ StackTraceElement ste = stackTrace.get(i);
- sb.append("\tat ").append(ste.toString()).append('\n');
+ sb.append("\tat ").append(ste).append('\n');
if (i == 0 && lock != null) {
switch (state) {
@@ -308,16 +334,16 @@ public class VisorThreadInfo implements Serializable, LessNamingBean {
}
for (VisorThreadMonitorInfo mi : lockedMonitors) {
- if (mi.stackDepth() == i)
+ if (mi.getStackDepth() == i)
sb.append("\t- locked ").append(mi).append('\n');
}
}
- if (maxFrames < stackTrace.length)
+ if (maxFrames < stackTrace.size())
sb.append("\t...").append('\n');
- if (locks.length > 0) {
- sb.append("\n\tNumber of locked synchronizers = ").append(locks.length).append('\n');
+ if (!F.isEmpty(locks)) {
+ sb.append("\n\tNumber of locked synchronizers = ").append(locks.size()).append('\n');
for (VisorThreadLockInfo li : locks)
sb.append("\t- ").append(li).append('\n');
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadLockInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadLockInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadLockInfo.java
index 0fdd95f..4aab0e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadLockInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadLockInfo.java
@@ -17,57 +17,76 @@
package org.apache.ignite.internal.visor.debug;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.lang.management.LockInfo;
-import org.apache.ignite.internal.LessNamingBean;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
/**
* Data transfer object for {@link LockInfo}.
*/
-public class VisorThreadLockInfo implements Serializable, LessNamingBean {
+public class VisorThreadLockInfo extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/**
* Fully qualified name of the class of the lock object.
*/
- protected final String clsName;
+ protected String clsName;
/**
* Identity hash code of the lock object.
*/
- protected final Integer identityHashCode;
+ protected Integer identityHashCode;
- /** Create thread lock info with given parameters. */
- public VisorThreadLockInfo(String clsName, Integer identityHashCode) {
- assert clsName != null;
-
- this.clsName = clsName;
- this.identityHashCode = identityHashCode;
+ /**
+ * Default constructor.
+ */
+ public VisorThreadLockInfo() {
+ // No-op.
}
- /** Create data transfer object for given lock info. */
- public static VisorThreadLockInfo from(LockInfo li) {
+ /**
+ * Create data transfer object for given lock info.
+ *
+ * @param li Lock info.
+ */
+ public VisorThreadLockInfo(LockInfo li) {
assert li != null;
- return new VisorThreadLockInfo(li.getClassName(), li.getIdentityHashCode());
+ clsName = li.getClassName();
+ identityHashCode = li.getIdentityHashCode();
}
/**
* @return Fully qualified name of the class of the lock object.
*/
- public String className() {
+ public String getClassName() {
return clsName;
}
/**
* @return Identity hash code of the lock object.
*/
- public Integer identityHashCode() {
+ public Integer getIdentityHashCode() {
return identityHashCode;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, clsName);
+ out.writeObject(identityHashCode);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ clsName = U.readString(in);
+ identityHashCode = (Integer)in.readObject();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return clsName + '@' + Integer.toHexString(identityHashCode);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadMonitorInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadMonitorInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadMonitorInfo.java
index cc68665..11e1141 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadMonitorInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/debug/VisorThreadMonitorInfo.java
@@ -17,7 +17,13 @@
package org.apache.ignite.internal.visor.debug;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.lang.management.MonitorInfo;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectInput;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectOutput;
/**
* Data transfer object for {@link MonitorInfo}.
@@ -27,46 +33,72 @@ public class VisorThreadMonitorInfo extends VisorThreadLockInfo {
private static final long serialVersionUID = 0L;
/** Stack depth. */
- private final Integer stackDepth;
+ private Integer stackDepth;
/** Stack frame. */
- private final StackTraceElement stackFrame;
+ private StackTraceElement stackFrame;
/**
- * Create thread monitor info with given parameters.
- *
- * @param clsName Fully qualified name of the class of the lock object.
- * @param identityHashCode Identity hash code of the lock object.
- * @param stackDepth Depth in the stack trace where the object monitor was locked.
- * @param stackFrame Stack frame that locked the object monitor.
+ * Default constructor.
*/
- public VisorThreadMonitorInfo(String clsName, Integer identityHashCode, Integer stackDepth,
- StackTraceElement stackFrame) {
- super(clsName, identityHashCode);
-
- this.stackDepth = stackDepth;
- this.stackFrame = stackFrame;
+ public VisorThreadMonitorInfo() {
+ // No-op.
}
- /** Create data transfer object for given monitor info. */
- public static VisorThreadMonitorInfo from(MonitorInfo mi) {
- assert mi != null;
+ /**
+ * Create data transfer object for given monitor info.
+ *
+ * @param mi Monitoring info.
+ */
+ public VisorThreadMonitorInfo(MonitorInfo mi) {
+ super(mi);
- return new VisorThreadMonitorInfo(mi.getClassName(), mi.getIdentityHashCode(), mi.getLockedStackDepth(),
- mi.getLockedStackFrame());
+ stackDepth = mi.getLockedStackDepth();
+ stackFrame = mi.getLockedStackFrame();
}
/**
* @return Stack depth.
*/
- public Integer stackDepth() {
+ public Integer getStackDepth() {
return stackDepth;
}
/**
* @return Stack frame.
*/
- public StackTraceElement stackFrame() {
+ public StackTraceElement getStackFrame() {
return stackFrame;
}
-}
\ No newline at end of file
+
+ /** {@inheritDoc} */
+ @Override public byte getProtocolVersion() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ try (VisorDataTransferObjectOutput dtout = new VisorDataTransferObjectOutput(out)) {
+ dtout.writeByte(super.getProtocolVersion());
+ super.writeExternalData(dtout);
+ }
+
+ out.writeObject(stackDepth);
+ out.writeObject(stackFrame);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ try (VisorDataTransferObjectInput dtin = new VisorDataTransferObjectInput(in)) {
+ super.readExternalData(dtin.readByte(), dtin);
+ }
+
+ stackDepth = (Integer)in.readObject();
+ stackFrame = (StackTraceElement)in.readObject();
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorThreadMonitorInfo.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDeploymentEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDeploymentEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDeploymentEvent.java
index 0eefa6b..1d41e19 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDeploymentEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDeploymentEvent.java
@@ -17,8 +17,14 @@
package org.apache.ignite.internal.visor.event;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.UUID;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectInput;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectOutput;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
@@ -30,7 +36,14 @@ public class VisorGridDeploymentEvent extends VisorGridEvent {
private static final long serialVersionUID = 0L;
/** Deployment alias. */
- private final String alias;
+ private String alias;
+
+ /**
+ * Default constructor.
+ */
+ public VisorGridDeploymentEvent() {
+ // No-op.
+ }
/**
* Create event with given parameters.
@@ -62,12 +75,36 @@ public class VisorGridDeploymentEvent extends VisorGridEvent {
/**
* @return Deployment alias.
*/
- public String alias() {
+ public String getAlias() {
return alias;
}
/** {@inheritDoc} */
+ @Override public byte getProtocolVersion() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ try (VisorDataTransferObjectOutput dtout = new VisorDataTransferObjectOutput(out)) {
+ dtout.writeByte(super.getProtocolVersion());
+ super.writeExternalData(dtout);
+ }
+
+ U.writeString(out, alias);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ try (VisorDataTransferObjectInput dtin = new VisorDataTransferObjectInput(in)) {
+ super.readExternalData(dtin.readByte(), dtin);
+ }
+
+ alias = U.readString(in);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorGridDeploymentEvent.class, this);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
index bad6966..b4afed9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridDiscoveryEvent.java
@@ -17,8 +17,14 @@
package org.apache.ignite.internal.visor.event;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.UUID;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectInput;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectOutput;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
@@ -30,16 +36,23 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
private static final long serialVersionUID = 0L;
/** Node that caused this event to be generated. */
- private final UUID evtNodeId;
+ private UUID evtNodeId;
/** Node address that caused this event to be generated. */
- private final String addr;
+ private String addr;
/** If node that caused this event is daemon. */
- private final boolean isDaemon;
+ private boolean isDaemon;
/** Topology version. */
- private final long topVer;
+ private long topVer;
+
+ /**
+ * Default constructor.
+ */
+ public VisorGridDiscoveryEvent() {
+ // No-op.
+ }
/**
* Create event with given parameters.
@@ -78,16 +91,16 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
}
/**
- * @return Deployment alias.
+ * @return Event node ID.
*/
- public UUID evtNodeId() {
+ public UUID getEventNodeId() {
return evtNodeId;
}
/**
* @return Node address that caused this event to be generated.
*/
- public String address() {
+ public String getAddress() {
return addr;
}
@@ -102,11 +115,41 @@ public class VisorGridDiscoveryEvent extends VisorGridEvent {
* @return Topology version or {@code 0} if configured discovery SPI implementation
* does not support versioning.
**/
- public long topologyVersion() {
+ public long getTopologyVersion() {
return topVer;
}
/** {@inheritDoc} */
+ @Override public byte getProtocolVersion() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ try (VisorDataTransferObjectOutput dtout = new VisorDataTransferObjectOutput(out)) {
+ dtout.writeByte(super.getProtocolVersion());
+ super.writeExternalData(dtout);
+ }
+
+ U.writeUuid(out, evtNodeId);
+ U.writeString(out, addr);
+ out.writeBoolean(isDaemon);
+ out.writeLong(topVer);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ try (VisorDataTransferObjectInput dtin = new VisorDataTransferObjectInput(in)) {
+ super.readExternalData(dtin.readByte(), dtin);
+ }
+
+ evtNodeId = U.readUuid(in);
+ addr = U.readString(in);
+ isDaemon = in.readBoolean();
+ topVer = in.readLong();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorGridDiscoveryEvent.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEvent.java
index b24e860..4814aba 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEvent.java
@@ -17,40 +17,50 @@
package org.apache.ignite.internal.visor.event;
-import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.UUID;
-import org.apache.ignite.internal.LessNamingBean;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
/**
* Base class for lightweight counterpart for various {@link org.apache.ignite.events.Event}.
*/
-public class VisorGridEvent implements Serializable, LessNamingBean {
+public class VisorGridEvent extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/** Event type. */
- private final int typeId;
+ private int typeId;
/** Globally unique ID of this event. */
- private final IgniteUuid id;
+ private IgniteUuid id;
/** Name of this event. */
- private final String name;
+ private String name;
/** Node Id where event occurred and was recorded. */
- private final UUID nid;
+ private UUID nid;
/** Event timestamp. */
- private final long ts;
+ private long ts;
/** Event message. */
- private final String msg;
+ private String msg;
/** Shortened version of {@code toString()} result. Suitable for humans to read. */
- private final String shortDisplay;
+ private String shortDisplay;
+
+ /**
+ * Default constructor.
+ */
+ public VisorGridEvent() {
+ // No-op.
+ }
/**
* Create event with given parameters.
@@ -77,53 +87,75 @@ public class VisorGridEvent implements Serializable, LessNamingBean {
/**
* @return Event type.
*/
- public int typeId() {
+ public int getTypeId() {
return typeId;
}
/**
* @return Globally unique ID of this event.
*/
- public IgniteUuid id() {
+ public IgniteUuid getId() {
return id;
}
/**
* @return Name of this event.
*/
- public String name() {
+ public String getName() {
return name;
}
/**
* @return Node Id where event occurred and was recorded.
*/
- public UUID nid() {
+ public UUID getNid() {
return nid;
}
/**
* @return Event timestamp.
*/
- public long timestamp() {
+ public long getTimestamp() {
return ts;
}
/**
* @return Event message.
*/
- @Nullable public String message() {
+ @Nullable public String getMessage() {
return msg;
}
/**
* @return Shortened version of result. Suitable for humans to read.
*/
- public String shortDisplay() {
+ public String getShortDisplay() {
return shortDisplay;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ out.writeInt(typeId);
+ U.writeGridUuid(out, id);
+ U.writeString(out, name);
+ U.writeUuid(out, nid);
+ out.writeLong(ts);
+ U.writeString(out, msg);
+ U.writeString(out, shortDisplay);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ typeId = in.readInt();
+ id = U.readGridUuid(in);
+ name = U.readString(in);
+ nid = U.readUuid(in);
+ ts = in.readLong();
+ msg = U.readString(in);
+ shortDisplay = U.readString(in);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorGridEvent.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEventsLost.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEventsLost.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEventsLost.java
index 92f149a..e07a3a1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEventsLost.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridEventsLost.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.visor.event;
import java.util.UUID;
+import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteUuid;
@@ -29,6 +30,13 @@ public class VisorGridEventsLost extends VisorGridEvent {
private static final long serialVersionUID = 0L;
/**
+ * Default constructor.
+ */
+ public VisorGridEventsLost() {
+ // No-op.
+ }
+
+ /**
* Create event with given parameters.
*
* @param nid Node where events were lost.
@@ -38,4 +46,9 @@ public class VisorGridEventsLost extends VisorGridEvent {
"Some Visor events were lost and Visor may show inconsistent results. " +
"Configure your grid to disable not important events.", "");
}
-}
\ No newline at end of file
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorGridEventsLost.class, this);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridJobEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridJobEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridJobEvent.java
index a1a0c04..2e4c627 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridJobEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridJobEvent.java
@@ -17,8 +17,14 @@
package org.apache.ignite.internal.visor.event;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.UUID;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectInput;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectOutput;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
@@ -30,16 +36,23 @@ public class VisorGridJobEvent extends VisorGridEvent {
private static final long serialVersionUID = 0L;
/** Name of the task that triggered the event. */
- private final String taskName;
+ private String taskName;
/** Name of task class that triggered the event. */
- private final String taskClsName;
+ private String taskClsName;
/** Task session ID of the task that triggered the event. */
- private final IgniteUuid taskSesId;
+ private IgniteUuid taskSesId;
/** Job ID. */
- private final IgniteUuid jobId;
+ private IgniteUuid jobId;
+
+ /**
+ * Default constructor.
+ */
+ public VisorGridJobEvent() {
+ // No-op.
+ }
/**
* Create event with given parameters.
@@ -80,33 +93,63 @@ public class VisorGridJobEvent extends VisorGridEvent {
/**
* @return Name of the task that triggered the event.
*/
- public String taskName() {
+ public String getTaskName() {
return taskName;
}
/**
* @return Name of task class that triggered the event.
*/
- public String taskClassName() {
+ public String getTaskClassName() {
return taskClsName;
}
/**
* @return Task session ID of the task that triggered the event.
*/
- public IgniteUuid taskSessionId() {
+ public IgniteUuid getTaskSessionId() {
return taskSesId;
}
/**
* @return Job ID.
*/
- public IgniteUuid jobId() {
+ public IgniteUuid getJobId() {
return jobId;
}
/** {@inheritDoc} */
+ @Override public byte getProtocolVersion() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ try (VisorDataTransferObjectOutput dtout = new VisorDataTransferObjectOutput(out)) {
+ dtout.writeByte(super.getProtocolVersion());
+ super.writeExternalData(dtout);
+ }
+
+ U.writeString(out, taskName);
+ U.writeString(out, taskClsName);
+ U.writeGridUuid(out, taskSesId);
+ U.writeGridUuid(out, jobId);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ try (VisorDataTransferObjectInput dtin = new VisorDataTransferObjectInput(in)) {
+ super.readExternalData(dtin.readByte(), dtin);
+ }
+
+ taskName = U.readString(in);
+ taskClsName = U.readString(in);
+ taskSesId = U.readGridUuid(in);
+ jobId = U.readGridUuid(in);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorGridJobEvent.class, this);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridTaskEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridTaskEvent.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridTaskEvent.java
index 255d559..0f3eee4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridTaskEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/event/VisorGridTaskEvent.java
@@ -17,8 +17,14 @@
package org.apache.ignite.internal.visor.event;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.util.UUID;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectInput;
+import org.apache.ignite.internal.visor.VisorDataTransferObjectOutput;
import org.apache.ignite.lang.IgniteUuid;
import org.jetbrains.annotations.Nullable;
@@ -30,16 +36,23 @@ public class VisorGridTaskEvent extends VisorGridEvent {
private static final long serialVersionUID = 0L;
/** Name of the task that triggered the event. */
- private final String taskName;
+ private String taskName;
/** Name of task class that triggered the event. */
- private final String taskClsName;
+ private String taskClsName;
/** Task session ID. */
- private final IgniteUuid taskSesId;
+ private IgniteUuid taskSesId;
/** Whether task was created for system needs. */
- private final boolean internal;
+ private boolean internal;
+
+ /**
+ * Default constructor.
+ */
+ public VisorGridTaskEvent() {
+ // No-op.
+ }
/**
* Create event with given parameters.
@@ -80,33 +93,63 @@ public class VisorGridTaskEvent extends VisorGridEvent {
/**
* @return Name of the task that triggered the event.
*/
- public String taskName() {
+ public String getTaskName() {
return taskName;
}
/**
* @return Name of task class that triggered the event.
*/
- public String taskClassName() {
+ public String getTaskClassName() {
return taskClsName;
}
/**
* @return Task session ID.
*/
- public IgniteUuid taskSessionId() {
+ public IgniteUuid getTaskSessionId() {
return taskSesId;
}
/**
* @return Whether task was created for system needs.
*/
- public boolean internal() {
+ public boolean isInternal() {
return internal;
}
/** {@inheritDoc} */
+ @Override public byte getProtocolVersion() {
+ return 1;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ try (VisorDataTransferObjectOutput dtout = new VisorDataTransferObjectOutput(out)) {
+ dtout.writeByte(super.getProtocolVersion());
+ super.writeExternalData(dtout);
+ }
+
+ U.writeString(out, taskName);
+ U.writeString(out, taskClsName);
+ U.writeGridUuid(out, taskSesId);
+ out.writeBoolean(internal);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ try (VisorDataTransferObjectInput dtin = new VisorDataTransferObjectInput(in)) {
+ super.readExternalData(dtin.readByte(), dtin);
+ }
+
+ taskName = U.readString(in);
+ taskClsName = U.readString(in);
+ taskSesId = U.readGridUuid(in);
+ internal = in.readBoolean();
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorGridTaskEvent.class, this);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/12dfe9e8/modules/core/src/main/java/org/apache/ignite/internal/visor/file/VisorFileBlock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/file/VisorFileBlock.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/file/VisorFileBlock.java
index dba7037..23540b5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/visor/file/VisorFileBlock.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/file/VisorFileBlock.java
@@ -17,34 +17,44 @@
package org.apache.ignite.internal.visor.file;
-import java.io.Serializable;
-import org.apache.ignite.internal.LessNamingBean;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.internal.visor.VisorDataTransferObject;
/**
* Represents block of bytes from a file, could be optionally zipped.
*/
-public class VisorFileBlock implements Serializable, LessNamingBean {
+public class VisorFileBlock extends VisorDataTransferObject {
/** */
private static final long serialVersionUID = 0L;
/** File path. */
- private final String path;
+ private String path;
/** Marker position. */
- private final long off;
+ private long off;
/** File size. */
- private final long size;
+ private long size;
/** Timestamp of last modification of the file. */
- private final long lastModified;
+ private long lastModified;
/** Whether data was zipped. */
- private final boolean zipped;
+ private boolean zipped;
/** Data bytes. */
- private final byte[] data;
+ private byte[] data;
+
+ /**
+ * Default constructor.
+ */
+ public VisorFileBlock() {
+
+ }
/**
* Create file block with given parameters.
@@ -68,46 +78,66 @@ public class VisorFileBlock implements Serializable, LessNamingBean {
/**
* @return File path.
*/
- public String path() {
+ public String getPath() {
return path;
}
/**
* @return Marker position.
*/
- public long offset() {
+ public long getOffset() {
return off;
}
/**
* @return File size.
*/
- public long size() {
+ public long getSize() {
return size;
}
/**
* @return Timestamp of last modification of the file.
*/
- public long lastModified() {
+ public long getLastModified() {
return lastModified;
}
/**
* @return Whether data was zipped.
*/
- public boolean zipped() {
+ public boolean isZipped() {
return zipped;
}
/**
* @return Data bytes.
*/
- public byte[] data() {
+ public byte[] getData() {
return data;
}
/** {@inheritDoc} */
+ @Override protected void writeExternalData(ObjectOutput out) throws IOException {
+ U.writeString(out, path);
+ out.writeLong(off);
+ out.writeLong(size);
+ out.writeLong(lastModified);
+ out.writeBoolean(zipped);
+ U.writeByteArray(out, data);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void readExternalData(byte protoVer, ObjectInput in) throws IOException, ClassNotFoundException {
+ path = U.readString(in);
+ off = in.readLong();
+ size = in.readLong();
+ lastModified = in.readLong();
+ zipped = in.readBoolean();
+ data = U.readByteArray(in);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(VisorFileBlock.class, this);
}