You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by vf...@apache.org on 2015/11/26 00:33:19 UTC

[1/5] incubator-geode git commit: GEODE-340 Deleting old code

Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-78 f29845a0c -> fb4de6a3c


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileWrapper.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileWrapper.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileWrapper.java
deleted file mode 100644
index a0dbd91..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileWrapper.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.pivotal.jvsd.stats;
-
-import com.pivotal.jvsd.stats.StatFileParser.ArchiveInfo;
-import com.pivotal.jvsd.stats.StatFileParser.ResourceInst;
-import com.pivotal.jvsd.stats.StatFileParser.StatArchiveFile;
-import com.pivotal.jvsd.stats.StatFileParser.StatValue;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- *
- * @author Vince Ford
- */
-public class StatFileWrapper {
-
-	File file = null;
-	boolean processed = false;
-	ArchiveInfo aInfo = null;
-	HashMap<String, ResourceInst> resources = null;
-
-	public ResourceInst getResource(String type, String name) {
-		String key = type + name;
-		return resources.get(key);
-
-	}
-
-	public StatFileWrapper(File file) {
-		try {
-			this.file = file;
-			File[] files = new File[1];
-			files[0] = file;
-			resources = new HashMap<String, ResourceInst>();
-			StatFileParser sar = new StatFileParser(files, null, false);
-			List<ResourceInst> resourceList = sar.getResourceInstList();
-			for (ResourceInst ri : resourceList) {
-				String key = ri.getType().getName() + ri.getName();
-				resources.put(key, ri);
-			}
-			StatArchiveFile[] sa = sar.getArchives();
-			aInfo = sa[0].getArchiveInfo();
-
-		} catch (IOException ex) {
-			Logger.getLogger(StatFileWrapper.class.getName()).
-							log(Level.SEVERE, null, ex);
-		}
-	}
-
-	public StatFileWrapper(String filepath) {
-		file = new File(filepath);
-	}
-
-	public ArchiveInfo getaInfo() {
-		return aInfo;
-	}
-
-	public List<ResourceInst> getResourceList() {
-		ArrayList<ResourceInst> list = new ArrayList<ResourceInst>(resources.
-						values());
-		return list;
-	}
-
-	public boolean isProcessed() {
-		return processed;
-	}
-
-	public void setProcessed(boolean processed) {
-		this.processed = processed;
-	}
-
-	public File getFile() {
-		return file;
-	}
-
-	public List<String> getStats(String typeName, String name, boolean hideZeros) {
-		String key = typeName + name;
-		ResourceInst ri = resources.get(key);
-		ArrayList<String> statNames = new ArrayList<String>();
-		for (StatValue sv : ri.getStatValues()) {
-			if (!(sv.getSnapshotsAverage() == 0 && sv.getSnapshotsMaximum() == 0 && sv.
-							getSnapshotsMinimum() == 0)) {
-				statNames.add(sv.getDescriptor().getName());
-			}
-		}
-		Collections.sort(statNames);
-		return statNames;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
index 4fe0d4b..34a5ee7 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
@@ -76,8 +76,8 @@ public class Utility {
 		return ((value - value2) / ((timestamp - timestamp2) / 1000));
 	}
 
-	public static void dumpCharts(List<StatFileParser.ResourceInst> ril) {
-		logger.info("Dumping Charts");
+//	public static void dumpCharts(List<StatFileParser.ResourceInst> ril) {
+//		logger.info("Dumping Charts");
 //		for (StatFileParser.ResourceInst o : ril) {
 //			logger.fine("RESOURCE:" + o.getType().getName() + o.getName() + "," + o.
 //							toString());
@@ -141,89 +141,89 @@ public class Utility {
 //				}
 //			}
 //		}
-		logger.info("Finished Charts");
-	}
-
-	static public void dumpCSV(StatFileManager sfm, File file) {
-		int numFiles = sfm.length();
-		try {
-			System.out.println("Writing CSV file: " + file.getAbsolutePath());
-			file.createNewFile();
-			PrintWriter pw = new PrintWriter(file);
-			for (int x = 0; x < numFiles; x++) {
-				StatFileWrapper sfWrapper = sfm.getFile(x);
-				StatFileParser.ArchiveInfo aInfo = sfWrapper.getaInfo();
-				pw.print("FILE INFO, ");
-				pw.print(aInfo.getArchiveFileName() + ", ");
-				pw.print(aInfo.getMachine() + ", ");
-				pw.print(aInfo.getOs() + ", ");
-				pw.print(aInfo.getProductVersion() + ", ");
-				pw.print(aInfo.getStartTimeMillis() + ", ");
-				pw.print(aInfo.getSystem() + ", ");
-				pw.print(aInfo.getSystemId() + ", ");
-				pw.print(aInfo.getSystemStartTimeMillis() + ", ");
-				pw.print(aInfo.getTimeZone());
-				pw.println();
-				pw.flush();
-				List<StatFileParser.ResourceInst> rl = sfWrapper.getResourceList();
-				for (StatFileParser.ResourceInst ri : rl) {
-					pw.print("STATTYPE, ");
-					pw.print(ri.getType().getName() + ", ");
-					pw.print(ri.getName());
-					pw.println();
-					StatFileParser.StatValue[] svArray = ri.getStatValues();
-					for (StatFileParser.StatValue sv : svArray) {
-						pw.print("STAT, ");
-						pw.print(sv.getDescriptor().getName() + ", ");
-						if (sv.getFilter() == sv.FILTER_NONE) {
-							pw.print("NO FILTER, ");
-						} else {
-							if (sv.getFilter() == sv.FILTER_PERSAMPLE) {
-								pw.print("PERSAMPLE FILTER, ");
-							} else {
-								if (sv.getFilter() == sv.FILTER_PERSEC) {
-									pw.print("PERSECOND FILTER, ");
-								}
-							}
-						}
-						pw.println();
-						pw.print("TIME, ");
-						long[] timesnapshot = sv.getRawAbsoluteTimeStamps();
-						for (long time : timesnapshot) {
-							pw.print(time);
-							pw.print(", ");
-						}
-						pw.println();
-						pw.print("DATA, ");
-						double[] datasnapshot = sv.getRawSnapshots();
-						for (double data : datasnapshot) {
-							pw.print(data);
-							pw.print(", ");
-						}
-						pw.println();
-					}
-					pw.println();
-					pw.flush();
-				}
-				pw.close();
-			}
-			System.out.println("Finished writing CSV file: " + file.getAbsolutePath());
-		} catch (IOException ex) {
-			Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
-		}
-
-	}
+//		logger.info("Finished Charts");
+//	}
 
-	static public JMenu createMenu(String menuName, JMenuBar menubar) {
-		JMenu menu = new JMenu(menuName);
-		menubar.add(menu);
-		return menu;
-	}
-
-	static public JMenuItem createMenuItem(String menuItem, JMenu menu, ActionListener al) {
-		JMenuItem mi = new JMenuItem(menuItem);
-		mi.addActionListener(al);
-		menu.add(mi);
-		return mi;
-	}
+//	static public void dumpCSV(StatFileManager sfm, File file) {
+//		int numFiles = sfm.length();
+//		try {
+//			System.out.println("Writing CSV file: " + file.getAbsolutePath());
+//			file.createNewFile();
+//			PrintWriter pw = new PrintWriter(file);
+//			for (int x = 0; x < numFiles; x++) {
+//				StatFileWrapper sfWrapper = sfm.getFile(x);
+//				StatFileParser.ArchiveInfo aInfo = sfWrapper.getaInfo();
+//				pw.print("FILE INFO, ");
+//				pw.print(aInfo.getArchiveFileName() + ", ");
+//				pw.print(aInfo.getMachine() + ", ");
+//				pw.print(aInfo.getOs() + ", ");
+//				pw.print(aInfo.getProductVersion() + ", ");
+//				pw.print(aInfo.getStartTimeMillis() + ", ");
+//				pw.print(aInfo.getSystem() + ", ");
+//				pw.print(aInfo.getSystemId() + ", ");
+//				pw.print(aInfo.getSystemStartTimeMillis() + ", ");
+//				pw.print(aInfo.getTimeZone());
+//				pw.println();
+//				pw.flush();
+//				List<StatFileParser.ResourceInst> rl = sfWrapper.getResourceList();
+//				for (StatFileParser.ResourceInst ri : rl) {
+//					pw.print("STATTYPE, ");
+//					pw.print(ri.getType().getName() + ", ");
+//					pw.print(ri.getName());
+//					pw.println();
+//					StatFileParser.StatValue[] svArray = ri.getStatValues();
+//					for (StatFileParser.StatValue sv : svArray) {
+//						pw.print("STAT, ");
+//						pw.print(sv.getDescriptor().getName() + ", ");
+//						if (sv.getFilter() == sv.FILTER_NONE) {
+//							pw.print("NO FILTER, ");
+//						} else {
+//							if (sv.getFilter() == sv.FILTER_PERSAMPLE) {
+//								pw.print("PERSAMPLE FILTER, ");
+//							} else {
+//								if (sv.getFilter() == sv.FILTER_PERSEC) {
+//									pw.print("PERSECOND FILTER, ");
+//								}
+//							}
+//						}
+//						pw.println();
+//						pw.print("TIME, ");
+//						long[] timesnapshot = sv.getRawAbsoluteTimeStamps();
+//						for (long time : timesnapshot) {
+//							pw.print(time);
+//							pw.print(", ");
+//						}
+//						pw.println();
+//						pw.print("DATA, ");
+//						double[] datasnapshot = sv.getRawSnapshots();
+//						for (double data : datasnapshot) {
+//							pw.print(data);
+//							pw.print(", ");
+//						}
+//						pw.println();
+//					}
+//					pw.println();
+//					pw.flush();
+//				}
+//				pw.close();
+//			}
+//			System.out.println("Finished writing CSV file: " + file.getAbsolutePath());
+//		} catch (IOException ex) {
+//			Logger.getLogger(Utility.class.getName()).log(Level.SEVERE, null, ex);
+//		}
+//
+//	}
+//
+//	static public JMenu createMenu(String menuName, JMenuBar menubar) {
+//		JMenu menu = new JMenu(menuName);
+//		menubar.add(menu);
+//		return menu;
+//	}
+//
+//	static public JMenuItem createMenuItem(String menuItem, JMenu menu, ActionListener al) {
+//		JMenuItem mi = new JMenuItem(menuItem);
+//		mi.addActionListener(al);
+//		menu.add(mi);
+//		return mi;
+//	}
 }


[2/5] incubator-geode git commit: GEODE-340 Deleting old code

Posted by vf...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileParser.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileParser.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileParser.java
deleted file mode 100644
index 6d95ff5..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileParser.java
+++ /dev/null
@@ -1,3591 +0,0 @@
-package com.pivotal.jvsd.stats;
-
-import java.io.BufferedInputStream;
-import java.io.DataInputStream;
-import java.io.EOFException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.text.DateFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-import java.util.AbstractList;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.SimpleTimeZone;
-import java.util.TimeZone;
-import java.util.zip.GZIPInputStream;
-
-
-/**
- * Copies StatArchiveFileReader behavior and then adds to it to support usage
- * within a VSD like tool
- */
-
-/**
- *
- * @author Vince Ford
- */
-public class StatFileParser implements StatArchiveFormat {
-
-	private final StatArchiveFile[] archives;
-	// private boolean dump;
-	private boolean closed = false;
-	/**
-	 *
-	 */
-	public final static String FORMAT = "yyyy/MM/dd HH:mm:ss.SSS z";
-
-	/**
-	 *
-	 * @param archiveNames
-	 * @param filters
-	 * @param autoClose
-	 * @throws IOException
-	 */
-	public StatFileParser(File[] archiveNames, ValueFilter[] filters, boolean autoClose)
-					throws IOException {
-		//System.out.println("StatFileParser 1");
-		this.archives = new StatArchiveFile[archiveNames.length];
-		//this.dump = Boolean.getBoolean("StatFileParser.dumpall");
-		for (int i = 0; i < archiveNames.length; i++) {
-			this.archives[i] = new StatArchiveFile(this, archiveNames[i], false, filters);
-		}
-
-		update(false, autoClose);
-
-//        if (this.dump || Boolean.getBoolean("StatFileParser.dump")) {
-//            this.dump(new PrintWriter(System.out));
-//        }
-	}
-
-	/**
-	 *
-	 * @param archiveName
-	 * @throws IOException
-	 */
-	public StatFileParser(String archiveName) throws IOException {
-
-		this(new File[]{new File(archiveName)}, null, false);
-		//System.out.println("StatFileParser 2");
-	}
-
-//    private void dump(PrintWriter printWriter) {
-//        System.out.println("StatFileParser Dump 1");
-//        throw new UnsupportedOperationException("Not yet implemented");
-//    }
-	/**
-	 *
-	 */
-	public interface ValueFilter {
-
-		/**
-		 * Returns true if the specified archive file matches this spec. Any
-		 * archives whose name does not match this spec will not be selected for
-		 * loading by this spec.
-		 *
-		 * @param archive
-		 * @return
-		 */
-		public boolean archiveMatches(File archive);
-
-		/**
-		 * Returns true if the specified type name matches this spec. Any types
-		 * whose name does not match this spec will not be selected for loading by
-		 * this spec.
-		 *
-		 * @param typeName
-		 * @return
-		 */
-		public boolean typeMatches(String typeName);
-
-		/**
-		 * Returns true if the specified statistic name matches this spec. Any stats
-		 * whose name does not match this spec will not be selected for loading by
-		 * this spec.
-		 *
-		 * @param statName
-		 * @return
-		 */
-		public boolean statMatches(String statName);
-
-		/**
-		 * Returns true if the specified instance matches this spec. Any instance
-		 * whose text id and numeric id do not match this spec will not be selected
-		 * for loading by this spec.
-		 *
-		 * @param textId
-		 * @param numericId
-		 * @return
-		 */
-		public boolean instanceMatches(String textId, long numericId);
-	}
-
-	/**
-	 *
-	 */
-	static public class StatArchiveFile {
-
-		private final StatFileParser reader;
-		private InputStream is;
-		private DataInputStream dataIn;
-		private ValueFilter[] filters;
-		private final File archiveName;
-		private /* final */ int archiveVersion;
-		private /* final */ ArchiveInfo info;
-		private final boolean compressed;
-		private boolean updateOK;
-		private final boolean dump;
-		private boolean closed = false;
-		/**
-		 *
-		 */
-		protected int resourceInstSize = 0;
-		/**
-		 *
-		 */
-		protected ResourceInst[] resourceInstTable = null;
-		private ResourceType[] resourceTypeTable = null;
-		private final TimeStampSeries timeSeries = new TimeStampSeries();
-		private final DateFormat timeFormatter
-						= new SimpleDateFormat(FORMAT);
-		private final static int BUFFER_SIZE = 1024 * 1024;
-		private final ArrayList fileComboValues = new ArrayList();
-
-		/**
-		 *
-		 * @param reader
-		 * @param archiveName
-		 * @param dump
-		 * @param filters
-		 * @throws IOException
-		 */
-		public StatArchiveFile(StatFileParser reader,
-						File archiveName,
-						boolean dump,
-						ValueFilter[] filters)
-						throws IOException {
-			// System.out.println("StatArchiveFile 1");
-			this.reader = reader;
-			this.archiveName = archiveName;
-			this.dump = dump;
-			this.compressed = archiveName.getPath().endsWith(".gz");
-			this.is = new FileInputStream(this.archiveName);
-			if (this.compressed) {
-				this.dataIn = new DataInputStream(new BufferedInputStream(new GZIPInputStream(this.is, BUFFER_SIZE), BUFFER_SIZE));
-			} else {
-				this.dataIn = new DataInputStream(new BufferedInputStream(this.is, BUFFER_SIZE));
-			}
-			this.updateOK = this.dataIn.markSupported();
-			this.filters = createFilters(filters);
-		}
-
-		private ValueFilter[] createFilters(ValueFilter[] allFilters) {
-			// System.out.println("StatArchiveFile createFilters 1");
-			if (allFilters == null) {
-				return new ValueFilter[0];
-			}
-			ArrayList l = new ArrayList();
-			for (int i = 0; i < allFilters.length; i++) {
-				if (allFilters[i].archiveMatches(this.getFile())) {
-					l.add(allFilters[i]);
-				}
-			}
-			if (l.size() == allFilters.length) {
-				return allFilters;
-			} else {
-				ValueFilter[] result = new ValueFilter[l.size()];
-				return (ValueFilter[]) l.toArray(result);
-			}
-		}
-
-		StatFileParser getReader() {
-			// System.out.println("StatArchiveFile getReader");
-			return this.reader;
-		}
-
-		void matchSpec(StatSpec spec, List matchedValues) {
-			// System.out.println("StatArchiveFile matchSpec");
-			if (spec.getCombineType() == StatSpec.FILE) {
-				// search for previous ComboValue
-				Iterator it = this.fileComboValues.iterator();
-				while (it.hasNext()) {
-					ComboValue v = (ComboValue) it.next();
-					if (!spec.statMatches(v.getDescriptor().getName())) {
-						continue;
-					}
-					if (!spec.typeMatches(v.getType().getName())) {
-						continue;
-					}
-					ResourceInst[] resources = v.getResources();
-					for (int i = 0; i < resources.length; i++) {
-						if (!spec.instanceMatches(resources[i].getName(), resources[i].
-										getId())) {
-							continue;
-						}
-						// note: we already know the archive file matches
-					}
-					matchedValues.add(v);
-					return;
-				}
-				ArrayList l = new ArrayList();
-				matchSpec(new RawStatSpec(spec), l);
-				if (l.size() != 0) {
-					ComboValue cv = new ComboValue(l);
-					// save this in file's combo value list
-					this.fileComboValues.add(cv);
-					matchedValues.add(cv);
-				}
-			} else {
-				for (int instIdx = 0; instIdx < resourceInstSize; instIdx++) {
-					resourceInstTable[instIdx].matchSpec(spec, matchedValues);
-				}
-			}
-		}
-
-		/**
-		 * Formats an archive timestamp in way consistent with GemFire log dates. It
-		 * will also be formatted to reflect the time zone the archive was created
-		 * in.
-		 *
-		 * @param ts The difference, measured in milliseconds, between the time
-		 * marked by this time stamp and midnight, January 1, 1970 UTC.
-		 * @return
-		 */
-		public String formatTimeMillis(long ts) {
-			// System.out.println("StatArchiveFile formatTimeMillis");
-			synchronized (timeFormatter) {
-				return timeFormatter.format(new Date(ts));
-			}
-		}
-
-		/**
-		 * sets the time zone this archive was written in.
-		 */
-		void setTimeZone(TimeZone z) {
-			//System.out.println("StatArchiveFile setTimeZone");
-			timeFormatter.setTimeZone(z);
-		}
-
-		/**
-		 * Returns the time series for this archive.
-		 */
-		TimeStampSeries getTimeStamps() {
-			// System.out.println("StatArchiveFile getTimeStamps");
-			return timeSeries;
-		}
-
-		/**
-		 * Checks to see if the archive has changed since the StatArchiverReader
-		 * instance was created or last updated. If the archive has additional
-		 * samples then those are read the resource instances maintained by the
-		 * reader are updated.
-		 * <p>
-		 * Once closed a reader can no longer be updated.
-		 *
-		 * @param doReset
-		 * @return true if update read some new data.
-		 * @throws IOException if <code>archiveName</code> could not be opened read,
-		 * or closed.
-		 */
-		public boolean update(boolean doReset) throws IOException {
-			// System.out.println("StatArchiveFile update");
-			if (this.closed) {
-				return false;
-			}
-			if (!this.updateOK) {
-				throw new IOException("UPDATE_OF_THIS_TYPE_OF_FILE_IS_NOT_SUPPORTED");
-			}
-
-			if (doReset) {
-				this.dataIn.reset();
-			}
-
-			int updateTokenCount = 0;
-			while (this.readToken()) {
-				updateTokenCount++;
-			}
-			return updateTokenCount != 0;
-		}
-
-		/**
-		 *
-		 * @param stream
-		 */
-		public void dump(PrintWriter stream) {
-			// System.out.println("StatArchiveFile dump");
-			stream.print("archive=" + archiveName);
-			if (info != null) {
-				info.dump(stream);
-			}
-			for (int i = 0; i < resourceTypeTable.length; i++) {
-				if (resourceTypeTable[i] != null) {
-					resourceTypeTable[i].dump(stream);
-				}
-			}
-			stream.print("time=");
-			timeSeries.dump(stream);
-			for (int i = 0; i < resourceInstTable.length; i++) {
-				if (resourceInstTable[i] != null) {
-					//resourceInstTable[i].dump(stream);
-				}
-			}
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		public File getFile() {
-			// System.out.println("StatArchiveFile getFile");
-			return this.archiveName;
-		}
-
-		/**
-		 * Closes the archive.
-		 *
-		 * @throws IOException
-		 */
-		public void close() throws IOException {
-			// System.out.println("StatArchiveFile close");
-			if (!this.closed) {
-				this.closed = true;
-				this.is.close();
-				this.dataIn.close();
-				this.is = null;
-				this.dataIn = null;
-				int typeCount = 0;
-				if (this.resourceTypeTable != null) { // fix for bug 32320
-					for (int i = 0; i < this.resourceTypeTable.length; i++) {
-						if (this.resourceTypeTable[i] != null) {
-							if (this.resourceTypeTable[i].close()) {
-								this.resourceTypeTable[i] = null;
-							} else {
-								typeCount++;
-							}
-						}
-					}
-					ResourceType[] newTypeTable = new ResourceType[typeCount];
-					typeCount = 0;
-					for (int i = 0; i < this.resourceTypeTable.length; i++) {
-						if (this.resourceTypeTable[i] != null) {
-							newTypeTable[typeCount] = this.resourceTypeTable[i];
-							typeCount++;
-						}
-					}
-					this.resourceTypeTable = newTypeTable;
-				}
-
-				if (this.resourceInstTable != null) { // fix for bug 32320
-					int instCount = 0;
-					for (int i = 0; i < this.resourceInstTable.length; i++) {
-						if (this.resourceInstTable[i] != null) {
-							if (this.resourceInstTable[i].close()) {
-								this.resourceInstTable[i] = null;
-							} else {
-								instCount++;
-							}
-						}
-					}
-					ResourceInst[] newInstTable = new ResourceInst[instCount];
-					instCount = 0;
-					for (int i = 0; i < this.resourceInstTable.length; i++) {
-						if (this.resourceInstTable[i] != null) {
-							newInstTable[instCount] = this.resourceInstTable[i];
-							instCount++;
-						}
-					}
-					this.resourceInstTable = newInstTable;
-					this.resourceInstSize = instCount;
-				}
-				// optimize memory usage of timeSeries now that no more samples
-				this.timeSeries.shrink();
-				// filters are no longer needed since file will not be read from
-				this.filters = null;
-			}
-		}
-
-		/**
-		 * Returns global information about the read archive. Returns null if no
-		 * information is available.
-		 *
-		 * @return
-		 */
-		public ArchiveInfo getArchiveInfo() {
-			// System.out.println("StatArchiveFile getArchiveInfo");
-			return this.info;
-		}
-
-		private void readHeaderToken() throws IOException {
-			// System.out.println("StatArchiveFile readHeaderToken");
-			byte archiveVersionData = dataIn.readByte();
-			long startTimeStamp = dataIn.readLong();
-			long systemId = dataIn.readLong();
-			long systemStartTimeStamp = dataIn.readLong();
-			int timeZoneOffset = dataIn.readInt();
-			String timeZoneName = dataIn.readUTF();
-			String systemDirectory = dataIn.readUTF();
-			String productVersion = dataIn.readUTF();
-			String os = dataIn.readUTF();
-			String machine = dataIn.readUTF();
-			if (archiveVersionData <= 1) {
-				throw new IOException("ARCHIVE_VERSION_0_IS_NO_LONGER_SUPPORTED");
-			}
-			if (archiveVersionData > ARCHIVE_VERSION) {
-				throw new IOException("UNSUPPORTED_ARCHIVE_VERSION_0_THE_SUPPORTED_VERSION");
-			}
-			this.archiveVersion = archiveVersionData;
-			this.info = new ArchiveInfo(this, archiveVersionData,
-							startTimeStamp, systemStartTimeStamp,
-							timeZoneOffset, timeZoneName,
-							systemDirectory, systemId,
-							productVersion, os, machine);
-			// Clear all previously read types and instances
-			this.resourceInstSize = 0;
-			this.resourceInstTable = new ResourceInst[1024];
-			this.resourceTypeTable = new ResourceType[256];
-			timeSeries.setBase(startTimeStamp);
-			if (dump) {
-				info.dump(new PrintWriter(System.out));
-			}
-		}
-
-		boolean loadType(String typeName) {
-           // System.out.println("StatArchiveFile loadType");
-			// note we don't have instance data or descriptor data yet
-			if (filters == null || filters.length == 0) {
-				return true;
-			} else {
-				for (int i = 0; i < filters.length; i++) {
-					if (filters[i].typeMatches(typeName)) {
-						return true;
-					}
-				}
-				//System.out.println("DEBUG: don't load type=" + typeName);
-				return false;
-			}
-		}
-
-		boolean loadStatDescriptor(StatDescriptor stat, ResourceType type) {
-            // note we don't have instance data yet
-			// System.out.println("StatArchiveFile loadStatDescriptor");
-			if (!type.isLoaded()) {
-				return false;
-			}
-			if (filters == null || filters.length == 0) {
-				return true;
-			} else {
-				for (int i = 0; i < filters.length; i++) {
-					if (filters[i].statMatches(stat.getName())
-									&& filters[i].typeMatches(type.getName())) {
-						return true;
-					}
-				}
-				//System.out.println("DEBUG: don't load stat=" + stat.getName());
-				stat.unload();
-				return false;
-			}
-		}
-
-		boolean loadInstance(String textId, long numericId, ResourceType type) {
-			//System.out.println("StatArchiveFile loadInstance");
-			if (!type.isLoaded()) {
-				return false;
-			}
-			if (filters == null || filters.length == 0) {
-				return true;
-			} else {
-				for (int i = 0; i < filters.length; i++) {
-					if (filters[i].typeMatches(type.getName())) {
-						if (filters[i].instanceMatches(textId, numericId)) {
-							StatDescriptor[] stats = type.getStats();
-							for (int j = 0; j < stats.length; j++) {
-								if (stats[j].isLoaded()) {
-									if (filters[i].statMatches(stats[j].getName())) {
-										return true;
-									}
-								}
-							}
-						}
-					}
-				}
-                //System.out.println("DEBUG: don't load instance=" + textId);
-				//type.unload();
-				return false;
-			}
-		}
-
-		boolean loadStat(StatDescriptor stat, ResourceInst resource) {
-			// System.out.println("StatArchiveFile loadStat");
-			ResourceType type = resource.getType();
-			if (!resource.isLoaded() || !type.isLoaded() || !stat.isLoaded()) {
-				return false;
-			}
-			if (filters == null || filters.length == 0) {
-				return true;
-			} else {
-				String textId = resource.getName();
-				long numericId = resource.getId();
-				for (int i = 0; i < filters.length; i++) {
-					if (filters[i].statMatches(stat.getName())
-									&& filters[i].typeMatches(type.getName())
-									&& filters[i].instanceMatches(textId, numericId)) {
-						return true;
-					}
-				}
-				return false;
-			}
-		}
-
-		private void readResourceTypeToken() throws IOException {
-			// System.out.println("StatArchiveFile readResourceTypeToken");
-			int resourceTypeId = dataIn.readInt();
-			String resourceTypeName = dataIn.readUTF();
-			String resourceTypeDesc = dataIn.readUTF();
-			int statCount = dataIn.readUnsignedShort();
-			while (resourceTypeId >= resourceTypeTable.length) {
-				ResourceType[] tmp = new ResourceType[resourceTypeTable.length + 128];
-				System.arraycopy(resourceTypeTable, 0, tmp, 0, resourceTypeTable.length);
-				resourceTypeTable = tmp;
-			}
-			assert resourceTypeTable[resourceTypeId] == null;
-
-			ResourceType rt;
-			if (loadType(resourceTypeName)) {
-				rt = new ResourceType(resourceTypeId,
-								resourceTypeName,
-								resourceTypeDesc,
-								statCount);
-				if (dump) {
-                    //System.out.println("ResourceType id=" + resourceTypeId
-					//     + " name=" + resourceTypeName
-					//      + " statCount=" + statCount
-					//       + " desc=" + resourceTypeDesc);
-				}
-			} else {
-				rt = new ResourceType(resourceTypeId, resourceTypeName, statCount);
-				if (dump) {
-                    //System.out.println("Not loading ResourceType id=" + resourceTypeId
-					//      + " name=" + resourceTypeName);
-				}
-			}
-			resourceTypeTable[resourceTypeId] = rt;
-			for (int i = 0; i < statCount; i++) {
-				String statName = dataIn.readUTF();
-				byte typeCode = dataIn.readByte();
-				boolean isCounter = dataIn.readBoolean();
-				boolean largerBetter = isCounter; // default
-				if (this.archiveVersion >= 4) {
-					largerBetter = dataIn.readBoolean();
-				}
-				String units = dataIn.readUTF();
-				String desc = dataIn.readUTF();
-				rt.
-								addStatDescriptor(this, i, statName, isCounter, largerBetter, typeCode, units, desc);
-				if (dump) {
-//                    System.out.println("  " + i + "=" + statName + " isCtr=" + isCounter
-//                            + " largerBetter=" + largerBetter
-//                            + " typeCode=" + typeCode + " units=" + units
-//                            + " desc=" + desc);
-				}
-			}
-		}
-
-		private void readResourceInstanceCreateToken(boolean initialize) throws IOException {
-			int resourceInstId = dataIn.readInt();
-			String name = dataIn.readUTF();
-			long id = dataIn.readLong();
-			int resourceTypeId = dataIn.readInt();
-			while (resourceInstId >= resourceInstTable.length) {
-				ResourceInst[] tmp = new ResourceInst[resourceInstTable.length + 128];
-				System.arraycopy(resourceInstTable, 0, tmp, 0, resourceInstTable.length);
-				resourceInstTable = tmp;
-			}
-			assert resourceInstTable[resourceInstId] == null;
-			if ((resourceInstId + 1) > this.resourceInstSize) {
-				this.resourceInstSize = resourceInstId + 1;
-			}
-			boolean loadInstance = loadInstance(name, id, resourceTypeTable[resourceTypeId]);
-			resourceInstTable[resourceInstId] = new ResourceInst(this, resourceInstId, name, id, resourceTypeTable[resourceTypeId], loadInstance);
-			if (dump) {
-               // System.out.println((loadInstance ? "Loaded" : "Did not load") + " resource instance " + resourceInstId);
-				// System.out.println("  name=" + name + " id=" + id + " typeId=" + resourceTypeId);
-			}
-			if (initialize) {
-				StatDescriptor[] stats = resourceInstTable[resourceInstId].getType().
-								getStats();
-				for (int i = 0; i < stats.length; i++) {
-					long v;
-					switch (stats[i].getTypeCode()) {
-						case BOOLEAN_CODE:
-							v = dataIn.readByte();
-							break;
-						case BYTE_CODE:
-						case CHAR_CODE:
-							v = dataIn.readByte();
-							break;
-						case WCHAR_CODE:
-							v = dataIn.readUnsignedShort();
-							break;
-						case SHORT_CODE:
-							v = dataIn.readShort();
-							break;
-						case INT_CODE:
-						case FLOAT_CODE:
-						case LONG_CODE:
-						case DOUBLE_CODE:
-							v = readCompactValue();
-							break;
-						default:
-							throw new IOException("UNEXPECTED_TYPECODE_VALUE_0");
-					}
-					resourceInstTable[resourceInstId].initialValue(i, v);
-				}
-			}
-		}
-
-		private void readResourceInstanceDeleteToken() throws IOException {
-			int resourceInstId = dataIn.readInt();
-			assert resourceInstTable[resourceInstId] != null;
-			resourceInstTable[resourceInstId].makeInactive();
-			if (dump) {
-				// System.out.println("Delete resource instance " + resourceInstId);
-			}
-		}
-
-		private int readResourceInstId() throws IOException {
-			/*
-			 if (this.archiveVersion <= 1) {
-			 return dataIn.readInt();
-			 }
-			 */
-			int token = dataIn.readUnsignedByte();
-			if (token <= MAX_BYTE_RESOURCE_INST_ID) {
-				return token;
-			} else if (token == ILLEGAL_RESOURCE_INST_ID_TOKEN) {
-				return ILLEGAL_RESOURCE_INST_ID;
-			} else if (token == SHORT_RESOURCE_INST_ID_TOKEN) {
-				return dataIn.readUnsignedShort();
-			} else { /* token == INT_RESOURCE_INST_ID_TOKEN */
-
-				return dataIn.readInt();
-			}
-		}
-
-		private int readTimeDelta() throws IOException {
-			int result = dataIn.readUnsignedShort();
-			if (result == INT_TIMESTAMP_TOKEN) {
-				result = dataIn.readInt();
-			}
-			return result;
-		}
-
-		private long readCompactValue() throws IOException {
-			long v = dataIn.readByte();
-			if (dump) {
-				// System.out.print("compactValue(byte1)=" + v);
-			}
-			if (v < MIN_1BYTE_COMPACT_VALUE) {
-				if (v == COMPACT_VALUE_2_TOKEN) {
-					v = dataIn.readShort();
-					if (dump) {
-						//System.out.print("compactValue(short)=" + v);
-					}
-				} else {
-					int bytesToRead = ((byte) v - COMPACT_VALUE_2_TOKEN) + 2;
-					v = dataIn.readByte(); // note the first byte will be a signed byte.
-					if (dump) {
-						System.out.print("compactValue(" + bytesToRead + ")=" + v);
-					}
-					bytesToRead--;
-					while (bytesToRead > 0) {
-						v <<= 8;
-						v |= dataIn.readUnsignedByte();
-						bytesToRead--;
-					}
-				}
-			}
-			return v;
-		}
-
-		private void readSampleToken() throws IOException {
-			int millisSinceLastSample = readTimeDelta();
-			if (dump) {
-				//System.out.println("ts=" + millisSinceLastSample);
-			}
-			int resourceInstId = readResourceInstId();
-			while (resourceInstId != ILLEGAL_RESOURCE_INST_ID) {
-				if (dump) {
-					//System.out.print("  instId=" + resourceInstId);
-				}
-				StatDescriptor[] stats = resourceInstTable[resourceInstId].getType().
-								getStats();
-				int statOffset = dataIn.readUnsignedByte();
-				while (statOffset != ILLEGAL_STAT_OFFSET) {
-					long statDeltaBits;
-					switch (stats[statOffset].getTypeCode()) {
-						case BOOLEAN_CODE:
-							statDeltaBits = dataIn.readByte();
-							break;
-						case BYTE_CODE:
-						case CHAR_CODE:
-							statDeltaBits = dataIn.readByte();
-							break;
-						case WCHAR_CODE:
-							statDeltaBits = dataIn.readUnsignedShort();
-							break;
-						case SHORT_CODE:
-							statDeltaBits = dataIn.readShort();
-							break;
-						case INT_CODE:
-						case FLOAT_CODE:
-						case LONG_CODE:
-						case DOUBLE_CODE:
-							statDeltaBits = readCompactValue();
-							break;
-						default:
-							throw new IOException("UNEXPECTED_TYPECODE_VALUE_0");
-					}
-					if (resourceInstTable[resourceInstId].
-									addValueSample(statOffset, statDeltaBits)) {
-						if (dump) {
-							//System.out.print(" [" + statOffset + "]=" + statDeltaBits);
-						}
-					}
-					statOffset = dataIn.readUnsignedByte();
-				}
-				if (dump) {
-					//System.out.println();
-				}
-				resourceInstId = readResourceInstId();
-			}
-			timeSeries.addTimeStamp(millisSinceLastSample);
-			for (int i = 0; i < resourceInstTable.length; i++) {
-				ResourceInst inst = resourceInstTable[i];
-				if (inst != null && inst.isActive()) {
-					inst.addTimeStamp();
-				}
-			}
-		}
-
-		/**
-		 * Returns true if token read, false if eof.
-		 */
-		private boolean readToken() throws IOException {
-			byte token;
-			try {
-				if (this.updateOK) {
-					this.dataIn.mark(BUFFER_SIZE);
-				}
-				token = this.dataIn.readByte();
-				switch (token) {
-					case HEADER_TOKEN:
-						readHeaderToken();
-						break;
-					case RESOURCE_TYPE_TOKEN:
-						readResourceTypeToken();
-						break;
-					case RESOURCE_INSTANCE_CREATE_TOKEN:
-						readResourceInstanceCreateToken(false);
-						break;
-					case RESOURCE_INSTANCE_INITIALIZE_TOKEN:
-						readResourceInstanceCreateToken(true);
-						break;
-					case RESOURCE_INSTANCE_DELETE_TOKEN:
-						readResourceInstanceDeleteToken();
-						break;
-					case SAMPLE_TOKEN:
-						readSampleToken();
-						break;
-					default:
-						throw new IOException("UNEXPECTED_TOKEN_BYTE_VALUE_0");
-				}
-				return true;
-			} catch (EOFException ignore) {
-				return false;
-			}
-		}
-
-		/**
-		 * Returns the approximate amount of memory used to implement this object.
-		 *
-		 * @return
-		 */
-//        protected int getMemoryUsed() {
-//            int result = 0;
-//            for (int i = 0; i < resourceInstTable.length; i++) {
-//                if (resourceInstTable[i] != null) {
-//                    result += resourceInstTable[i].getMemoryUsed();
-//                }
-//            }
-//            return result;
-//        }
-	}
-
-	/**
-	 *
-	 */
-	static protected abstract class AbstractValue implements StatValue {
-
-		/**
-		 *
-		 */
-		protected StatDescriptor descriptor;
-		/**
-		 *
-		 */
-		protected int filter;
-		/**
-		 *
-		 */
-		protected long startTime = -1;
-		/**
-		 *
-		 */
-		protected long endTime = -1;
-		/**
-		 *
-		 */
-		protected boolean statsValid = false;
-		/**
-		 *
-		 */
-		protected int size;
-		/**
-		 *
-		 */
-		protected double min;
-		/**
-		 *
-		 */
-		protected double max;
-		/**
-		 *
-		 */
-		protected double avg;
-		/**
-		 *
-		 */
-		protected double stddev;
-
-		/**
-		 *
-		 */
-		public void calcStats() {
-			if (!statsValid) {
-				getSnapshots();
-			}
-		}
-
-		public int getSnapshotsSize() {
-			calcStats();
-			return this.size;
-		}
-
-		public double getSnapshotsMinimum() {
-			calcStats();
-			return this.min;
-		}
-
-		public double getSnapshotsMaximum() {
-			calcStats();
-			return this.max;
-		}
-
-		public double getSnapshotsAverage() {
-			calcStats();
-			return this.avg;
-		}
-
-		public double getSnapshotsStandardDeviation() {
-			calcStats();
-			return this.stddev;
-		}
-
-		public StatDescriptor getDescriptor() {
-			return this.descriptor;
-		}
-
-		public int getFilter() {
-			return this.filter;
-		}
-
-		public void setFilter(int filter) {
-			if (filter != this.filter) {
-				if (filter != FILTER_NONE
-								&& filter != FILTER_PERSEC
-								&& filter != FILTER_PERSAMPLE) {
-					throw new IllegalArgumentException("FILTER_VALUE_0_MUST_BE_1_2_OR_3");
-				}
-				this.filter = filter;
-				this.statsValid = false;
-			}
-		}
-
-		/**
-		 * Calculates each stat given the result of calling getSnapshots
-		 *
-		 * @param values
-		 */
-		protected void calcStats(double[] values) {
-			if (statsValid) {
-				return;
-			}
-			size = values.length;
-			if (size == 0) {
-				min = 0.0;
-				max = 0.0;
-				avg = 0.0;
-				stddev = 0.0;
-			} else {
-				min = values[0];
-				max = values[0];
-				double total = values[0];
-				for (int i = 1; i < size; i++) {
-					total += values[i];
-					if (values[i] < min) {
-						min = values[i];
-					} else if (values[i] > max) {
-						max = values[i];
-					}
-				}
-				avg = total / size;
-				stddev = 0.0;
-				if (size > 1) {
-					for (int i = 0; i < size; i++) {
-						double dv = values[i] - avg;
-						stddev += (dv * dv);
-					}
-					stddev /= (size - 1);
-					stddev = Math.sqrt(stddev);
-				}
-			}
-			statsValid = true;
-		}
-
-		/**
-		 * Returns a string representation of this object.
-		 */
-		@Override
-		public String toString() {
-			calcStats();
-			StringBuffer result = new StringBuffer();
-			result.append(getDescriptor().getName());
-			String units = getDescriptor().getUnits();
-			if (units != null && units.length() > 0) {
-				result.append(' ').append(units);
-			}
-			if (filter == FILTER_PERSEC) {
-				result.append("/sec");
-			} else if (filter == FILTER_PERSAMPLE) {
-				result.append("/sample");
-			}
-			result.append(": samples=").append(getSnapshotsSize());
-			if (startTime != -1) {
-				result.append(" startTime=\"").append(new Date(startTime)).append("\"");
-			}
-			if (endTime != -1) {
-				result.append(" endTime=\"").append(new Date(endTime)).append("\"");
-			}
-			result.append(" min=").append(nf.format(min));
-			result.append(" max=").append(nf.format(max));
-			result.append(" average=").append(nf.format(avg));
-			result.append(" stddev=").append(nf.format(stddev));
-			return result.toString();
-		}
-	}
-
-	/**
-	 *
-	 */
-	static public class ArchiveInfo {
-
-		private final StatArchiveFile archive;
-		private final byte archiveVersion;
-		private final long startTimeStamp; // in milliseconds
-		private final long systemStartTimeStamp; // in milliseconds
-		private final int timeZoneOffset;
-		private final String timeZoneName;
-		private final String systemDirectory;
-		private final long systemId;
-		private final String productVersion;
-		private final String os;
-		private final String machine;
-
-		/**
-		 *
-		 * @param archive
-		 * @param archiveVersion
-		 * @param startTimeStamp
-		 * @param systemStartTimeStamp
-		 * @param timeZoneOffset
-		 * @param timeZoneName
-		 * @param systemDirectory
-		 * @param systemId
-		 * @param productVersion
-		 * @param os
-		 * @param machine
-		 */
-		public ArchiveInfo(StatArchiveFile archive, byte archiveVersion,
-						long startTimeStamp, long systemStartTimeStamp,
-						int timeZoneOffset, String timeZoneName,
-						String systemDirectory, long systemId,
-						String productVersion, String os, String machine) {
-			this.archive = archive;
-			this.archiveVersion = archiveVersion;
-			this.startTimeStamp = startTimeStamp;
-			this.systemStartTimeStamp = systemStartTimeStamp;
-			this.timeZoneOffset = timeZoneOffset;
-			this.timeZoneName = timeZoneName;
-			this.systemDirectory = systemDirectory;
-			this.systemId = systemId;
-			this.productVersion = productVersion;
-			this.os = os;
-			this.machine = machine;
-			archive.setTimeZone(getTimeZone());
-		}
-
-		/**
-		 * Returns the difference, measured in milliseconds, between the time the
-		 * archive file was create and midnight, January 1, 1970 UTC.
-		 *
-		 * @return
-		 */
-		public long getStartTimeMillis() {
-			return this.startTimeStamp;
-		}
-
-		/**
-		 * Returns the difference, measured in milliseconds, between the time the
-		 * archived system was started and midnight, January 1, 1970 UTC.
-		 *
-		 * @return
-		 */
-		public long getSystemStartTimeMillis() {
-			return this.systemStartTimeStamp;
-		}
-
-		/**
-		 * Returns a numeric id of the archived system. It can be used in
-		 * conjunction with the {@link #getSystemStartTimeMillis} to uniquely
-		 * identify an archived system.
-		 *
-		 * @return
-		 */
-		public long getSystemId() {
-			return this.systemId;
-		}
-
-		/**
-		 * Returns a string describing the operating system the archive was written
-		 * on.
-		 *
-		 * @return
-		 */
-		public String getOs() {
-			return this.os;
-		}
-
-		/**
-		 * Returns a string describing the machine the archive was written on.
-		 *
-		 * @return
-		 */
-		public String getMachine() {
-			return this.machine;
-		}
-
-		/**
-		 * Returns the time zone used when the archive was created. This can be used
-		 * to print timestamps in the same time zone that was in effect when the
-		 * archive was created.
-		 *
-		 * @return
-		 */
-		public TimeZone getTimeZone() {
-			TimeZone result = TimeZone.getTimeZone(this.timeZoneName);
-			if (result.getRawOffset() != this.timeZoneOffset) {
-				result = new SimpleTimeZone(this.timeZoneOffset, this.timeZoneName);
-			}
-			return result;
-		}
-
-		/**
-		 * Returns a string containing the version of the product that wrote this
-		 * archive.
-		 *
-		 * @return
-		 */
-		public String getProductVersion() {
-			return this.productVersion;
-		}
-
-		/**
-		 * Returns a numeric code that represents the format version used to encode
-		 * the archive as a stream of bytes.
-		 *
-		 * @return
-		 */
-		public int getArchiveFormatVersion() {
-			return this.archiveVersion;
-		}
-
-		/**
-		 * Returns a string describing the system that this archive recorded.
-		 *
-		 * @return
-		 */
-		public String getSystem() {
-			return this.systemDirectory;
-		}
-
-		/**
-		 * Return the name of the file this archive was stored in or an empty string
-		 * if the archive was not stored in a file.
-		 *
-		 * @return
-		 */
-		public String getArchiveFileName() {
-			if (this.archive != null) {
-				return this.archive.getFile().getPath();
-			} else {
-				return "";
-			}
-		}
-
-		/**
-		 * Returns a string representation of this object.
-		 */
-		@Override
-		public String toString() {
-			StringWriter sw = new StringWriter();
-			this.dump(new PrintWriter(sw));
-			return sw.toString();
-		}
-
-		/**
-		 *
-		 * @param stream
-		 */
-		protected void dump(PrintWriter stream) {
-			if (archive != null) {
-				stream.println("archive=" + archive.getFile());
-			}
-			stream.println("archiveVersion=" + archiveVersion);
-			if (archive != null) {
-				stream.println("startDate=" + archive.formatTimeMillis(startTimeStamp));
-			}
-			// stream.println("startTimeStamp=" + startTimeStamp +" tz=" + timeZoneName + " tzOffset=" + timeZoneOffset);
-			stream.println("timeZone=" + getTimeZone().getDisplayName());
-			stream.println("systemDirectory=" + systemDirectory);
-			stream.println("systemStartDate=" + archive.
-							formatTimeMillis(systemStartTimeStamp));
-			stream.println("systemId=" + systemId);
-			stream.println("productVersion=" + productVersion);
-			stream.println("osInfo=" + os);
-			stream.println("machineInfo=" + machine);
-		}
-	}
-
-	static private class BitExplicitByteInterval extends BitInterval {
-
-		long firstValue;
-		long lastValue;
-		byte[] bitIntervals = null;
-
-//        @Override
-//        int getMemoryUsed() {
-//            int result = super.getMemoryUsed() + 4 + 8 + 8 + 4;
-//            if (bitIntervals != null) {
-//                result += bitIntervals.length;
-//            }
-//            return result;
-//        }
-		@Override
-		int fill(double[] values, int valueOffset, int typeCode, int skipCount) {
-			int fillcount = values.length - valueOffset; // space left in values
-			int maxCount = count - skipCount; // maximum values this interval can produce
-			if (fillcount > maxCount) {
-				fillcount = maxCount;
-			}
-			long bitValue = firstValue;
-			for (int i = 0; i < skipCount; i++) {
-				bitValue += bitIntervals[i];
-			}
-			for (int i = 0; i < fillcount; i++) {
-				bitValue += bitIntervals[skipCount + i];
-				values[valueOffset + i] = bitsToDouble(typeCode, bitValue);
-			}
-			return fillcount;
-		}
-
-//        @Override
-//        void dump(PrintWriter stream) {
-//            stream.print("(byteIntervalCount=" + count + " start=" + firstValue);
-//            for (int i = 0; i < count; i++) {
-//                if (i != 0) {
-//                    stream.print(", ");
-//                }
-//                stream.print(bitIntervals[i]);
-//            }
-//            stream.print(")");
-//        }
-		BitExplicitByteInterval(long bits, long interval, int addCount) {
-			count = addCount;
-			firstValue = bits;
-			lastValue = bits + (interval * (addCount - 1));
-			bitIntervals = new byte[count * 2];
-			bitIntervals[0] = 0;
-			for (int i = 1; i < count; i++) {
-				bitIntervals[i] = (byte) interval;
-			}
-		}
-
-		@Override
-		boolean attemptAdd(long addBits, long addInterval, int addCount) {
-			// addCount >= 2; count >= 2
-			if (addCount <= 11) {
-				if (addInterval <= Byte.MAX_VALUE && addInterval >= Byte.MIN_VALUE) {
-					long firstInterval = addBits - lastValue;
-					if (firstInterval <= Byte.MAX_VALUE && firstInterval >= Byte.MIN_VALUE) {
-						lastValue = addBits + (addInterval * (addCount - 1));
-						if ((count + addCount) >= bitIntervals.length) {
-							byte[] tmp = new byte[(count + addCount) * 2];
-							System.arraycopy(bitIntervals, 0, tmp, 0, bitIntervals.length);
-							bitIntervals = tmp;
-						}
-						bitIntervals[count++] = (byte) firstInterval;
-						for (int i = 1; i < addCount; i++) {
-							bitIntervals[count++] = (byte) addInterval;
-						}
-						return true;
-					}
-				}
-			}
-			return false;
-		}
-	}
-
-	static private class BitExplicitShortInterval extends BitInterval {
-
-		long firstValue;
-		long lastValue;
-		short[] bitIntervals = null;
-
-//        @Override
-//        int getMemoryUsed() {
-//            int result = super.getMemoryUsed() + 4 + 8 + 8 + 4;
-//            if (bitIntervals != null) {
-//                result += bitIntervals.length * 2;
-//            }
-//            return result;
-//        }
-		@Override
-		int fill(double[] values, int valueOffset, int typeCode, int skipCount) {
-			int fillcount = values.length - valueOffset; // space left in values
-			int maxCount = count - skipCount; // maximum values this interval can produce
-			if (fillcount > maxCount) {
-				fillcount = maxCount;
-			}
-			long bitValue = firstValue;
-			for (int i = 0; i < skipCount; i++) {
-				bitValue += bitIntervals[i];
-			}
-			for (int i = 0; i < fillcount; i++) {
-				bitValue += bitIntervals[skipCount + i];
-				values[valueOffset + i] = bitsToDouble(typeCode, bitValue);
-			}
-			return fillcount;
-		}
-
-//        @Override
-//        void dump(PrintWriter stream) {
-//            stream.print("(shortIntervalCount=" + count + " start=" + firstValue);
-//            for (int i = 0; i < count; i++) {
-//                if (i != 0) {
-//                    stream.print(", ");
-//                }
-//                stream.print(bitIntervals[i]);
-//            }
-//            stream.print(")");
-//        }
-		BitExplicitShortInterval(long bits, long interval, int addCount) {
-			count = addCount;
-			firstValue = bits;
-			lastValue = bits + (interval * (addCount - 1));
-			bitIntervals = new short[count * 2];
-			bitIntervals[0] = 0;
-			for (int i = 1; i < count; i++) {
-				bitIntervals[i] = (short) interval;
-			}
-		}
-
-		@Override
-		boolean attemptAdd(long addBits, long addInterval, int addCount) {
-			// addCount >= 2; count >= 2
-			if (addCount <= 6) {
-				if (addInterval <= Short.MAX_VALUE && addInterval >= Short.MIN_VALUE) {
-					long firstInterval = addBits - lastValue;
-					if (firstInterval <= Short.MAX_VALUE && firstInterval >= Short.MIN_VALUE) {
-						lastValue = addBits + (addInterval * (addCount - 1));
-						if ((count + addCount) >= bitIntervals.length) {
-							short[] tmp = new short[(count + addCount) * 2];
-							System.arraycopy(bitIntervals, 0, tmp, 0, bitIntervals.length);
-							bitIntervals = tmp;
-						}
-						bitIntervals[count++] = (short) firstInterval;
-						for (int i = 1; i < addCount; i++) {
-							bitIntervals[count++] = (short) addInterval;
-						}
-						return true;
-					}
-				}
-			}
-			return false;
-		}
-	}
-
-	static private class BitExplicitIntInterval extends BitInterval {
-
-		long firstValue;
-		long lastValue;
-		int[] bitIntervals = null;
-
-//        @Override
-//        int getMemoryUsed() {
-//            int result = super.getMemoryUsed() + 4 + 8 + 8 + 4;
-//            if (bitIntervals != null) {
-//                result += bitIntervals.length * 4;
-//            }
-//            return result;
-//        }
-		@Override
-		int fill(double[] values, int valueOffset, int typeCode, int skipCount) {
-			int fillcount = values.length - valueOffset; // space left in values
-			int maxCount = count - skipCount; // maximum values this interval can produce
-			if (fillcount > maxCount) {
-				fillcount = maxCount;
-			}
-			long bitValue = firstValue;
-			for (int i = 0; i < skipCount; i++) {
-				bitValue += bitIntervals[i];
-			}
-			for (int i = 0; i < fillcount; i++) {
-				bitValue += bitIntervals[skipCount + i];
-				values[valueOffset + i] = bitsToDouble(typeCode, bitValue);
-			}
-			return fillcount;
-		}
-
-//        @Override
-//        void dump(PrintWriter stream) {
-//            stream.print("(intIntervalCount=" + count + " start=" + firstValue);
-//            for (int i = 0; i < count; i++) {
-//                if (i != 0) {
-//                    stream.print(", ");
-//                }
-//                stream.print(bitIntervals[i]);
-//            }
-//            stream.print(")");
-//        }
-		BitExplicitIntInterval(long bits, long interval, int addCount) {
-			count = addCount;
-			firstValue = bits;
-			lastValue = bits + (interval * (addCount - 1));
-			bitIntervals = new int[count * 2];
-			bitIntervals[0] = 0;
-			for (int i = 1; i < count; i++) {
-				bitIntervals[i] = (int) interval;
-			}
-		}
-
-		@Override
-		boolean attemptAdd(long addBits, long addInterval, int addCount) {
-			// addCount >= 2; count >= 2
-			if (addCount <= 4) {
-				if (addInterval <= Integer.MAX_VALUE && addInterval >= Integer.MIN_VALUE) {
-					long firstInterval = addBits - lastValue;
-					if (firstInterval <= Integer.MAX_VALUE && firstInterval >= Integer.MIN_VALUE) {
-						lastValue = addBits + (addInterval * (addCount - 1));
-						if ((count + addCount) >= bitIntervals.length) {
-							int[] tmp = new int[(count + addCount) * 2];
-							System.arraycopy(bitIntervals, 0, tmp, 0, bitIntervals.length);
-							bitIntervals = tmp;
-						}
-						bitIntervals[count++] = (int) firstInterval;
-						for (int i = 1; i < addCount; i++) {
-							bitIntervals[count++] = (int) addInterval;
-						}
-						return true;
-					}
-				}
-			}
-			return false;
-		}
-	}
-
-	static private class BitExplicitLongInterval extends BitInterval {
-
-		long[] bitArray = null;
-
-//        @Override
-//        int getMemoryUsed() {
-//            int result = super.getMemoryUsed() + 4 + 4;
-//            if (bitArray != null) {
-//                result += bitArray.length * 8;
-//            }
-//            return result;
-//        }
-		@Override
-		int fill(double[] values, int valueOffset, int typeCode, int skipCount) {
-			int fillcount = values.length - valueOffset; // space left in values
-			int maxCount = count - skipCount; // maximum values this interval can produce
-			if (fillcount > maxCount) {
-				fillcount = maxCount;
-			}
-			for (int i = 0; i < fillcount; i++) {
-				values[valueOffset + i] = bitsToDouble(typeCode, bitArray[skipCount + i]);
-			}
-			return fillcount;
-		}
-
-//        @Override
-//        void dump(PrintWriter stream) {
-//            stream.print("(count=" + count + " ");
-//            for (int i = 0; i < count; i++) {
-//                if (i != 0) {
-//                    stream.print(", ");
-//                }
-//                stream.print(bitArray[i]);
-//            }
-//            stream.print(")");
-//        }
-		BitExplicitLongInterval(long bits, long interval, int addCount) {
-			count = addCount;
-			bitArray = new long[count * 2];
-			for (int i = 0; i < count; i++) {
-				bitArray[i] = bits;
-				bits += interval;
-			}
-		}
-
-		@Override
-		boolean attemptAdd(long addBits, long addInterval, int addCount) {
-			// addCount >= 2; count >= 2
-			if (addCount <= 3) {
-				if ((count + addCount) >= bitArray.length) {
-					long[] tmp = new long[(count + addCount) * 2];
-					System.arraycopy(bitArray, 0, tmp, 0, bitArray.length);
-					bitArray = tmp;
-				}
-				for (int i = 0; i < addCount; i++) {
-					bitArray[count++] = addBits;
-					addBits += addInterval;
-				}
-				return true;
-			}
-			return false;
-		}
-	}
-
-	static private class BitSeries {
-
-		int count; // number of items in this series
-		long currentStartBits;
-		long currentEndBits;
-		long currentInterval;
-		int currentCount;
-		int intervalIdx; // index of most recent BitInterval
-		BitInterval intervals[];
-
-		/**
-		 * Returns the amount of memory used to implement this series.
-		 */
-//        protected int getMemoryUsed() {
-//            int result = 4 + 8 + 8 + 8 + 4 + 4 + 4;
-//            if (intervals != null) {
-//                result += 4 * intervals.length;
-//                for (int i = 0; i <= intervalIdx; i++) {
-//                    result += intervals[i].getMemoryUsed();
-//                }
-//            }
-//            return result;
-//        }
-		public double[] getValues(int typeCode) {
-			return getValuesEx(typeCode, 0, getSize());
-		}
-
-		/**
-		 * Gets the first "resultSize" values of this series skipping over the first
-		 * "samplesToSkip" ones. The first value in a series is at index 0. The
-		 * maximum result size can be obtained by calling "getSize()".
-		 */
-		public double[] getValuesEx(int typeCode, int samplesToSkip, int resultSize) {
-			double[] result = new double[resultSize];
-			int firstInterval = 0;
-			int idx = 0;
-			while (samplesToSkip > 0
-							&& firstInterval <= intervalIdx
-							&& intervals[firstInterval].getSampleCount() <= samplesToSkip) {
-				samplesToSkip -= intervals[firstInterval].getSampleCount();
-				firstInterval++;
-			}
-			for (int i = firstInterval; i <= intervalIdx; i++) {
-				idx += intervals[i].fill(result, idx, typeCode, samplesToSkip);
-				samplesToSkip = 0;
-			}
-			if (currentCount != 0) {
-				idx += BitInterval.
-								create(currentStartBits, currentInterval, currentCount).
-								fill(result, idx, typeCode, samplesToSkip);
-			}
-			// assert
-			if (idx != resultSize) {
-				throw new RuntimeException("GETVALUESEX_DIDNT_FILL_THE_LAST_0_ENTRIES_OF_ITS_RESULT");
-			}
-			return result;
-		}
-
-//        void dump(PrintWriter stream) {
-//            stream.print("[size=" + count + " intervals=" + (intervalIdx + 1)
-//                    + " memused=" + getMemoryUsed() + " ");
-//            for (int i = 0; i <= intervalIdx; i++) {
-//                if (i != 0) {
-//                    stream.print(", ");
-//                }
-//                intervals[i].dump(stream);
-//            }
-//            if (currentCount != 0) {
-//                if (intervalIdx != -1) {
-//                    stream.print(", ");
-//                }
-//                BitInterval.create(currentStartBits, currentInterval, currentCount).dump(stream);
-//            }
-//            stream.println("]");
-//        }
-		BitSeries() {
-			count = 0;
-			currentStartBits = 0;
-			currentEndBits = 0;
-			currentInterval = 0;
-			currentCount = 0;
-			intervalIdx = -1;
-			intervals = null;
-		}
-
-		void initialBits(long bits) {
-			this.currentEndBits = bits;
-		}
-
-		int getSize() {
-			return this.count;
-		}
-
-		void addBits(long deltaBits) {
-			long bits = currentEndBits + deltaBits;
-			if (currentCount == 0) {
-				currentStartBits = bits;
-				currentCount = 1;
-			} else if (currentCount == 1) {
-				currentInterval = deltaBits;
-				currentCount++;
-			} else if (deltaBits == currentInterval) {
-				currentCount++;
-			} else {
-				// we need to move currentBits into a BitInterval
-				if (intervalIdx == -1) {
-					intervals = new BitInterval[2];
-					intervalIdx = 0;
-					intervals[0] = BitInterval.
-									create(currentStartBits, currentInterval, currentCount);
-				} else {
-					if (!intervals[intervalIdx].
-									attemptAdd(currentStartBits, currentInterval, currentCount)) {
-						// wouldn't fit in current bit interval so add a new one
-						intervalIdx++;
-						if (intervalIdx >= intervals.length) {
-							BitInterval[] tmp = new BitInterval[intervals.length * 2];
-							System.arraycopy(intervals, 0, tmp, 0, intervals.length);
-							intervals = tmp;
-						}
-						intervals[intervalIdx] = BitInterval.
-										create(currentStartBits, currentInterval, currentCount);
-					}
-				}
-				// now start a new currentBits
-				currentStartBits = bits;
-				currentCount = 1;
-			}
-			currentEndBits = bits;
-			count++;
-		}
-
-		/**
-		 * Free up any unused memory
-		 */
-		void shrink() {
-			if (intervals != null) {
-				int currentSize = intervalIdx + 1;
-				if (currentSize < intervals.length) {
-					BitInterval[] tmp = new BitInterval[currentSize];
-					System.arraycopy(intervals, 0, tmp, 0, currentSize);
-					intervals = tmp;
-				}
-			}
-		}
-	}
-
-	static private class TimeStampSeries {
-
-		static private final int GROW_SIZE = 256;
-		int count; // number of items in this series
-		long base; // millis since midnight, Jan 1, 1970 UTC.
-		long[] timeStamps = new long[GROW_SIZE]; // elapsed millis from base
-
-		void dump(PrintWriter stream) {
-			stream.print("[size=" + count);
-			for (int i = 0; i < count; i++) {
-				if (i != 0) {
-					stream.print(", ");
-					stream.print(timeStamps[i] - timeStamps[i - 1]);
-				} else {
-					stream.print(" " + timeStamps[i]);
-				}
-			}
-			stream.println("]");
-		}
-
-		void shrink() {
-			if (count < timeStamps.length) {
-				long[] tmp = new long[count];
-				System.arraycopy(timeStamps, 0, tmp, 0, count);
-				timeStamps = tmp;
-			}
-		}
-
-		TimeStampSeries() {
-			count = 0;
-			base = 0;
-		}
-
-		void setBase(long base) {
-			this.base = base;
-		}
-
-		int getSize() {
-			return this.count;
-		}
-
-		void addTimeStamp(int ts) {
-			if (count >= timeStamps.length) {
-				long[] tmp = new long[timeStamps.length + GROW_SIZE];
-				System.arraycopy(timeStamps, 0, tmp, 0, timeStamps.length);
-				timeStamps = tmp;
-			}
-			if (count != 0) {
-				timeStamps[count] = timeStamps[count - 1] + ts;
-			} else {
-				timeStamps[count] = ts;
-			}
-			count++;
-		}
-
-		long getBase() {
-			return this.base;
-		}
-
-		/**
-		 * Provides direct access to underlying data. Do not modify contents and use
-		 * getSize() to keep from reading past end of array.
-		 */
-		long[] getRawTimeStamps() {
-			return this.timeStamps;
-		}
-
-		long getMilliTimeStamp(int idx) {
-			return this.base + this.timeStamps[idx];
-		}
-
-		/**
-		 * Returns an array of time stamp values the first of which has the
-		 * specified index. Each returned time stamp is the number of millis since
-		 * midnight, Jan 1, 1970 UTC.
-		 */
-		double[] getTimeValuesSinceIdx(int idx) {
-			int resultSize = this.count - idx;
-			double[] result = new double[resultSize];
-			for (int i = 0; i < resultSize; i++) {
-				result[i] = getMilliTimeStamp(idx + i);
-			}
-			return result;
-		}
-	}
-
-	/**
-	 *
-	 */
-	static public class ResourceType {
-
-		private boolean loaded;
-//    private final int id;
-		private final String name;
-		private String desc;
-		private final StatDescriptor[] stats;
-		private Map descriptorMap;
-
-		/**
-		 *
-		 * @param stream
-		 */
-		public void dump(PrintWriter stream) {
-			if (loaded) {
-				stream.println(name + ": " + desc);
-				for (int i = 0; i < stats.length; i++) {
-					stats[i].dump(stream);
-				}
-			}
-		}
-
-		/**
-		 *
-		 * @param id
-		 * @param name
-		 * @param statCount
-		 */
-		protected ResourceType(int id, String name, int statCount) {
-			this.loaded = false;
-//      this.id = id;
-			this.name = name;
-			this.desc = null;
-			this.stats = new StatDescriptor[statCount];
-			this.descriptorMap = null;
-		}
-
-		/**
-		 *
-		 * @param id
-		 * @param name
-		 * @param desc
-		 * @param statCount
-		 */
-		protected ResourceType(int id, String name, String desc, int statCount) {
-			this.loaded = true;
-//      this.id = id;
-			this.name = name;
-			this.desc = desc;
-			this.stats = new StatDescriptor[statCount];
-			this.descriptorMap = new HashMap();
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		public boolean isLoaded() {
-			return this.loaded;
-		}
-
-		/**
-		 * Frees up any resources no longer needed after the archive file is closed.
-		 * Returns true if this guy is no longer needed.
-		 *
-		 * @return
-		 */
-		protected boolean close() {
-			if (isLoaded()) {
-				for (int i = 0; i < stats.length; i++) {
-					if (stats[i] != null) {
-						if (!stats[i].isLoaded()) {
-							stats[i] = null;
-						}
-					}
-				}
-				return false;
-			} else {
-				return true;
-			}
-		}
-
-		void unload() {
-			this.loaded = false;
-			this.desc = null;
-			for (int i = 0; i < this.stats.length; i++) {
-				this.stats[i].unload();
-			}
-			this.descriptorMap.clear();
-			this.descriptorMap = null;
-		}
-
-		/**
-		 *
-		 * @param archive
-		 * @param offset
-		 * @param name
-		 * @param isCounter
-		 * @param largerBetter
-		 * @param typeCode
-		 * @param units
-		 * @param desc
-		 */
-		protected void addStatDescriptor(StatArchiveFile archive, int offset, String name, boolean isCounter,
-						boolean largerBetter,
-						byte typeCode, String units, String desc) {
-			StatDescriptor descriptor = new StatDescriptor(name, offset, isCounter, largerBetter, typeCode, units, desc);
-			this.stats[offset] = descriptor;
-			if (archive.loadStatDescriptor(descriptor, this)) {
-				descriptorMap.put(name, descriptor);
-			}
-		}
-
-//    private int getId() {
-//      return this.id;
-//    }
-		/**
-		 * Returns the name of this resource type.
-		 *
-		 * @return
-		 */
-		public String getName() {
-			return this.name;
-		}
-
-		/**
-		 * Returns an array of descriptors for each statistic this resource type
-		 * supports.
-		 *
-		 * @return
-		 */
-		public StatDescriptor[] getStats() {
-			return this.stats;
-		}
-
-		/**
-		 * Gets a stat descriptor contained in this type given the stats name.
-		 *
-		 * @param name the name of the stat to find in the current type
-		 * @return the descriptor that matches the name or null if the type does not
-		 * have a stat of the given name
-		 */
-		public StatDescriptor getStat(String name) {
-			return (StatDescriptor) descriptorMap.get(name);
-		}
-
-		/**
-		 * Returns a description of this resource type.
-		 *
-		 * @return
-		 */
-		public String getDescription() {
-			return this.desc;
-		}
-	}
-
-	/**
-	 *
-	 */
-	static public class ResourceInst {
-
-		private final boolean loaded;
-		private final StatArchiveFile archive;
-//    private final int uniqueId;
-		private final ResourceType type;
-		private final String name;
-		private final long id; //PID of process??
-		private boolean active = true;
-		private final SimpleValue[] values;
-		private int firstTSidx = -1;
-		private int lastTSidx = -1;
-
-		/**
-		 * Returns the approximate amount of memory used to implement this object.
-		 *
-		 * @return
-		 */
-//        protected int getMemoryUsed() {
-//            int result = 0;
-//            if (values != null) {
-//                for (int i = 0; i < values.length; i++) {
-//                    result += this.values[i].getMemoryUsed();
-//                }
-//            }
-//            return result;
-//        }
-		/**
-		 *
-		 * @return
-		 */
-		public StatFileParser getReader() {
-			return archive.getReader();
-		}
-
-		/**
-		 * Returns a string representation of this object.
-		 */
-		@Override
-		public String toString() {
-			StringBuffer result = new StringBuffer();
-			result.append(name).append(", ").append("ID" + id).append(", ").
-							append(type.getName()).append(": \"").append(archive.
-											formatTimeMillis(getFirstTimeMillis())).append('\"');
-			if (!active) {
-				result.append(" inactive");
-			}
-			result.append(" samples=" + getSampleCount());
-			return result.toString();
-		}
-
-		/**
-		 * Returns the number of times this resource instance has been sampled.
-		 *
-		 * @return
-		 */
-		public int getSampleCount() {
-			if (active) {
-				return archive.getTimeStamps().getSize() - firstTSidx;
-			} else {
-				return (lastTSidx + 1) - firstTSidx;
-			}
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		public StatArchiveFile getArchive() {
-			return this.archive;
-		}
-
-		/**
-		 *
-		 * @param stream
-		 */
-//        protected void dump(PrintWriter stream) {
-//            stream.println(name + ":"
-//                    + " file=" + getArchive().getFile()
-//                    + " id=" + id
-//                    + (active ? "" : " deleted")
-//                    + " start=" + archive.formatTimeMillis(getFirstTimeMillis()));
-//            for (int i = 0; i < values.length; i++) {
-//                values[i].dump(stream);
-//            }
-//        }
-		/**
-		 *
-		 * @param archive
-		 * @param uniqueId
-		 * @param name
-		 * @param id
-		 * @param type
-		 * @param loaded
-		 */
-		protected ResourceInst(StatArchiveFile archive, int uniqueId, String name, long id, ResourceType type, boolean loaded) {
-			this.loaded = loaded;
-			this.archive = archive;
-//      this.uniqueId = uniqueId;
-			this.name = name;
-			this.id = id;
-			assert (type != null);
-			this.type = type;
-			if (loaded) {
-				StatDescriptor[] stats = type.getStats();
-				this.values = new SimpleValue[stats.length];
-				for (int i = 0; i < stats.length; i++) {
-					if (archive.loadStat(stats[i], this)) {
-						this.values[i] = new SimpleValue(this, stats[i]);
-					} else {
-						this.values[i] = null;
-					}
-				}
-			} else {
-				this.values = null;
-			}
-		}
-
-		void matchSpec(StatSpec spec, List matchedValues) {
-			if (spec.typeMatches(this.type.getName())) {
-				if (spec.instanceMatches(this.getName(), this.getId())) {
-					for (int statIdx = 0; statIdx < values.length; statIdx++) {
-						if (values[statIdx] != null) {
-							if (spec.statMatches(values[statIdx].getDescriptor().getName())) {
-								matchedValues.add(values[statIdx]);
-							}
-						}
-					}
-				}
-			}
-		}
-
-		/**
-		 *
-		 * @param statOffset
-		 * @param v
-		 */
-		protected void initialValue(int statOffset, long v) {
-			if (this.values != null && this.values[statOffset] != null) {
-				this.values[statOffset].initialValue(v);
-			}
-		}
-
-		/**
-		 * Returns true if sample was added.
-		 *
-		 * @param statOffset
-		 * @param statDeltaBits
-		 * @return
-		 */
-		protected boolean addValueSample(int statOffset, long statDeltaBits) {
-			if (this.values != null && this.values[statOffset] != null) {
-				this.values[statOffset].prepareNextBits(statDeltaBits);
-				return true;
-			} else {
-				return false;
-			}
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		public boolean isLoaded() {
-			return this.loaded;
-		}
-
-		/**
-		 * Frees up any resources no longer needed after the archive file is closed.
-		 * Returns true if this guy is no longer needed.
-		 *
-		 * @return
-		 */
-		protected boolean close() {
-			if (isLoaded()) {
-				for (int i = 0; i < values.length; i++) {
-					if (values[i] != null) {
-						values[i].shrink();
-					}
-				}
-				return false;
-			} else {
-				return true;
-			}
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		protected int getFirstTimeStampIdx() {
-			return this.firstTSidx;
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		protected long[] getAllRawTimeStamps() {
-			return archive.getTimeStamps().getRawTimeStamps();
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		protected long getTimeBase() {
-			return archive.getTimeStamps().getBase();
-		}
-
-		/**
-		 * Returns an array of doubles containing the timestamps at which this
-		 * instances samples where taken. Each of these timestamps is the
-		 * difference, measured in milliseconds, between the sample time and
-		 * midnight, January 1, 1970 UTC. Although these values are double they can
-		 * safely be converted to <code>long</code> with no loss of information.
-		 *
-		 * @return
-		 */
-		public double[] getSnapshotTimesMillis() {
-			return archive.getTimeStamps().getTimeValuesSinceIdx(firstTSidx);
-		}
-
-		/**
-		 * Returns an array of statistic value descriptors. Each element of the
-		 * array describes the corresponding statistic this instance supports. The
-		 * <code>StatValue</code> instances can be used to obtain the actual sampled
-		 * values of the instances statistics.
-		 *
-		 * @return
-		 */
-		public StatValue[] getStatValues() {
-			return this.values;
-		}
-
-		/**
-		 * Gets the value of the stat in the current instance given the stat name.
-		 *
-		 * @param name the name of the stat to find in the current instance
-		 * @return the value that matches the name or null if the instance does not
-		 * have a stat of the given name
-		 *
-		 */
-		public StatValue getStatValue(String name) {
-			StatValue result = null;
-			StatDescriptor desc = getType().getStat(name);
-			if (desc != null) {
-				result = values[desc.getOffset()];
-			}
-			return result;
-		}
-
-		/**
-		 * Returns the name of this instance.
-		 *
-		 * @return
-		 */
-		public String getName() {
-			return this.name;
-		}
-
-		/**
-		 * Returns the id of this instance.
-		 *
-		 * @return
-		 */
-		public long getId() {
-			return this.id;
-		}
-
-		/**
-		 * Returns the difference, measured in milliseconds, between the time of the
-		 * instance's first sample and midnight, January 1, 1970 UTC.
-		 *
-		 * @return
-		 */
-		public long getFirstTimeMillis() {
-			return archive.getTimeStamps().getMilliTimeStamp(firstTSidx);
-		}
-
-		/**
-		 * Returns resource type of this instance.
-		 *
-		 * @return
-		 */
-		public ResourceType getType() {
-			return this.type;
-		}
-
-		/**
-		 *
-		 */
-		protected void makeInactive() {
-			this.active = false;
-			lastTSidx = archive.getTimeStamps().getSize() - 1;
-			close(); // this frees up unused memory now that no more samples
-		}
-
-		/**
-		 * Returns true if archive might still have future samples for this
-		 * instance.
-		 *
-		 * @return
-		 */
-		public boolean isActive() {
-			return this.active;
-		}
-
-		/**
-		 *
-		 */
-		protected void addTimeStamp() {
-			if (this.loaded) {
-				if (firstTSidx == -1) {
-					firstTSidx = archive.getTimeStamps().getSize() - 1;
-				}
-				for (int i = 0; i < values.length; i++) {
-					if (values[i] != null) {
-						values[i].addSample();
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 *
-	 */
-	public interface StatSpec extends ValueFilter {
-
-		/**
-		 * Causes all stats that matches this spec, in all archive files, to be
-		 * combined into a single global stat value.
-		 */
-		public static final int GLOBAL = 2;
-		/**
-		 * Causes all stats that matches this spec, in each archive file, to be
-		 * combined into a single stat value for each file.
-		 */
-		public static final int FILE = 1;
-		/**
-		 * No combination is done.
-		 */
-		public final int NONE = 0;
-
-		/**
-		 * Returns one of the following values:
-		 * {@link #GLOBAL}, {@link #FILE}, {@link #NONE}.
-		 *
-		 * @return
-		 */
-		public int getCombineType();
-	}
-
-	static private class ComboValue extends AbstractValue {
-
-		private final ResourceType type;
-		private final StatValue[] values;
-
-		/**
-		 * Creates a ComboValue by adding all the specified values together.
-		 */
-		ComboValue(List valueList) {
-			this((StatValue[]) valueList.toArray(new StatValue[valueList.size()]));
-		}
-
-		/**
-		 * Creates a ComboValue by adding all the specified values together.
-		 */
-		ComboValue(StatValue[] values) {
-			this.values = values;
-			this.filter = this.values[0].getFilter();
-			String typeName = this.values[0].getType().getName();
-			String statName = this.values[0].getDescriptor().getName();
-			int bestTypeIdx = 0;
-			for (int i = 1; i < this.values.length; i++) {
-				if (this.filter != this.values[i].getFilter()) {
-					/* I'm not sure why this would happen.
-					 * If it really can happen then this code should change
-					 * the filter since a client has no way to select values
-					 * based on the filter.
-					 */
-					throw new IllegalArgumentException("CANT_COMBINE_VALUES_WITH_DIFFERENT_FILTERS");
-				}
-				if (!typeName.equals(this.values[i].getType().getName())) {
-					throw new IllegalArgumentException("CANT_COMBINE_VALUES_WITH_DIFFERENT_TYPES");
-				}
-				if (!statName.equals(this.values[i].getDescriptor().getName())) {
-					throw new IllegalArgumentException("CANT_COMBINE_DIFFERENT_STATS");
-				}
-				if (this.values[i].getDescriptor().isCounter()) {
-					// its a counter which is not the default
-					if (!this.values[i].getDescriptor().isLargerBetter()) {
-						// this guy has non-defaults for both use him
-						bestTypeIdx = i;
-					} else if (this.values[bestTypeIdx].getDescriptor().isCounter()
-									== this.values[bestTypeIdx].getDescriptor().isLargerBetter()) {
-                        // as long as we haven't already found a guy with defaults
-						// make this guy the best type
-						bestTypeIdx = i;
-					}
-				} else {
-					// its a gauge, see if it has a non-default largerBetter
-					if (this.values[i].getDescriptor().isLargerBetter()) {
-						// as long as we haven't already found a guy with defaults
-						if (this.values[bestTypeIdx].getDescriptor().isCounter()
-										== this.values[bestTypeIdx].getDescriptor().isLargerBetter()) {
-							// make this guy the best type
-							bestTypeIdx = i;
-						}
-					}
-				}
-			}
-			this.type = this.values[bestTypeIdx].getType();
-			this.descriptor = this.values[bestTypeIdx].getDescriptor();
-		}
-
-		private ComboValue(ComboValue original, long startTime, long endTime) {
-			this.startTime = startTime;
-			this.endTime = endTime;
-			this.type = original.getType();
-			this.descriptor = original.getDescriptor();
-			this.filter = original.getFilter();
-			this.values = new StatValue[original.values.length];
-			for (int i = 0; i < this.values.length; i++) {
-				this.values[i] = original.values[i].createTrimmed(startTime, endTime);
-			}
-		}
-
-		public StatValue createTrimmed(long startTime, long endTime) {
-			if (startTime == this.startTime && endTime == this.endTime) {
-				return this;
-			} else {
-				return new ComboValue(this, startTime, endTime);
-			}
-		}
-
-		public ResourceType getType() {
-			return this.type;
-		}
-
-		public ResourceInst[] getResources() {
-			HashSet set = new HashSet();
-			for (int i = 0; i < values.length; i++) {
-				set.addAll(Arrays.asList(values[i].getResources()));
-			}
-			ResourceInst[] result = new ResourceInst[set.size()];
-			return (ResourceInst[]) set.toArray(result);
-		}
-
-		public boolean hasValueChanged() {
-			return true;
-		}
-
-		public static boolean closeEnough(long v1, long v2, long delta) {
-			return (v1 == v2) || ((Math.abs(v1 - v2) / 2) <= delta);
-		}
-
-		/**
-		 * Return true if v is closer to prev. Return false if v is closer to next.
-		 * Return true if v is the same distance from both.
-		 */
-		public static boolean closer(long v, long prev, long next) {
-			return Math.abs(v - prev) <= Math.abs(v - next);
-		}
-
-		/**
-		 * Return true if the current ts must be inserted instead of being mapped to
-		 * the tsAtInsertPoint
-		 */
-		private static boolean mustInsert(int nextIdx, long[] valueTimeStamps, long tsAtInsertPoint) {
-			return (nextIdx < valueTimeStamps.length)
-							&& (valueTimeStamps[nextIdx] <= tsAtInsertPoint);
-		}
-
-		public long[] getRawAbsoluteTimeStampsWithSecondRes() {
-			return getRawAbsoluteTimeStamps();
-		}
-
-		public long[] getRawAbsoluteTimeStamps() {
-			if (values.length == 0) {
-				return new long[0];
-			}
-//       for (int i=0; i < values.length; i++) {
-//         System.out.println("DEBUG: inst# " + i + " has "
-//                            + values[i].getRawAbsoluteTimeStamps().length
-//                            + " timestamps");
-//       }
-			long[] valueTimeStamps = values[0].getRawAbsoluteTimeStamps();
-			int tsCount = valueTimeStamps.length + 1;
-			long[] ourTimeStamps = new long[(tsCount * 2) + 1];
-			System.
-							arraycopy(valueTimeStamps, 0, ourTimeStamps, 0, valueTimeStamps.length);
-			// Note we add a MAX sample to make the insert logic simple
-			ourTimeStamps[valueTimeStamps.length] = Long.MAX_VALUE;
-			for (int i = 1; i < values.length; i++) {
-				valueTimeStamps = values[i].getRawAbsoluteTimeStamps();
-				if (valueTimeStamps.length == 0) {
-					continue;
-				}
-				int ourIdx = 0;
-				int j = 0;
-				long tsToInsert = valueTimeStamps[0] - 1000; // default to 1 second
-				if (valueTimeStamps.length > 1) {
-					tsToInsert = valueTimeStamps[0] - (valueTimeStamps[1] - valueTimeStamps[0]);
-				}
-                // tsToInsert is now initialized to a value that we can pretend
-				// was the previous timestamp inserted.
-				while (j < valueTimeStamps.length) {
-					long timeDelta = (valueTimeStamps[j] - tsToInsert) / 2;
-					tsToInsert = valueTimeStamps[j];
-					long tsAtInsertPoint = ourTimeStamps[ourIdx];
-					while (tsToInsert > tsAtInsertPoint
-									&& !closeEnough(tsToInsert, tsAtInsertPoint, timeDelta)) {
-//             System.out.println("DEBUG: skipping " + ourIdx + " because it was not closeEnough");
-						ourIdx++;
-						tsAtInsertPoint = ourTimeStamps[ourIdx];
-					}
-					if (closeEnough(tsToInsert, tsAtInsertPoint, timeDelta)
-									&& !mustInsert(j + 1, valueTimeStamps, tsAtInsertPoint)) {
-						// It was already in our list so just go to the next one
-						j++;
-						ourIdx++; // never put the next timestamp at this index
-						while (!closer(tsToInsert, ourTimeStamps[ourIdx - 1], ourTimeStamps[ourIdx])
-										&& !mustInsert(j, valueTimeStamps, ourTimeStamps[ourIdx])) {
-//               System.out.println("DEBUG: skipping mergeTs[" + (ourIdx-1) + "]="
-//                                  + tsAtInsertPoint + " because it was closer to the next one");
-							ourIdx++; // it is closer to the next one so skip forward on more
-						}
-					} else {
-						// its not in our list so add it
-						int endRunIdx = j + 1;
-						while (endRunIdx < valueTimeStamps.length
-										&& valueTimeStamps[endRunIdx] < tsAtInsertPoint
-										&& !closeEnough(valueTimeStamps[endRunIdx], tsAtInsertPoint, timeDelta)) {
-							endRunIdx++;
-						}
-						int numToCopy = endRunIdx - j;
-//             System.out.println("DEBUG: tsToInsert=" + tsToInsert
-//                                + " tsAtInsertPoint=" + tsAtInsertPoint
-//                                + " timeDelta=" + timeDelta
-//                                + " vDelta=" + (Math.abs(tsToInsert-tsAtInsertPoint)/2)
-//                                + " numToCopy=" + numToCopy);
-//             if (j > 0) {
-//               System.out.println("DEBUG: prevTsToInsert=" + valueTimeStamps[j-1]);
-//             }
-//             if (ourIdx > 0) {
-//               System.out.println("DEBUG ourTimeStamps[" + (ourIdx-1) + "]=" + ourTimeStamps[ourIdx-1]);
-//             }
-
-//             if (numToCopy > 1) {
-//               System.out.println("DEBUG: endRunTs=" + valueTimeStamps[endRunIdx-1]);
-//             }
-						if (tsCount + numToCopy > ourTimeStamps.length) {
-							// grow our timestamp array
-							long[] tmp = new long[(tsCount + numToCopy) * 2];
-							System.arraycopy(ourTimeStamps, 0, tmp, 0, tsCount);
-							ourTimeStamps = tmp;
-						}
-						// make room for insert
-						System.arraycopy(ourTimeStamps, ourIdx,
-										ourTimeStamps, ourIdx + numToCopy,
-										tsCount - ourIdx);
-						// insert the elements
-						if (numToCopy == 1) {
-							ourTimeStamps[ourIdx] = valueTimeStamps[j];
-						} else {
-							System.arraycopy(valueTimeStamps, j,
-											ourTimeStamps, ourIdx,
-											numToCopy);
-						}
-						ourIdx += numToCopy;
-						tsCount += numToCopy;
-						// skip over all inserted elements
-						j += numToCopy;
-					}
-
-				}
-			}
-
-			tsCount--;
-			{
-				int startIdx = 0;
-				int endIdx = tsCount - 1;
-				if (startTime != -1) {
-
-					assert (ourTimeStamps[startIdx] >= startTime);
-				}
-				if (endTime != -1) {
-
-					assert (endIdx == startIdx - 1 || ourTimeStamps[endIdx] < endTime);
-				}
-				tsCount = (endIdx - startIdx) + 1;
-
-				// shrink and trim our timestamp array
-				long[] tmp = new long[tsCount];
-				System.arraycopy(ourTimeStamps, startIdx, tmp, 0, tsCount);
-				ourTimeStamps = tmp;
-			}
-			return ourTimeStamps;
-		}
-
-		public double[] getRawSnapshots() {
-			return getRawSnapshots(getRawAbsoluteTimeStamps());
-		}
-
-		/**
-		 * Returns true if the timeStamp at curIdx is the one that ts is the closest
-		 * to. We know that timeStamps[curIdx-1], if it exists, was not the closest.
-		 */
-		private static boolean isClosest(long ts, long[] timeStamps, int curIdx) {
-			if (curIdx >= (timeStamps.length - 1)) {
-				// curIdx is the last one so it must be the closest
-				return true;
-			}
-			if (ts == timeStamps[curIdx]) {
-				return true;
-			}
-			return closer(ts, timeStamps[curIdx], timeStamps[curIdx + 1]);
-		}
-
-		public boolean isTrimmedLeft() {
-			for (int i = 0; i < this.values.length; i++) {
-				if (this.values[i].isTrimmedLeft()) {
-					return true;
-				}
-			}
-			return false;
-		}
-
-		private double[] getRawSnapshots(long[] ourTimeStamps) {
-			double[] result = new double[ourTimeStamps.length];
-//       System.out.println("DEBUG: producing " + result.length + " values");
-			if (result.length > 0) {
-				for (int i = 0; i < values.length; i++) {
-					long[] valueTimeStamps = values[i].getRawAbsoluteTimeStamps();
-					double[] valueSnapshots = values[i].getRawSnapshots();
-					double currentValue = 0.0;
-					int curIdx = 0;
-					if (values[i].isTrimmedLeft()) {
-						currentValue = valueSnapshots[0];
-					}
-					for (int j = 0; j < valueSnapshots.length; j++) {
-						while (!isClosest(valueTimeStamps[j], ourTimeStamps, curIdx)) {
-							if (descriptor.isCounter()) {
-								result[curIdx] += currentValue;
-							}
-							curIdx++;
-						}
-						if (curIdx >= result.length) {
-							// Add this to workaround bug 30288
-							int samplesSkipped = valueSnapshots.length - j;
-							StringBuffer msg = new StringBuffer(100);
-							msg.append("WARNING: dropping last ");
-							if (samplesSkipped == 1) {
-								msg.append("sample because it");
-							} else {
-								msg.append(samplesSkipped).append(" samples because they");
-							}
-							msg.append(" could not fit in the merged result.");
-							System.out.println(msg.toString());
-							break;
-						}
-						currentValue = valueSnapshots[j];
-						result[curIdx] += currentValue;
-						curIdx++;
-					}
-					if (descriptor.isCounter()) {
-						for (int j = curIdx; j < result.length; j++) {
-							result[j] += currentValue;
-						}
-					}
-				}
-			}
-			return result;
-		}
-
-		public double[] getSnapshots() {
-			double[] result;
-			if (filter != FILTER_NONE) {
-				long[] timestamps = getRawAbsoluteTimeStamps();
-				double[] snapshots = getRawSnapshots(timestamps);
-				if (snapshots.length <= 1) {
-					return new double[0];
-				}
-				result = new double[snapshots.length - 1];
-				for (int i = 0; i < result.length; i++) {
-					double valueDelta = snapshots[i + 1] - snapshots[i];
-					if (filter == FILTER_PERSEC) {
-						long timeDelta = timestamps[i + 1] - timestamps[i];
-						result[i] = valueDelta / (timeDelta / 1000.0);
-
-					} else {
-						result[i] = valueDelta;
-					}
-				}
-			} else {
-				result = getRawSnapshots();
-			}
-			calcStats(result);
-			return result;
-		}
-	}
-
-	private static class RawStatSpec implements StatSpec {
-
-		private final StatSpec spec;
-
-		RawStatSpec(StatSpec wrappedSpec) {
-			this.spec = wrappedSpec;
-		}
-
-		public int getCombineType() {
-			return StatSpec.NONE;
-		}
-
-		public boolean typeMatches(String typeName) {
-			return spec.typeMatches(typeName);
-		}
-
-		public boolean statMatches(String statName) {
-			return spec.statMatches(statName);
-		}
-
-		public boolean instanceMatches(String textId, long numericId) {
-			return spec.instanceMatches(textId, numericId);
-		}
-
-		public boolean archiveMatches(File archive) {
-			return spec.archiveMatches(archive);
-		}
-	}
-
-	/**
-	 *
-	 */
-	static public class StatDescriptor {
-
-		private boolean loaded;
-		private String name;
-		private final int offset;
-		private final boolean isCounter;
-		private final boolean largerBetter;
-		private final byte typeCode;
-		private String units;
-		private String desc;
-
-		/**
-		 *
-		 * @param stream
-		 */
-		protected void dump(PrintWriter stream) {
-			stream.println("  " + name + ": type=" + typeCode + " offset=" + offset
-							+ (isCounter ? " counter" : "")
-							+ " units=" + units
-							+ " largerBetter=" + largerBetter
-							+ " desc=" + desc);
-		}
-
-		/**
-		 *
-		 * @param name
-		 * @param offset
-		 * @param isCounter
-		 * @param largerBetter
-		 * @param typeCode
-		 * @param units
-		 * @param desc
-		 */
-		protected StatDescriptor(String name, int offset, boolean isCounter,
-						boolean largerBetter,
-						byte typeCode, String units, String desc) {
-			this.loaded = true;
-			this.name = name;
-			this.offset = offset;
-			this.isCounter = isCounter;
-			this.largerBetter = largerBetter;
-			this.typeCode = typeCode;
-			this.units = units;
-			this.desc = desc;
-		}
-
-		/**
-		 *
-		 * @return
-		 */
-		public boolean isLoaded() {
-			return this.loaded;
-		}
-
-		void unload() {
-			this.loaded = false;
-			this.name = null;
-			this.units = null;
-			this.desc = null;
-		}
-
-		/**
-		 * Returns the type code of this statistic. It will be one of the following
-		 * values:
-		 * <ul>
-		 * <li> {@link #BOOLEAN_CODE}
-		 * <li> {@link #WCHAR_CODE}
-		 * <li> {@link #CHAR_CODE}
-		 * <li> {@link #BYTE_CODE}
-		 * <li> {@link #SHORT_CODE}
-		 * <li> {@link #INT_CODE}
-		 * <li> {@link #LONG_CODE}
-		 * <li> {@link #FLOAT_CODE}
-		 * <li> {@link #DOUBLE_CODE}
-		 * </ul>
-		 *
-		 * @return
-		 */
-		public byte getTypeCode() {
-			return this.typeCode;
-		}
-
-		/**
-		 * Returns the name of this statistic.
-		 *
-		 * @return
-		 */
-		public String getName() {
-			return this.name;
-		}
-
-		/**
-		 * Returns true if this statistic's value will always increase.
-		 *
-		 * @return
-		 */
-		public boolean isCounter() {
-			return this.isCounter;
-		}
-
-		/**
-		 * Returns true if larger values indicate better performance.
-		 *
-		 * @return
-		 */
-		public boolean isLargerBetter() {
-			return this.largerBetter;
-		}
-
-		/**
-		 * Returns a string that describes the units this statistic measures.
-		 *
-		 * @return
-		 */
-		public String getUnits() {
-			return this.units;
-		}
-
-		/**
-		 * Returns a textual description of this statistic.
-		 *
-		 * @return
-		 */
-		public String getDescription() {
-			return this.desc;
-		}
-
-		/**
-		 * Returns the offset of this stat in its type.
-		 *
-		 * @return
-		 */
-		public int getOffset() {
-			return this.offset;
-		}
-	}
-
-	/**
-	 *
-	 */
-	static public interface StatValue {
-
-		/**
-		 * {@link StatArchiveReader.StatValue} filter that causes the statistic
-		 * values to be unfiltered. This causes the raw values written to the
-		 * archive to be used.
-		 * <p>
-		 * This is the default filter for non-counter statistics. To determine if a
-		 * statistic is not a counter use
-		 * {@link StatArchiveReader.StatDescriptor#isCounter}.
-		 */
-		public static final int FILTER_NONE = 0;
-		/**
-		 * {@link StatArchiveReader.StatValue} filter that causes the statistic
-		 * values to be filtered to reflect how often they change per second. Since
-		 * the difference between two samples is used to calculate the value this
-		 * causes the {@link StatArchiveReader.StatValue} to have one less sample
-		 * than {@link #FILTER_NONE}. The instance time stamp that does not have a
-		 * per second value is the instance's first time stamp {@link
-		 * StatArchiveReader.ResourceInst#getFirstTimeMillis}.
-		 * <p>
-		 * This is the default filter for counter statistics. To determine if a
-		 * statistic is a counter use
-		 * {@link StatArchiveReader.StatDescriptor#isCounter}.
-		 */
-		public static final int FILTER_PERSEC = 1;
-		/**
-		 * {@link StatArchiveReader.StatValue} filter that causes the statistic
-		 * values to be filtered to reflect how much they changed between sample
-		 * periods. Since the difference between two samples is used to calculate
-		 * the value this causes the {@link StatArchiveReader.StatValue} to have one
-		 * less sample than {@link
-		 * #FILTER_NONE}. The instance time stamp that does not have a per second
-		 * value is the instance's first time stamp {@link
-		 * StatArchiveReader.ResourceInst#getFirstTimeMillis}.
-		 */
-		public static final int FILTER_PERSAMPLE = 2;
-
-		/**
-		 * Creates and returns a trimmed version of this stat value. Any samples
-		 * taken before <code>startTime</code> and after <code>endTime</code> are
-		 * discarded from the resulting value. Set a time parameter to
-		 * <code>-1</code> to not trim that side.
-		 *
-		 * @param startTime
-		 * @param endTime
-		 * @return
-		 */
-		public StatValue createTrimmed(long startTime, long endTime);
-
-		/**
-		 * Returns true if value has data that has been trimmed off it by a start
-		 * timestamp.
-		 *
-		 * @return
-		 */
-		public boolean isTrimmedLeft();
-
-		/**
-		 * Gets the {@link StatArchiveReader.ResourceType type} of the resources
-		 * that this value belongs to.
-		 *
-		 * @return
-		 */
-		public ResourceType getType();
-
-		/**
-		 * Gets the {@link StatArchiveReader.ResourceInst resources} that this value
-		 * belongs to.
-		 *
-		 * @return
-		 */
-		public ResourceInst[] getResources();
-
-		/**
-		 * Returns an array of timestamps for each unfiltered snapshot in this
-		 * value. Each returned time stamp is the number of millis since midnight,
-		 * Jan 1, 1970 UTC.
-		 *
-		 * @return
-		 */
-		public long[] getRawAbsoluteTimeStamps();
-
-		/**
-		 * Returns an array of timestamps for each unfiltered snapshot in this
-		 * value. Each returned time stamp is the number of millis since midnight,
-		 * Jan 1, 1970 UTC. The resolution is seconds.
-		 *
-		 * @return
-		 */
-		public long[] getRawAbsoluteTimeStampsWithSecondRes();
-
-		/**
-		 * Returns an array of doubles containing the unfiltered value of this
-		 * statistic for each point in time that it was sampled.
-		 *
-		 * @return
-		 */
-		public double[] getRawSnapshots();
-
-		/**
-		 * Returns an array of doubles containing the filtered value of this
-		 * statistic for each point in time that it was sampled.
-		 *
-		 * @return
-		 */
-		public double[] getSnapshots();
-
-		/**
-		 * Returns the number of samples taken of this statistic's value.
-		 *
-		 * @return
-		 */
-		public int getSnapshotsSize();
-
-		/**
-		 * Returns the smallest of all the samples taken of this statistic's value.
-		 *
-		 * @return
-		 */
-		public double getSnapshotsMinimum();
-
-		/**
-		 * Returns the largest of all the samples taken of this statistic's value.
-		 *
-		 * @return
-		 */
-		public double getSnapshotsMaximum();
-
-		/**
-		 * Returns the average of all the samples taken of this statistic's value.
-		 *
-		 * @return
-		 */
-		public double getSnapshotsAverage();
-
-		/**
-		 * Returns the standard deviation of all the samples taken of this
-		 * statistic's value.
-		 *
-		 * @return
-		 */
-		public double getSnapshotsStandardDeviation();
-
-		/**
-		 * Returns true if sample whose value was different from previous values has
-		 * been added to this StatValue since the last time this method was called.
-		 *
-		 * @return
-		 */
-		public boolean hasValueChanged();
-
-		/**
-		 * Returns the current filter used to calculate this statistic's values. It
-		 * will be one of these values:
-		 * <ul>
-		 * <li> {@link #FILTER_NONE}
-		 * <li> {@link #FILTER_PERSAMPLE}
-		 * <li> {@link #FILTER_PERSEC}
-		 * </ul>
-		 *
-		 * @return
-		 */
-		public int getFilter();
-
-		/**
-		 * Sets the current filter used to calculate this statistic's values. The
-		 * default filter is {@link #FILTER_NONE} unless the statistic is a counter,
-		 * {@link StatArchiveReader.StatDescriptor#isCounter}, in which case its
-		 * {@link #FILTER_PERSEC}.
-		 *
-		 * @param filter It must be one of these values:
-		 * <ul>
-		 * <li> {@link #FILTER_NONE}
-		 * <li> {@link #FILTER_PERSAMPLE}
-		 * <li> {@link #FILTER_PERSEC}
-		 * </ul>
-		 * @throws IllegalArgumentException if <code>filter</code> is not a valid
-		 * filter constant.
-		 */
-		public void setFilter(int filter);
-
-		/**
-		 * Returns a description of this statistic.
-		 *
-		 * @return
-		 */
-		public StatDescriptor getDescriptor();
-	}
-
-	/**
-	 *
-	 */
-	static protected abstract class BitInterval {
-
-		/**
-		 * Returns number of items added to values
-		 */
-		abstract int fill(double[] values, int valueOffset, int typeCode, int skipCount);
-
-       // abstract void dump(PrintWriter stream);
-		abstract boolean attemptAdd(long addBits, long addInterval, int addCount);
-
-//        int getMemoryUsed() {
-//            return 0;
-//        }
-		/**
-		 *
-		 */
-		protected int count;
-
-		/**
-		 *
-		 * @return
-		 */
-		public final int getSampleCount() {
-			return this.count;
-		}
-
-		static BitInterval create(long bits, long interval, int count) {
-			if (interval == 0) {
-				if (bits <= Integer.MAX_VALUE && bits >= Integer.MIN_VALUE) {
-					return new BitZeroIntInterval((int) bits, count);
-				} else {
-					return new BitZeroLongInterval(bits, count);
-				}
-			} else if (count <= 3) {
-				if (interval <= Byte.MAX_VALUE && interval >= Byte.MIN_VALUE) {
-					return new BitExplicitByteInterval(bits, interval, count);
-				} else if (interval <= Short.MAX_VALUE && interval >= Short.MIN_VALUE) {
-					return new BitExplicitShortInterval(bits, interval, count);
-				} else if (interval <= Integer.MAX_VALUE && interval >= Integer.MIN_VALUE) {
-					return new BitExplicitIntInterval(bits, interval, count);
-				} else {
-					return new BitExplicitLongInterval(bits, interval, count);
-				}
-			} else {
-				boolean smallBits = false;
-				boolean smallInterval = false;
-				if (bits <= Integer.MAX_VALUE && bits >= Integer.MIN_VALUE) {
-					smallBits = true;
-				}
-				if (interval <= Integer.MAX_VALUE && interval >= Integer.MIN_VALUE) {
-					smallInterval = true;
-				}
-				if (smallBits) {
-					if (smallInterval) {
-						return new BitNonZeroIntIntInterval((int) bits, (int) interval, count);
-					} else {
-						return new BitNonZeroIntLongInterval((int) bits, interval, count);
-					}
-				} else {
-					if (smallInterval) {
-						return new BitNonZeroLongIntInterval(bits, (int) interval, count);
-					} else {
-						return new BitNonZeroLongLongInterval(bits, interval, count);
-					}
-				}
-			}
-		}
-	}
-
-	static private class BitNonZeroIntIntInterval extends BitNonZeroInterval {
-
-		int bits;
-		int interval;
-
-//        @Override
-//        int getMemoryUsed() {
-//            return super.getMemoryUsed() + 8;
-//        }
-		@Override
-		long getBits() {
-			return this.bits;
-		}
-
-		@Override
-		long getInterval() {
-			return this.interval;
-		}
-
-		BitNonZeroIntIntInterval(int bits, int interval, int count) {
-			super(count);
-			this.bits = bits;
-			this.interval = interval;
-		}
-	}
-
-	static private class BitNonZeroIntLongInterval extends BitNonZeroInterval {
-
-		int bits;
-		long interval;
-
-//        @Override
-//        int getMemoryUsed() {
-//            return super.getMemoryUsed() + 12;
-//        }
-		@Override
-		long getBits() {
-			return this.bits;
-		}
-
-		@Override
-		long getInterval() {
-			return this.interval;
-		}
-
-		BitNonZeroIntLongInterval(int bits, long interval, int count) {
-			super(count);
-			this.bits = bits;
-			this.interval = interval;
-		}
-	}
-
-	static private class BitNonZeroLongIntInterval extends BitNonZeroInterval {
-
-		long bits;
-		int interval;
-
-//        @Override
-//        int getMemoryUsed() {
-//            return super.getMemoryUsed() + 12;
-//        }
-		@Override
-		long getBits() {
-			return this.bits;
-		}
-
-		@Override
-		long getInterval() {
-			return this.interval;
-		}
-
-		BitNonZeroLongIntInterval(long bits, int interval, int count) {
-			super(count);
-			this.bits = bits;
-			this.interval = interval;
-		}
-	}
-
-	static private class BitNonZeroLongLongInterval extends BitNonZeroInterval {
-
-		long bits;
-		long interval;
-
-//        @Override
-//        int getMemoryUsed() {
-//            return super.getMemoryUsed() + 16;
-//        }
-		@Override
-		long getBits() {
-			return this.bits;
-		}
-
-		@Override
-		long getInterval() {
-			return this.interval;
-		}
-
-		BitNonZeroLongLongInterval(long bits, long interval, int count) {
-			super(count);
-			this.bits = bits;
-			this.interval = interval;
-		}
-	}
-
-	static private abstract class BitZeroInterval extends BitInterval {
-
-//        @Override
-//        int getMemoryUsed() {
-//            return super.getMemoryUsed() + 4;
-//        }
-		abstract long getBits();
-
-		@Override
-		int fill(double[] values, int valueOffset, int typeCode, int skipCount) {
-			int fillcount = values.length - valueOffset; // space left in values
-			int maxCount = count - skipCount; // maximum values this i

<TRUNCATED>


[4/5] incubator-geode git commit: GEODE-340 Deleting old code

Posted by vf...@apache.org.
GEODE-340 Deleting old code

Removing old swing based version. Clean up of code to provide
focus on JavaFX version.


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

Branch: refs/heads/feature/GEODE-78
Commit: b9e0d9c09b06d61dc302a93ca73dea23d32644e2
Parents: f29845a
Author: Vince Ford <vf...@apache.org>
Authored: Wed Nov 25 13:33:11 2015 -0800
Committer: Vince Ford <vf...@apache.org>
Committed: Wed Nov 25 13:33:11 2015 -0800

----------------------------------------------------------------------
 .../main/java/com/pivotal/jvsd/AboutJVSD.form   |   69 -
 .../main/java/com/pivotal/jvsd/AboutJVSD.java   |  104 -
 .../pivotal/jvsd/ChartMenuActionListener.java   |   39 -
 .../java/com/pivotal/jvsd/ChartSidePanel.form   |  325 --
 .../src/main/java/com/pivotal/jvsd/HUD.form     |  113 -
 .../src/main/java/com/pivotal/jvsd/HUD.java     |   99 -
 .../java/com/pivotal/jvsd/StatValueWrapper.java |   45 -
 .../com/pivotal/jvsd/StatsTableColumnModel.java |   95 -
 .../java/com/pivotal/jvsd/StatsTableModel.java  |   61 -
 .../com/pivotal/jvsd/VSDConnectionsDialog.form  |   35 -
 .../com/pivotal/jvsd/VSDConnectionsDialog.java  |   66 -
 .../java/com/pivotal/jvsd/VSDDataWindow.java    |    9 -
 .../java/com/pivotal/jvsd/VSDHelpWindow.form    |   77 -
 .../java/com/pivotal/jvsd/VSDHelpWindow.java    |   90 -
 .../java/com/pivotal/jvsd/VSDMainWindow.java    |  417 --
 .../com/pivotal/jvsd/VSDPreferencesDialog.form  |   35 -
 .../com/pivotal/jvsd/VSDPreferencesDialog.java  |   66 -
 .../com/pivotal/jvsd/VSDStatInfoWindow.java     |    9 -
 .../java/com/pivotal/jvsd/VSDStatsPane.java     |   53 -
 .../java/com/pivotal/jvsd/VisualDisplayApp.java |   88 -
 .../com/pivotal/jvsd/stats/GraphTemplates.java  |    9 -
 .../java/com/pivotal/jvsd/stats/IssueRules.java |    9 -
 .../pivotal/jvsd/stats/StatArchiveFormat.java   |  190 -
 .../com/pivotal/jvsd/stats/StatFileManager.java |  125 -
 .../com/pivotal/jvsd/stats/StatFileParser.java  | 3591 ------------------
 .../com/pivotal/jvsd/stats/StatFileWrapper.java |   93 -
 .../java/com/pivotal/jvsd/stats/Utility.java    |  172 +-
 27 files changed, 86 insertions(+), 5998 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.form
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.form b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.form
deleted file mode 100644
index f71fcce..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.form
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
-  <Properties>
-    <Property name="defaultCloseOperation" type="int" value="2"/>
-    <Property name="locationByPlatform" type="boolean" value="true"/>
-    <Property name="modal" type="boolean" value="true"/>
-    <Property name="undecorated" type="boolean" value="true"/>
-  </Properties>
-  <SyntheticProperties>
-    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
-    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
-  </SyntheticProperties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="1" attributes="0">
-              <EmptySpace pref="313" max="32767" attributes="0"/>
-              <Component id="OKButton" min="-2" pref="75" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-          </Group>
-          <Group type="102" alignment="0" attributes="0">
-              <EmptySpace min="-2" pref="48" max="-2" attributes="0"/>
-              <Component id="AboutLabel" min="-2" pref="310" max="-2" attributes="0"/>
-              <EmptySpace pref="42" max="32767" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="1" attributes="0">
-              <EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
-              <Component id="AboutLabel" min="-2" pref="213" max="-2" attributes="0"/>
-              <EmptySpace pref="28" max="32767" attributes="0"/>
-              <Component id="OKButton" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Component class="javax.swing.JButton" name="OKButton">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="OK"/>
-        <Property name="selected" type="boolean" value="true"/>
-      </Properties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="OKButtonActionPerformed"/>
-      </Events>
-    </Component>
-    <Component class="javax.swing.JLabel" name="AboutLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="&lt;html&gt; &lt;body&gt; &lt;b&gt;JVSD&lt;/b&gt;&lt;br&gt; Version 0.01&lt;br&gt;&lt;br&gt;  This tool is provided as-is with no support or warranty. Use at your own risk.&lt;br&gt;&lt;br&gt; If you encounter issues or want to request features - please send email to:&lt;br&gt;&lt;br&gt; vincef@vmware.com &lt;/body&gt; &lt;/html&gt;   "/>
-      </Properties>
-    </Component>
-  </SubComponents>
-</Form>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.java
deleted file mode 100644
index 2e20d8a..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/AboutJVSD.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * AboutJVSD.java
- *
- * Created on Dec 16, 2010, 3:35:39 PM
- */
-package com.pivotal.jvsd;
-
-/**
- *
- * @author Vince Ford
- */
-public class AboutJVSD extends javax.swing.JDialog {
-
-	/**
-	 * Creates new form AboutJVSD
-	 */
-	public AboutJVSD(java.awt.Frame parent, boolean modal) {
-		super(parent, modal);
-		initComponents();
-	}
-
-	/**
-	 * This method is called from within the constructor to initialize the form.
-	 * WARNING: Do NOT modify this code. The content of this method is always
-	 * regenerated by the Form Editor.
-	 */
-	@SuppressWarnings("unchecked")
-  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-  private void initComponents() {
-
-    OKButton = new javax.swing.JButton();
-    AboutLabel = new javax.swing.JLabel();
-
-    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-    setLocationByPlatform(true);
-    setModal(true);
-    setUndecorated(true);
-
-    OKButton.setText("OK");
-    OKButton.setSelected(true);
-    OKButton.addActionListener(new java.awt.event.ActionListener() {
-      public void actionPerformed(java.awt.event.ActionEvent evt) {
-        OKButtonActionPerformed(evt);
-      }
-    });
-
-    AboutLabel.setText("<html> <body> <b>JVSD</b><br> Version 0.01<br><br>  This tool is provided as-is with no support or warranty. Use at your own risk.<br><br> If you encounter issues or want to request features - please send email to:<br><br> vincef@vmware.com </body> </html>   ");
-
-    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
-    getContentPane().setLayout(layout);
-    layout.setHorizontalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-        .addContainerGap(313, Short.MAX_VALUE)
-        .addComponent(OKButton, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
-        .addContainerGap())
-      .addGroup(layout.createSequentialGroup()
-        .addGap(48, 48, 48)
-        .addComponent(AboutLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)
-        .addContainerGap(42, Short.MAX_VALUE))
-    );
-    layout.setVerticalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
-        .addGap(20, 20, 20)
-        .addComponent(AboutLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)
-        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
-        .addComponent(OKButton)
-        .addContainerGap())
-    );
-
-    pack();
-  }// </editor-fold>//GEN-END:initComponents
-
-    private void OKButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_OKButtonActionPerformed
-			if (evt.getSource() == OKButton) {
-				setVisible(false);
-				this.dispose();
-			}
-    }//GEN-LAST:event_OKButtonActionPerformed
-
-	/**
-	 * @param args the command line arguments
-	 */
-	public static void main(String args[]) {
-		java.awt.EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				AboutJVSD dialog = new AboutJVSD(new javax.swing.JFrame(), true);
-				dialog.addWindowListener(new java.awt.event.WindowAdapter() {
-					public void windowClosing(java.awt.event.WindowEvent e) {
-						System.exit(0);
-					}
-				});
-				dialog.setVisible(true);
-			}
-		});
-	}
-
-  // Variables declaration - do not modify//GEN-BEGIN:variables
-  private javax.swing.JLabel AboutLabel;
-  private javax.swing.JButton OKButton;
-  // End of variables declaration//GEN-END:variables
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartMenuActionListener.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartMenuActionListener.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartMenuActionListener.java
deleted file mode 100644
index ba0f717..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartMenuActionListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.pivotal.jvsd;
-
-import com.pivotal.jvsd.fx.VSDChartWindow;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-import javax.swing.JMenuItem;
-
-/**
- *
- * @author Vince Ford
- */
-public class ChartMenuActionListener implements ActionListener {
-
-	ArrayList<VSDChartWindow> chartWindows = null;
-
-	ChartMenuActionListener(ArrayList<VSDChartWindow> chartWindows) {
-		this.chartWindows = chartWindows;
-	}
-
-	@Override
-	public void actionPerformed(ActionEvent e) {
-		JMenuItem menuitem = (JMenuItem) e.getSource();
-//		for (JFrame win : chartWindows) {
-//			if (win.getTitle().equals(menuitem.getText())) {
-//                //silly but works as for some reason the windows dont' get
-//				//pulled forward on on some platforms unless visibility changes
-//				win.setVisible(false);
-//				win.setVisible(true);
-//				//set focus
-//				win.isActive();
-//				win.toFront();
-//				break;
-//			}
-//		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartSidePanel.form
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartSidePanel.form b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartSidePanel.form
deleted file mode 100644
index 3b3964c..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/ChartSidePanel.form
+++ /dev/null
@@ -1,325 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="0" attributes="0">
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="0" attributes="0">
-                  <Group type="102" attributes="0">
-                      <Group type="103" groupAlignment="0" attributes="0">
-                          <Component id="graphLeftAxisCheckBox" alignment="0" max="32767" attributes="0"/>
-                          <Component id="jSeparator1" alignment="0" max="32767" attributes="0"/>
-                      </Group>
-                      <EmptySpace max="-2" attributes="0"/>
-                  </Group>
-                  <Group type="102" alignment="1" attributes="0">
-                      <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                      <Group type="103" groupAlignment="0" attributes="0">
-                          <Component id="descriptionLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Component id="unitsLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Component id="stdDevLabel" alignment="0" min="-2" pref="56" max="-2" attributes="0"/>
-                          <Component id="meanLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Component id="maxLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Component id="minLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Component id="samplesLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Component id="scalarLabel" alignment="0" min="-2" max="-2" attributes="0"/>
-                          <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
-                              <Component id="StatNameComboBox" alignment="0" max="32767" attributes="1"/>
-                              <Component id="filterComboBox" alignment="0" pref="192" max="32767" attributes="1"/>
-                          </Group>
-                          <Group type="103" alignment="0" groupAlignment="1" max="-2" attributes="0">
-                              <Component id="jScrollPane1" alignment="0" max="32767" attributes="1"/>
-                              <Component id="unitsField" alignment="0" max="32767" attributes="1"/>
-                              <Component id="stdDevField" alignment="0" max="32767" attributes="1"/>
-                              <Component id="meanField" alignment="0" max="32767" attributes="1"/>
-                              <Component id="maxField" alignment="0" max="32767" attributes="1"/>
-                              <Component id="minField" alignment="0" max="32767" attributes="1"/>
-                              <Component id="samplesField" alignment="0" max="32767" attributes="1"/>
-                              <Group type="102" alignment="0" attributes="0">
-                                  <Component id="scalarOperationComboBox" min="-2" pref="85" max="-2" attributes="0"/>
-                                  <EmptySpace max="-2" attributes="0"/>
-                                  <Component id="scalarSizeSpinner" min="-2" pref="99" max="-2" attributes="0"/>
-                              </Group>
-                          </Group>
-                          <Group type="102" alignment="0" attributes="0">
-                              <EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
-                              <Group type="103" groupAlignment="1" attributes="0">
-                                  <Component id="jLabel1" min="-2" pref="24" max="-2" attributes="0"/>
-                                  <Component id="jLabel2" min="-2" pref="24" max="-2" attributes="0"/>
-                              </Group>
-                              <EmptySpace max="-2" attributes="0"/>
-                              <Group type="103" groupAlignment="0" attributes="0">
-                                  <Component id="xLabel" min="-2" pref="170" max="-2" attributes="0"/>
-                                  <Component id="yLabel" min="-2" max="-2" attributes="0"/>
-                              </Group>
-                          </Group>
-                      </Group>
-                      <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
-                  </Group>
-              </Group>
-          </Group>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="0" attributes="0">
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="StatNameComboBox" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="filterComboBox" min="-2" pref="24" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="graphLeftAxisCheckBox" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="xLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="yLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace min="-2" pref="86" max="-2" attributes="0"/>
-              <Component id="jSeparator1" min="-2" pref="10" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="scalarLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="scalarOperationComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="scalarSizeSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="samplesLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="samplesField" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="minLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="minField" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="maxLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="maxField" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="meanLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="meanField" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="stdDevLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="stdDevField" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="unitsLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="unitsField" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="descriptionLabel" min="-2" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jScrollPane1" min="-2" pref="172" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Component class="javax.swing.JComboBox" name="StatNameComboBox">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
-          <StringArray count="4">
-            <StringItem index="0" value="Item 1"/>
-            <StringItem index="1" value="Item 2"/>
-            <StringItem index="2" value="Item 3"/>
-            <StringItem index="3" value="Item 4"/>
-          </StringArray>
-        </Property>
-        <Property name="autoscrolls" type="boolean" value="true"/>
-        <Property name="name" type="java.lang.String" value="StatComboBox" noResource="true"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="minLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Min"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="minField">
-      <Properties>
-        <Property name="editable" type="boolean" value="false"/>
-        <Property name="text" type="java.lang.String" value="Not Available"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="maxLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Max"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="maxField">
-      <Properties>
-        <Property name="editable" type="boolean" value="false"/>
-        <Property name="text" type="java.lang.String" value="Not Available"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="meanLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Mean"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="meanField">
-      <Properties>
-        <Property name="editable" type="boolean" value="false"/>
-        <Property name="text" type="java.lang.String" value="Not Available"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="stdDevLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Std Dev"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="stdDevField">
-      <Properties>
-        <Property name="editable" type="boolean" value="false"/>
-        <Property name="text" type="java.lang.String" value="Not Available"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="unitsLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Units"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="unitsField">
-      <Properties>
-        <Property name="editable" type="boolean" value="false"/>
-        <Property name="text" type="java.lang.String" value="No Units"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="descriptionLabel">
-      <Properties>
-        <Property name="text" type="java.lang.String" value="Description"/>
-      </Properties>
-    </Component>
-    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
-      <AuxValues>
-        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
-      </AuxValues>
-
-      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
-      <SubComponents>
-        <Component class="javax.swing.JEditorPane" name="descriptionField">
-          <Properties>
-            <Property name="editable" type="boolean" value="false"/>
-          </Properties>
-        </Component>
-      </SubComponents>
-    </Container>
-    <Component class="javax.swing.JComboBox" name="filterComboBox">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
-          <StringArray count="4">
-            <StringItem index="0" value="Item 1"/>
-            <StringItem index="1" value="Item 2"/>
-            <StringItem index="2" value="Item 3"/>
-            <StringItem index="3" value="Item 4"/>
-          </StringArray>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel1">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Y"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel2">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="X"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JCheckBox" name="graphLeftAxisCheckBox">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Left Axis"/>
-        <Property name="toolTipText" type="java.lang.String" value="Unset to put axis on right side of graph"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JTextField" name="samplesField">
-      <Properties>
-        <Property name="editable" type="boolean" value="false"/>
-        <Property name="text" type="java.lang.String" value="Not Available"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="samplesLabel">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="samplesField"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Samples"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="scalarLabel">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="scalarOperationComboBox"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Scalar"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JSpinner" name="scalarSizeSpinner">
-    </Component>
-    <Component class="javax.swing.JComboBox" name="scalarOperationComboBox">
-      <Properties>
-        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
-          <StringArray count="4">
-            <StringItem index="0" value="Item 1"/>
-            <StringItem index="1" value="Item 2"/>
-            <StringItem index="2" value="Item 3"/>
-            <StringItem index="3" value="Item 4"/>
-          </StringArray>
-        </Property>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JSeparator" name="jSeparator1">
-    </Component>
-    <Component class="javax.swing.JLabel" name="xLabel">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="xLabel"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="yLabel">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-          <Font name="Lucida Grande" size="12" style="0"/>
-        </Property>
-        <Property name="text" type="java.lang.String" value="yLabel"/>
-      </Properties>
-    </Component>
-  </SubComponents>
-</Form>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.form
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.form b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.form
deleted file mode 100644
index 59ebfc0..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.form
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <Properties>
-    <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-      <Color blue="c2" green="e1" red="86" type="rgb"/>
-    </Property>
-    <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
-      <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
-        <LineBorder roundedCorners="true" thickness="2">
-          <Color PropertyName="color" blue="99" green="99" red="99" type="rgb"/>
-        </LineBorder>
-      </Border>
-    </Property>
-    <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
-      <Font name="Lucida Grande" size="10" style="0"/>
-    </Property>
-    <Property name="requestFocusEnabled" type="boolean" value="false"/>
-  </Properties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" attributes="0">
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="0" max="-2" attributes="0">
-                  <Group type="102" alignment="0" attributes="0">
-                      <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
-                      <Component id="xLabel" min="-2" pref="100" max="-2" attributes="0"/>
-                  </Group>
-                  <Group type="102" alignment="0" attributes="0">
-                      <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
-                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
-                      <Component id="yLabel" max="32767" attributes="0"/>
-                  </Group>
-              </Group>
-              <EmptySpace pref="69" max="32767" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="0" attributes="0">
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="xLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace max="-2" attributes="0"/>
-              <Group type="103" groupAlignment="3" attributes="0">
-                  <Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
-                  <Component id="yLabel" alignment="3" min="-2" max="-2" attributes="0"/>
-              </Group>
-              <EmptySpace pref="58" max="32767" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Component class="javax.swing.JLabel" name="jLabel1">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
-          <FontInfo relative="true">
-            <Font component="jLabel1" property="font" relativeSize="true" size="-3"/>
-          </FontInfo>
-        </Property>
-        <Property name="text" type="java.lang.String" value="X:"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="jLabel2">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
-          <FontInfo relative="true">
-            <Font component="jLabel2" property="font" relativeSize="true" size="-3"/>
-          </FontInfo>
-        </Property>
-        <Property name="text" type="java.lang.String" value="Y:"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="xLabel">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
-          <FontInfo relative="true">
-            <Font component="xLabel" property="font" relativeSize="true" size="-3"/>
-          </FontInfo>
-        </Property>
-        <Property name="text" type="java.lang.String" value="0"/>
-      </Properties>
-    </Component>
-    <Component class="javax.swing.JLabel" name="yLabel">
-      <Properties>
-        <Property name="font" type="java.awt.Font" editor="org.netbeans.modules.form.editors2.FontEditor">
-          <FontInfo relative="true">
-            <Font component="yLabel" property="font" relativeSize="true" size="-3"/>
-          </FontInfo>
-        </Property>
-        <Property name="text" type="java.lang.String" value="0"/>
-      </Properties>
-    </Component>
-  </SubComponents>
-</Form>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.java
deleted file mode 100644
index 1d8dff3..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/HUD.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.pivotal.jvsd;
-
-/**
- *
- * @author jdeppe
- */
-public class HUD extends javax.swing.JPanel {
-
-	/**
-	 * Creates new form HUD
-	 */
-	public HUD() {
-		initComponents();
-	}
-
-	/**
-	 * This method is called from within the constructor to initialize the form.
-	 * WARNING: Do NOT modify this code. The content of this method is always
-	 * regenerated by the Form Editor.
-	 */
-	@SuppressWarnings("unchecked")
-  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-  private void initComponents() {
-
-    jLabel1 = new javax.swing.JLabel();
-    jLabel2 = new javax.swing.JLabel();
-    xLabel = new javax.swing.JLabel();
-    yLabel = new javax.swing.JLabel();
-
-    setBackground(new java.awt.Color(134, 225, 194));
-    setBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 2, true));
-    setFont(new java.awt.Font("Lucida Grande", 0, 10)); // NOI18N
-    setRequestFocusEnabled(false);
-
-    jLabel1.setFont(jLabel1.getFont().deriveFont(jLabel1.getFont().getSize()-3f));
-    jLabel1.setText("X:");
-
-    jLabel2.setFont(jLabel2.getFont().deriveFont(jLabel2.getFont().getSize()-3f));
-    jLabel2.setText("Y:");
-
-    xLabel.setFont(xLabel.getFont().deriveFont(xLabel.getFont().getSize()-3f));
-    xLabel.setText("0");
-
-    yLabel.setFont(yLabel.getFont().deriveFont(yLabel.getFont().getSize()-3f));
-    yLabel.setText("0");
-
-    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
-    this.setLayout(layout);
-    layout.setHorizontalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGroup(layout.createSequentialGroup()
-        .addContainerGap()
-        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
-          .addGroup(layout.createSequentialGroup()
-            .addComponent(jLabel1)
-            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-            .addComponent(xLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
-          .addGroup(layout.createSequentialGroup()
-            .addComponent(jLabel2)
-            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
-            .addComponent(yLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
-        .addContainerGap(69, Short.MAX_VALUE))
-    );
-    layout.setVerticalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGroup(layout.createSequentialGroup()
-        .addContainerGap()
-        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-          .addComponent(jLabel1)
-          .addComponent(xLabel))
-        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
-          .addComponent(jLabel2)
-          .addComponent(yLabel))
-        .addContainerGap(58, Short.MAX_VALUE))
-    );
-  }// </editor-fold>//GEN-END:initComponents
-
-  public void setXLabel(String label) {
-    xLabel.setText(label);
-  }
-
-  public void setYLabel(String label) {
-    yLabel.setText(label);
-  }
-
-  // Variables declaration - do not modify//GEN-BEGIN:variables
-  private javax.swing.JLabel jLabel1;
-  private javax.swing.JLabel jLabel2;
-  private javax.swing.JLabel xLabel;
-  private javax.swing.JLabel yLabel;
-  // End of variables declaration//GEN-END:variables
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatValueWrapper.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatValueWrapper.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatValueWrapper.java
deleted file mode 100644
index b64fc20..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatValueWrapper.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.pivotal.jvsd;
-
-import com.pivotal.jvsd.stats.StatFileParser.StatValue;
-
-/**
- *
- * @author Vince Ford
- */
-public class StatValueWrapper {
-
-	StatValue sv;
-	int axisLocation;
-	int plotIndex;
-
-	public StatValueWrapper(StatValue sv, int axisLocation, int plotIndex) {
-		this.sv = sv;
-		this.axisLocation = axisLocation;
-		this.plotIndex = plotIndex;
-	}
-
-	public int getAxisLocation() {
-		return axisLocation;
-	}
-
-	public void setAxisLocation(int axisLocation) {
-		this.axisLocation = axisLocation;
-	}
-
-	public int getPlotIndex() {
-		return plotIndex;
-	}
-
-	public void setPlotIndex(int plotIndex) {
-		this.plotIndex = plotIndex;
-	}
-
-	public StatValue getSv() {
-		return sv;
-	}
-
-	public void setSv(StatValue sv) {
-		this.sv = sv;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableColumnModel.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableColumnModel.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableColumnModel.java
deleted file mode 100644
index 94adbba..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableColumnModel.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package com.pivotal.jvsd;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import javax.swing.ListSelectionModel;
-import javax.swing.event.TableColumnModelListener;
-import javax.swing.table.TableColumn;
-import javax.swing.table.TableColumnModel;
-import org.apache.commons.collections.IteratorUtils;
-
-/**
- *
- * @author Vince Ford
- */
-public class StatsTableColumnModel implements TableColumnModel {
-
-	ArrayList<TableColumn> tca;
-
-	public void addColumn(TableColumn tc) {
-		tca.add(tc);
-	}
-
-	public void removeColumn(TableColumn tc) {
-		tca.remove(tc);
-	}
-
-	public void moveColumn(int i, int i1) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void setColumnMargin(int i) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public int getColumnCount() {
-		return tca.size();
-	}
-
-	public Enumeration<TableColumn> getColumns() {
-		return IteratorUtils.asEnumeration(tca.iterator());
-	}
-
-	public int getColumnIndex(Object o) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public TableColumn getColumn(int i) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public int getColumnMargin() {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public int getColumnIndexAtX(int i) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public int getTotalColumnWidth() {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void setColumnSelectionAllowed(boolean bln) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public boolean getColumnSelectionAllowed() {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public int[] getSelectedColumns() {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public int getSelectedColumnCount() {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void setSelectionModel(ListSelectionModel lsm) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public ListSelectionModel getSelectionModel() {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void addColumnModelListener(TableColumnModelListener tl) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void removeColumnModelListener(TableColumnModelListener tl) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableModel.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableModel.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableModel.java
deleted file mode 100644
index b1e1bf6..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/StatsTableModel.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.pivotal.jvsd;
-
-import java.util.ArrayList;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.TableModel;
-
-/**
- *
- * @author Vince Ford
- */
-public class StatsTableModel implements TableModel {
-
-	String[] columnNames = {"Row", "Start Time", "File", "Samples", "PID", "Type", "Name"};
-
-	ArrayList tableData;
-
-	public StatsTableModel() {
-		tableData = new ArrayList();
-	}
-
-	public int getRowCount() {
-		return tableData.size();
-	}
-
-	public int getColumnCount() {
-		return columnNames.length;
-	}
-
-	public String getColumnName(int i) {
-		return columnNames[i];
-	}
-
-	public Class<?> getColumnClass(int i) {
-		return String.class;
-	}
-
-	public boolean isCellEditable(int i, int i1) {
-		return false;
-	}
-
-	public Object getValueAt(int i, int i1) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void setValueAt(Object o, int i, int i1) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void addTableModelListener(TableModelListener tl) {
-		throw new UnsupportedOperationException("Not supported yet.");
-	}
-
-	public void removeTableModelListener(TableModelListener tl) {
-		//null op right now
-	}
-
-	public void addRow(Object[] rowdata) {
-		tableData.add(rowdata);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.form
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.form b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.form
deleted file mode 100644
index 753cf18..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.form
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
-  <Properties>
-    <Property name="defaultCloseOperation" type="int" value="2"/>
-  </Properties>
-  <SyntheticProperties>
-    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
-    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
-  </SyntheticProperties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="400" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="300" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-</Form>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.java
deleted file mode 100644
index 432c892..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDConnectionsDialog.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * VSDConnectionsDialog.java
- *
- * Created on Dec 28, 2010, 10:48:54 AM
- */
-package com.pivotal.jvsd;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDConnectionsDialog extends javax.swing.JDialog {
-
-	/**
-	 * Creates new form VSDConnectionsDialog
-	 */
-	public VSDConnectionsDialog(java.awt.Frame parent, boolean modal) {
-		super(parent, modal);
-		initComponents();
-	}
-
-	/**
-	 * This method is called from within the constructor to initialize the form.
-	 * WARNING: Do NOT modify this code. The content of this method is always
-	 * regenerated by the Form Editor.
-	 */
-	@SuppressWarnings("unchecked")
-  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-  private void initComponents() {
-
-    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-
-    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
-    getContentPane().setLayout(layout);
-    layout.setHorizontalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGap(0, 400, Short.MAX_VALUE)
-    );
-    layout.setVerticalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGap(0, 300, Short.MAX_VALUE)
-    );
-
-    pack();
-  }// </editor-fold>//GEN-END:initComponents
-
-	/**
-	 * @param args the command line arguments
-	 */
-	public static void main(String args[]) {
-		java.awt.EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				VSDConnectionsDialog dialog = new VSDConnectionsDialog(new javax.swing.JFrame(), true);
-				dialog.addWindowListener(new java.awt.event.WindowAdapter() {
-					public void windowClosing(java.awt.event.WindowEvent e) {
-						System.exit(0);
-					}
-				});
-				dialog.setVisible(true);
-			}
-		});
-	}
-
-  // Variables declaration - do not modify//GEN-BEGIN:variables
-  // End of variables declaration//GEN-END:variables
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDDataWindow.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDDataWindow.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDDataWindow.java
deleted file mode 100644
index 359fc8c..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDDataWindow.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.pivotal.jvsd;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDDataWindow {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.form
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.form b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.form
deleted file mode 100644
index b5e5316..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.form
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
-  <NonVisualComponents>
-    <Menu class="javax.swing.JMenuBar" name="jMenuBar1">
-      <SubComponents>
-        <Menu class="javax.swing.JMenu" name="jMenu1">
-          <Properties>
-            <Property name="text" type="java.lang.String" value="File"/>
-          </Properties>
-        </Menu>
-        <Menu class="javax.swing.JMenu" name="jMenu2">
-          <Properties>
-            <Property name="text" type="java.lang.String" value="Edit"/>
-          </Properties>
-        </Menu>
-      </SubComponents>
-    </Menu>
-  </NonVisualComponents>
-  <Properties>
-    <Property name="defaultCloseOperation" type="int" value="3"/>
-  </Properties>
-  <SyntheticProperties>
-    <SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/>
-    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
-    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
-  </SyntheticProperties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Component id="jToolBar1" alignment="0" pref="400" max="32767" attributes="0"/>
-          <Component id="jScrollPane1" alignment="0" pref="400" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <Group type="102" alignment="0" attributes="0">
-              <Component id="jToolBar1" min="-2" pref="25" max="-2" attributes="0"/>
-              <EmptySpace max="-2" attributes="0"/>
-              <Component id="jScrollPane1" pref="244" max="32767" attributes="0"/>
-          </Group>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-  <SubComponents>
-    <Container class="javax.swing.JToolBar" name="jToolBar1">
-      <Properties>
-        <Property name="rollover" type="boolean" value="true"/>
-      </Properties>
-
-      <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
-    </Container>
-    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
-
-      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
-      <SubComponents>
-        <Component class="javax.swing.JEditorPane" name="jEditorPane1">
-          <Properties>
-            <Property name="editable" type="boolean" value="false"/>
-          </Properties>
-        </Component>
-      </SubComponents>
-    </Container>
-  </SubComponents>
-</Form>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.java
deleted file mode 100644
index cbe40e8..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDHelpWindow.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * VSDHelpWindow.java
- *
- * Created on Dec 28, 2010, 10:52:44 AM
- */
-package com.pivotal.jvsd;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDHelpWindow extends javax.swing.JFrame {
-
-	/**
-	 * Creates new form VSDHelpWindow
-	 */
-	public VSDHelpWindow() {
-		initComponents();
-	}
-
-	/**
-	 * This method is called from within the constructor to initialize the form.
-	 * WARNING: Do NOT modify this code. The content of this method is always
-	 * regenerated by the Form Editor.
-	 */
-	@SuppressWarnings("unchecked")
-  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-  private void initComponents() {
-
-    jToolBar1 = new javax.swing.JToolBar();
-    jScrollPane1 = new javax.swing.JScrollPane();
-    jEditorPane1 = new javax.swing.JEditorPane();
-    jMenuBar1 = new javax.swing.JMenuBar();
-    jMenu1 = new javax.swing.JMenu();
-    jMenu2 = new javax.swing.JMenu();
-
-    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
-
-    jToolBar1.setRollover(true);
-
-    jEditorPane1.setEditable(false);
-    jScrollPane1.setViewportView(jEditorPane1);
-
-    jMenu1.setText("File");
-    jMenuBar1.add(jMenu1);
-
-    jMenu2.setText("Edit");
-    jMenuBar1.add(jMenu2);
-
-    setJMenuBar(jMenuBar1);
-
-    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
-    getContentPane().setLayout(layout);
-    layout.setHorizontalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
-      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
-    );
-    layout.setVerticalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGroup(layout.createSequentialGroup()
-        .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
-        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
-        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 244, Short.MAX_VALUE))
-    );
-
-    pack();
-  }// </editor-fold>//GEN-END:initComponents
-
-	/**
-	 * @param args the command line arguments
-	 */
-	public static void main(String args[]) {
-		java.awt.EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				new VSDHelpWindow().setVisible(true);
-			}
-		});
-	}
-
-  // Variables declaration - do not modify//GEN-BEGIN:variables
-  private javax.swing.JEditorPane jEditorPane1;
-  private javax.swing.JMenu jMenu1;
-  private javax.swing.JMenu jMenu2;
-  private javax.swing.JMenuBar jMenuBar1;
-  private javax.swing.JScrollPane jScrollPane1;
-  private javax.swing.JToolBar jToolBar1;
-  // End of variables declaration//GEN-END:variables
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDMainWindow.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDMainWindow.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDMainWindow.java
deleted file mode 100644
index 164187e..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDMainWindow.java
+++ /dev/null
@@ -1,417 +0,0 @@
-package com.pivotal.jvsd;
-
-import com.pivotal.jvsd.fx.VSDChartWindow;
-import com.pivotal.jvsd.stats.StatFileManager;
-import com.pivotal.jvsd.stats.StatFileParser;
-import com.pivotal.jvsd.stats.StatFileParser.StatValue;
-import com.pivotal.jvsd.stats.StatFileWrapper;
-import com.pivotal.jvsd.stats.Utility;
-
-import java.awt.BorderLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javafx.embed.swing.JFXPanel;
-
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.table.DefaultTableModel;
-import javax.swing.table.TableColumn;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDMainWindow extends JFrame
-    implements ActionListener, ListSelectionListener {
-
-	private JMenuBar menubar;
-	private final int CHARTMENU_POSITION = 3;
-	private ChartMenuActionListener chartMenuListener = null;
-	private JTable table;
-	private DefaultTableModel tableModel;
-	private StatFileManager statFiles;
-	private VSDStatsPane statsPane;
-	private ArrayList<VSDChartWindow> chartWindows = null;
-	private JMenuItem exportMenuItem = null;
-
-  private JButton buttonNewChart = null;
-  private JButton buttonAddToChart = null;
-  private JComboBox chartList = null;
-
-  private boolean hideZeroStats = true;
-
-  private static final Object[] ROW_HEADERS =
-      {"Row", "Start Time", "File", "Samples", "PID", "Type", "Name"};
-
-  public VSDMainWindow(StatFileManager sfm) {
-    super();
-    
-    // HACK - init JFX
-    new JFXPanel();
-    
-    Utility.initScreenSize();
-    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-    statFiles = sfm;
-    chartWindows = new ArrayList<VSDChartWindow>();
-    createMenus();
-    createStatsList();
-    createBottomPane();
-    createChartButtons();
-    this.setSize(640,  800);
-//    this.setSize((int) (Utility.getHorizontalScreenSize() * 0.75),
-//        ((int) (Utility.getVerticalScreenSize() * 0.75)));
-    this.setTitle("jVSD");
-    if (statFiles.length() > 0) {
-      statFiles.updateTableView(table);
-      exportMenuItem.setEnabled(true);
-    }
-  }
-
-  /**
-   * Returns a list of StatValues depending on the stats and stat names
-   * selected.
-   */
-  private List<StatValue> getSelectedStatValues() {
-    List<StatValue> results = new ArrayList<StatValue>();
-    String type = null;
-    String name = null;
-    int filenum = 0;
-    int[] indexes = table.getSelectedRows();
-
-    for (int rowIdx : indexes) {
-      int index = table.convertRowIndexToModel(rowIdx);
-      for (int x = 0; x < tableModel.getColumnCount(); x++) {
-        if (tableModel.getColumnName(x).equals("Type")) {
-          type = (String) tableModel.getValueAt(index, x);
-        } else if (tableModel.getColumnName(x).equals("File")) {
-          filenum = ((Integer) tableModel.getValueAt(index, x)).intValue();
-        } else if (tableModel.getColumnName(x).equals("Name")) {
-          name = (String) tableModel.getValueAt(index, x);
-        }
-      }
-
-      StatFileWrapper stw = statFiles.getFile(filenum - 1);
-      StatFileParser.ResourceInst ri = stw.getResource(type, name);
-
-      for (String statName : statsPane.getSelectedValues()) {
-        results.add(ri.getStatValue(statName));
-      }
-    }
-
-    return results;
-  }
-
-	private void createMenus() {
-		menubar = new JMenuBar();
-		JMenuItem item;
-		JMenu menu;
-		//***********
-		//File Menu
-		menu = Utility.createMenu("File", menubar);
-		Utility.createMenuItem("Open", menu, this);
-		exportMenuItem = Utility.createMenuItem("Export to CSV", menu, this);
-		exportMenuItem.setEnabled(false);
-		item = Utility.createMenuItem("Connect", menu, this);
-		item.setEnabled(false);
-		Utility.createMenuItem("Quit", menu, this);
-		//***********
-		//Edit Menu
-		menu = Utility.createMenu("Edit", menubar);
-		Utility.createMenuItem("Undo", menu, this);
-		Utility.createMenuItem("Cut", menu, this);
-		Utility.createMenuItem("Copy", menu, this);
-		Utility.createMenuItem("Paste", menu, this);
-		Utility.createMenuItem("Select All", menu, this);
-		menu.addSeparator();
-		Utility.createMenuItem("Search", menu, this);
-		menu.addSeparator();
-		Utility.createMenuItem("Preferences", menu, this);
-		menu.setEnabled(false);
-		//***********
-		//View Menu
-		menu = Utility.createMenu("View", menubar);
-		JCheckBoxMenuItem cbMenuItem = new JCheckBoxMenuItem("Hide zero stats");
-		cbMenuItem.addItemListener(new ItemListener() {
-      @Override
-      public void itemStateChanged(ItemEvent e) {
-//        if (e.getStateChange() == ItemEvent.SELECTED) {
-//          hideZeroStats = true;
-//        } else {
-//          hideZeroStats = false;
-//        }
-//        updateStatList();
-      }});
-
-		menu.add(cbMenuItem);
-		
-
-//		menu.setEnabled(false);
-		//***********
-		//Charts Menu
-		menu = Utility.createMenu("Charts", menubar);
-		menu.setEnabled(false);
-		//***********
-		//Templates Menu
-		menu = Utility.createMenu("Template", menubar);
-		Utility.createMenuItem("New Template", menu, this);
-		menu.addSeparator();
-		menu.setEnabled(false);
-    //predefined templates will be added below this separator
-
-		//***********
-		//About Menu
-		menu = Utility.createMenu("About", menubar);
-		Utility.createMenuItem("About jVSD", menu, this);
-		item = Utility.createMenuItem("Help", menu, this);
-		item.setEnabled(false);
-		this.setJMenuBar(menubar);
-	}
-
-	@Override
-	public void actionPerformed(ActionEvent e) {
-    VSDChartWindow vcw = null;
-		Object o = e.getSource();
-
-		if (o instanceof JMenuItem) {
-			JMenuItem mi = (JMenuItem) o;
-			String menuItem = mi.getActionCommand();
-			if ("Quit".equals(menuItem)) {
-					System.exit(0);
-      } else if ("Open".equals(menuItem)) {
-			  openFile();
-      } else if ("Export to CSV".equals(menuItem)) {
-			  saveFile();
-      } else if ("About JVSD".equals(menuItem)) {
-			  openAboutDialog();
-			}
-		} else if (o == buttonNewChart || o == buttonAddToChart) {
-      List<StatValue> mystats = getSelectedStatValues();
-      if (mystats.size() > 0 && o == buttonNewChart) {
-        StatValue stat = null; //mystats.remove(0);
-
-//        vcw = new VSDChartWindow(stat, this);
-//        vcw.start();
-        addChartWindow(vcw);
-        chartList.addItem(vcw.getTitle());
-        chartList.setSelectedItem(vcw.getTitle());
-        //vcw.setVisible(true);
-      } else if (o == buttonAddToChart) {
-        String chart = (String) chartList.getSelectedItem();
-        if (chart != null) {
-          vcw = getChartWindow(chart);
-        }
-      }
-
-//      vcw.addToChart(mystats);
-
-      if (chartList.getItemCount() > 0) {
-        buttonAddToChart.setEnabled(true);
-      } else {
-        buttonAddToChart.setEnabled(false);
-      }
-    }
-	}
-
-	private void createStatsList() {
-		this.getContentPane().setLayout(new BorderLayout());
-
-		table = new JTable() {
-			@Override
-			public boolean isCellEditable(int rowIndex, int ColIndex) {
-				return false;
-			}
-		};
-
-		table.setAutoCreateRowSorter(true);
-//		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
-		JScrollPane scrollpane = new JScrollPane(table);
-
-		this.getContentPane().add(scrollpane, BorderLayout.NORTH);
-		tableModel = (DefaultTableModel) table.getModel();
-		int paneWidth = scrollpane.getWidth();
-		// TODO Fix this - paneWidth = 0
-
-		// Set some specific column widths
-		int[] widths = {(int)(paneWidth * 0.05),
-				(int)(paneWidth * 0.2),
-				(int)(paneWidth * 0.2),
-				(int)(paneWidth * 0.05),
-				(int)(paneWidth * 0.1),
-				(int)(paneWidth * 0.2),
-				(int)(paneWidth * 0.2)
-		};
-		for (int i = 0; i < widths.length; i++) {
-			TableColumn tc = new TableColumn(i);
-			tc.setPreferredWidth(widths[i]);
-			tableModel.addColumn(tc);
-		}
-
-		tableModel.setColumnIdentifiers(ROW_HEADERS);
-
-		table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
-    table.getSelectionModel().addListSelectionListener(this);
-  }
-
-	private void openFile() {
-		final JFileChooser fc = new JFileChooser();
-		int returnVal = fc.showOpenDialog(this);
-		switch (returnVal) {
-			case JFileChooser.APPROVE_OPTION:
-				File file = fc.getSelectedFile();
-				statFiles.addFile(file);
-				statFiles.updateTableView(table);
-				exportMenuItem.setEnabled(true);
-				break;
-			case JFileChooser.CANCEL_OPTION:
-				break;
-			case JFileChooser.ERROR_OPTION:
-			default:
-				break;
-		}
-	}
-
-	private void createBottomPane() {
-		statsPane = new VSDStatsPane();
-		this.getContentPane().add(statsPane, BorderLayout.CENTER);
-	}
-
-  private void createChartButtons() {
-    JPanel panel = new JPanel();
-    buttonNewChart = new JButton("New Chart");
-    buttonAddToChart = new JButton("Add to Chart");
-    chartList = new JComboBox();
-    buttonNewChart.addActionListener(this);
-    buttonAddToChart.addActionListener(this);
-    buttonAddToChart.setEnabled(false);
-    panel.add(buttonNewChart);
-    panel.add(buttonAddToChart);
-    panel.add(chartList);
-    this.getContentPane().add(panel, BorderLayout.SOUTH);
-  }
-
-  /**
-   * This will update the stats pane with all the common stats of rows
-   * selected in the main window.
-   */
-	private void updateStatList() {
-		statsPane.clear();
-
-    int[] rows = table.getSelectedRows();
-    List<String> statNames = getStatNames(rows[0]);
-
-    for (int i = 1; i < rows.length; i++) {
-      List<String> tmpNames = getStatNames(rows[i]);
-      Iterator<String> it = statNames.iterator();
-      while (it.hasNext()) {
-        String s = it.next();
-        if (!tmpNames.contains(s)) {
-          it.remove();
-        }
-      }
-    }
-
-    statsPane.update(statNames);
-	}
-
-  private List<String> getStatNames(int tableRowIndex) {
-    List<String> statNames = null;
-    String type = null;
-    String name = null;
-    int filenum = -1;
-    int modelIndex = table.convertRowIndexToModel(tableRowIndex);
-
-    for (int x = 0; x < tableModel.getColumnCount(); x++) {
-      if (tableModel.getColumnName(x).equals("Type")) {
-        type = (String) tableModel.getValueAt(modelIndex, x);
-      } else if (tableModel.getColumnName(x).equals("File")) {
-        filenum = ((Integer) tableModel.getValueAt(modelIndex, x)).intValue();
-      } else if (tableModel.getColumnName(x).equals("Name")) {
-        name = (String) tableModel.getValueAt(modelIndex, x);
-      }
-    }
-    if (type != null && name != null && filenum != -1) {
-      statNames = statFiles.getStats(filenum, type, name, hideZeroStats);
-    }
-
-    return statNames;
-  }
-
-	void addChartWindow(VSDChartWindow vcw) {
-		chartWindows.add(vcw);
-		if (this.chartMenuListener == null) {
-			this.chartMenuListener = new ChartMenuActionListener(this.chartWindows);
-		}
-		Utility.
-						createMenuItem(vcw.getTitle(), menubar.getMenu(CHARTMENU_POSITION), this.chartMenuListener);
-	}
-
-	void removeChartWindow(VSDChartWindow vcw) {
-		chartWindows.remove(vcw);
-		for (int x = 0; x < menubar.getMenu(CHARTMENU_POSITION).getItemCount(); x++) {
-			if (menubar.getMenu(CHARTMENU_POSITION).getItem(x).getText().equals(vcw.
-							getTitle())) {
-				menubar.getMenu(CHARTMENU_POSITION).remove(x);
-				break;
-			}
-		}
-
-    chartList.removeItem(vcw.getTitle());
-    if (chartList.getItemCount() == 0) {
-      buttonAddToChart.setEnabled(false);
-    }
-
-		// TODO vcw.dispose();
-	}
-
-	VSDChartWindow getChartWindow(String chart) {
-		VSDChartWindow vcw = findChartWindow(chart);
-
-		return vcw;
-	}
-
-	private VSDChartWindow findChartWindow(String chart) {
-		for (VSDChartWindow vcw : this.chartWindows) {
-			if (vcw.getTitle().equals(chart)) {
-				return vcw;
-			}
-		}
-		return null;
-	}
-
-	private void saveFile() {
-		JFileChooser fc = new JFileChooser();
-		fc.setDialogType(JFileChooser.SAVE_DIALOG);
-		int returnVal = fc.showSaveDialog(this);
-		switch (returnVal) {
-			case JFileChooser.APPROVE_OPTION:
-				File file = fc.getSelectedFile();
-				Utility.dumpCSV(statFiles, file);
-				break;
-			case JFileChooser.CANCEL_OPTION:
-				break;
-			case JFileChooser.ERROR_OPTION:
-			default:
-				break;
-		}
-	}
-
-	private void openAboutDialog() {
-		AboutJVSD dialog = new AboutJVSD(this, true);
-		dialog.setVisible(true);
-	}
-
-  @Override
-  public void valueChanged(ListSelectionEvent e) {
-    if (!e.getValueIsAdjusting()) {
-      updateStatList();
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.form
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.form b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.form
deleted file mode 100644
index 753cf18..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.form
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
-  <Properties>
-    <Property name="defaultCloseOperation" type="int" value="2"/>
-  </Properties>
-  <SyntheticProperties>
-    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
-    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
-  </SyntheticProperties>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="400" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="300" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-</Form>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.java
deleted file mode 100644
index 5ebcc6f..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDPreferencesDialog.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * VSDPreferencesDialog.java
- *
- * Created on Dec 28, 2010, 10:48:13 AM
- */
-package com.pivotal.jvsd;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDPreferencesDialog extends javax.swing.JDialog {
-
-	/**
-	 * Creates new form VSDPreferencesDialog
-	 */
-	public VSDPreferencesDialog(java.awt.Frame parent, boolean modal) {
-		super(parent, modal);
-		initComponents();
-	}
-
-	/**
-	 * This method is called from within the constructor to initialize the form.
-	 * WARNING: Do NOT modify this code. The content of this method is always
-	 * regenerated by the Form Editor.
-	 */
-	@SuppressWarnings("unchecked")
-  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-  private void initComponents() {
-
-    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
-
-    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
-    getContentPane().setLayout(layout);
-    layout.setHorizontalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGap(0, 400, Short.MAX_VALUE)
-    );
-    layout.setVerticalGroup(
-      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
-      .addGap(0, 300, Short.MAX_VALUE)
-    );
-
-    pack();
-  }// </editor-fold>//GEN-END:initComponents
-
-	/**
-	 * @param args the command line arguments
-	 */
-	public static void main(String args[]) {
-		java.awt.EventQueue.invokeLater(new Runnable() {
-			public void run() {
-				VSDPreferencesDialog dialog = new VSDPreferencesDialog(new javax.swing.JFrame(), true);
-				dialog.addWindowListener(new java.awt.event.WindowAdapter() {
-					public void windowClosing(java.awt.event.WindowEvent e) {
-						System.exit(0);
-					}
-				});
-				dialog.setVisible(true);
-			}
-		});
-	}
-
-  // Variables declaration - do not modify//GEN-BEGIN:variables
-  // End of variables declaration//GEN-END:variables
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatInfoWindow.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatInfoWindow.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatInfoWindow.java
deleted file mode 100644
index 23aa2c8..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatInfoWindow.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.pivotal.jvsd;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDStatInfoWindow {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatsPane.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatsPane.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatsPane.java
deleted file mode 100644
index f52de35..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VSDStatsPane.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.pivotal.jvsd;
-
-import java.awt.BorderLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.List;
-import javax.swing.DefaultListModel;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.ListSelectionModel;
-
-/**
- *
- * @author Vince Ford
- */
-public class VSDStatsPane extends JPanel {
-
-	JList stats = null;
-
-	public VSDStatsPane() {
-		super();
-
-		this.setLayout(new BorderLayout());
-		stats = new JList();
-		stats.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
-		stats.setLayoutOrientation(JList.VERTICAL);
-		stats.setVisibleRowCount(8);
-		JScrollPane jsp = new JScrollPane(stats);
-		JPanel panel = new JPanel();
-		this.add(jsp, BorderLayout.CENTER);
-		this.add(panel, BorderLayout.SOUTH);
-		stats.setModel(new DefaultListModel());
-	}
-
-  public List<String> getSelectedValues() {
-    return stats.getSelectedValuesList();
-  }
-
-	void clear() {
-		((DefaultListModel) (stats.getModel())).clear();
-	}
-
-	void update(List<String> statsValue) {
-		clear();
-		DefaultListModel dlm = (DefaultListModel) stats.getModel();
-		for (String x : statsValue) {
-			dlm.addElement(x);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VisualDisplayApp.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VisualDisplayApp.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VisualDisplayApp.java
deleted file mode 100644
index 81b04d3..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/VisualDisplayApp.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.pivotal.jvsd;
-
-import java.util.logging.ConsoleHandler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.pivotal.jvsd.stats.StatFileManager;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.apache.commons.cli.PosixParser;
-
-/**
- *
- * @author Vince Ford
- */
-public class VisualDisplayApp {
-
-	VSDMainWindow mainWindow = null;
-	StatFileManager statfiles = null;
-	static private Logger logger;
-
-	/**
-	 *
-	 */
-	public VisualDisplayApp() {
-		logger = Logger.getLogger("com.gemstone.gemfire.support");
-		ConsoleHandler ch = new ConsoleHandler();
-		ch.setLevel(Level.CONFIG);
-		logger.addHandler(ch);
-		logger.setLevel(Level.CONFIG);
-
-		System.out.println("JVSD - Version 0.01");
-		System.out.
-						println("This tool is provided as-is with no support or warranty. Use at your own risk.");
-		System.out.
-						println("If you encounter issues or want to request features - please send email to:");
-		System.out.println("vincef@vmware.com");
-	}
-
-	/**
-	 *
-	 * @param argv
-	 */
-	public static void main(String argv[]) {
-		VisualDisplayApp app = new VisualDisplayApp();
-		logger.config("Log level:" + logger.getLevel().toString());
-		app.init(argv);
-		app.createWindows();
-	}
-
-	private void init(String[] argv) {
-		statfiles = new StatFileManager();
-		try {
-			Option opt = (OptionBuilder.hasArgs()).create('f');
-			Options cliOptions = new Options();
-			cliOptions.addOption(opt);
-			CommandLineParser cliParser = new PosixParser();
-			CommandLine lin = cliParser.parse(cliOptions, argv);
-			if (lin.hasOption('f')) {
-
-				String[] opts = lin.getOptionValues('f');
-				System.out.println(opts.length);
-				for (String filename : opts) {
-					System.out.println("opening file:" + filename);
-					statfiles.addFile(filename);
-				}
-			}
-
-		} catch (ParseException ex) {
-			Logger.getLogger(VisualDisplayApp.class.getName()).
-							log(Level.SEVERE, null, ex);
-		}
-	}
-
-	private void createWindows() {
-		mainWindow = new VSDMainWindow(statfiles);
-		mainWindow.setVisible(true);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/GraphTemplates.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/GraphTemplates.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/GraphTemplates.java
deleted file mode 100644
index 0752dec..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/GraphTemplates.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.pivotal.jvsd.stats;
-
-/**
- *
- * @author Vince Ford
- */
-public class GraphTemplates {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/IssueRules.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/IssueRules.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/IssueRules.java
deleted file mode 100644
index 22ea65a..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/IssueRules.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.pivotal.jvsd.stats;
-
-/**
- *
- * @author Vince Ford
- */
-public class IssueRules {
-
-}


[3/5] incubator-geode git commit: GEODE-340 Deleting old code

Posted by vf...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatArchiveFormat.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatArchiveFormat.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatArchiveFormat.java
deleted file mode 100644
index bbaef64..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatArchiveFormat.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*=========================================================================
- * (c) Copyright 2002-2007, GemStone Systems, Inc. All Rights Reserved.
- * 1260 NW Waterhouse Ave., Suite 200,  Beaverton, OR 97006
- * All Rights Reserved.  
- *========================================================================
- */
-package com.pivotal.jvsd.stats;
-
-/**
- * StatArchiveFormat defines constants related to the statistic archive file
- * format.
- */
-public interface StatArchiveFormat {
-
-	/**
-	 * ARCHIVE_VERSION identifies the format of the contents of the archive. It
-	 * should be changed any time an incompatible change is made. Its current
-	 * value is <code>3</code>.
-	 * <p>
-	 * <ol>
-	 * <li> Changed from 2 to 3 with addition of
-	 * <code>RESOURCE_INSTANCE_INITIALIZE_TOKEN</code>
-	 * <li> Changed from 3 to 4 with addition of largerBetter boolean in statistic
-	 * descriptor
-	 * </ol>
-	 */
-	public static final byte ARCHIVE_VERSION = 4;
-
-	/**
-	 * Token consists of a timestamp and any statistic value changes.
-	 */
-	public static final byte SAMPLE_TOKEN = 0;
-	/**
-	 * Token defines a new resource type.
-	 */
-	public static final byte RESOURCE_TYPE_TOKEN = 1;
-	/**
-	 * Token defines a new resource instance.
-	 */
-	public static final byte RESOURCE_INSTANCE_CREATE_TOKEN = 2;
-	/**
-	 * Token notes that a previous resource instance no longer exists and thus
-	 * will have any more samples of its statistic values taken.
-	 */
-	public static final byte RESOURCE_INSTANCE_DELETE_TOKEN = 3;
-	/**
-	 * Token defines a new resource instance with initial data.
-	 */
-	public static final byte RESOURCE_INSTANCE_INITIALIZE_TOKEN = 4;
-	/**
-	 * Token defines a new archive and provides some global information about the
-	 * environment the archive was created in.
-	 */
-	public static final byte HEADER_TOKEN = 77;
-
-	/**
-	 * The value used to signal the end of a list of resource instances.
-	 */
-	public static final int ILLEGAL_RESOURCE_INST_ID = -1;
-	/**
-	 * The maximum value a resource inst id can have and still be stored in the
-	 * archive as an unsigned byte.
-	 */
-	public static final int MAX_BYTE_RESOURCE_INST_ID = 252;
-	/**
-	 * Used to say that the next two bytes contain the resource inst id as an
-	 * unsigned short.
-	 */
-	public static final int SHORT_RESOURCE_INST_ID_TOKEN = 253;
-	/**
-	 * Used to say that the next four bytes contain the resource inst id as an
-	 * int.
-	 */
-	public static final int INT_RESOURCE_INST_ID_TOKEN = 254;
-	/**
-	 * Used to say that the current byte represents the ILLEGAL_RESOURCE_INST_ID.
-	 */
-	public static final int ILLEGAL_RESOURCE_INST_ID_TOKEN = 255;
-	/**
-	 * The maximum value a resource inst id can have and still be stored in the
-	 * archive as an unsigned short.
-	 */
-	public static final int MAX_SHORT_RESOURCE_INST_ID = 65535;
-	/**
-	 * The value used to signal the end of a list of statistic samples.
-	 */
-	public static final int ILLEGAL_STAT_OFFSET = 255;
-
-	/**
-	 * The maximum value a timestamp can have and still be stored in the archive
-	 * as an unsigned short.
-	 */
-	public static final int MAX_SHORT_TIMESTAMP = 65534;
-	/**
-	 * Means the next 4 bytes contain the timestamp as an int.
-	 */
-	public static final int INT_TIMESTAMP_TOKEN = 65535;
-
-	/**
-	 * The maximum value a compact value can have and still be stored in the
-	 * archive as one byte.
-	 */
-	public static final int MAX_1BYTE_COMPACT_VALUE = Byte.MAX_VALUE;
-	/**
-	 * The minimum value a compact value can have and still be stored in the
-	 * archive as one byte.
-	 */
-	public static final int MIN_1BYTE_COMPACT_VALUE = Byte.MIN_VALUE + 7;
-	/**
-	 * The maximum value a compact value can have and still be stored in the
-	 * archive as two bytes.
-	 */
-	public static final int MAX_2BYTE_COMPACT_VALUE = Short.MAX_VALUE;
-	/**
-	 * The minimum value a compact value can have and still be stored in the
-	 * archive as two bytes.
-	 */
-	public static final int MIN_2BYTE_COMPACT_VALUE = Short.MIN_VALUE;
-
-	/**
-	 * Means the next 2 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_2_TOKEN = Byte.MIN_VALUE;
-	/**
-	 * Means the next 3 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_3_TOKEN = Byte.MIN_VALUE + 1;
-	/**
-	 * Means the next 4 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_4_TOKEN = Byte.MIN_VALUE + 2;
-	/**
-	 * Means the next 5 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_5_TOKEN = Byte.MIN_VALUE + 3;
-	/**
-	 * Means the next 6 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_6_TOKEN = Byte.MIN_VALUE + 4;
-	/**
-	 * Means the next 7 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_7_TOKEN = Byte.MIN_VALUE + 5;
-	/**
-	 * Means the next 8 bytes hold the compact value's data.
-	 */
-	public static final int COMPACT_VALUE_8_TOKEN = Byte.MIN_VALUE + 6;
-
-	/**
-	 * Statistic represents a <code>boolean</code> java primitive.
-	 */
-	public static final int BOOLEAN_CODE = 1;
-	/**
-	 * Statistic represents a <code>char</code> java primitive.
-	 */
-	public static final int CHAR_CODE = 2;
-	/**
-	 * Statistic represents a <code>char</code> java primitive.
-	 */
-	public static final int WCHAR_CODE = 12;
-	/**
-	 * Statistic represents a <code>byte</code> java primitive.
-	 */
-	public static final int BYTE_CODE = 3;
-	/**
-	 * Statistic represents a <code>short</code> java primitive.
-	 */
-	public static final int SHORT_CODE = 4;
-	/**
-	 * Statistic represents a <code>int</code> java primitive.
-	 */
-	public static final int INT_CODE = 5;
-	/**
-	 * Statistic represents a <code>long</code> java primitive.
-	 */
-	public static final int LONG_CODE = 6;
-	/**
-	 * Statistic represents a <code>float</code> java primitive.
-	 */
-	public static final int FLOAT_CODE = 7;
-	/**
-	 * Statistic represents a <code>double</code> java primitive.
-	 */
-	public static final int DOUBLE_CODE = 8;
-	/**
-	 * Number of nanoseconds in one millisecond
-	 */
-	public static final long NANOS_PER_MILLI = 1000000;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b9e0d9c0/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileManager.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileManager.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileManager.java
deleted file mode 100644
index f180adc..0000000
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/StatFileManager.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package com.pivotal.jvsd.stats;
-
-import com.pivotal.jvsd.stats.StatFileParser.ResourceInst;
-import com.pivotal.jvsd.stats.StatFileParser.StatArchiveFile;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.logging.ConsoleHandler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.swing.JTable;
-import javax.swing.table.DefaultTableModel;
-
-/**
- *
- * @author Vince Ford
- */
-public class StatFileManager {
-
-	Logger logger = null;
-	ArrayList<StatFileWrapper> fileList = null;
-
-	/**
-	 *
-	 */
-	public StatFileManager() {
-		logger = Logger.getLogger("com.gemstone.gemfire.support.StatFileManager");
-		logger.setUseParentHandlers(false);
-		ConsoleHandler ch = new ConsoleHandler();
-		ch.setLevel(Level.FINEST);
-		logger.addHandler(ch);
-		logger.setLevel(Level.FINEST);
-		fileList = new ArrayList<StatFileWrapper>();
-	}
-
-	/**
-	 *
-	 * @param filename
-	 */
-	public void dump() {
-		try {
-			File[] files = getFileList();
-			//uses the GemFire Methods to dump the file
-			StatFileParser sar = new StatFileParser(files, null, false);
-			List<ResourceInst> ril = sar.getResourceInstList();
-			Utility.dumpCharts(ril);
-			sar.update();
-			StatArchiveFile[] sa = sar.getArchives();
-			for (StatArchiveFile o : sa) {
-				System.out.println(o.getArchiveInfo().toString());
-			}
-			sar = null;
-		} catch (IOException ex) {
-			logger.log(Level.SEVERE, null, ex);
-		}
-	}
-
-	public void addFile(File file) {
-		StatFileWrapper fw = new StatFileWrapper(file);
-		fileList.add(fw);
-	}
-
-	public void addFile(String filename) {
-		File file = new File(filename);
-		StatFileWrapper fw = new StatFileWrapper(file);
-		fileList.add(fw);
-	}
-
-	File[] getFileList() {
-		File[] files = new File[fileList.size()];
-		int i = 0;
-		for (StatFileWrapper f : fileList) {
-			files[i] = f.getFile();
-			i++;
-		}
-		return files;
-	}
-
-	public void updateTableView(JTable table) {
-		DefaultTableModel tablemodel = (DefaultTableModel) table.getModel();
-		int index = 1;
-		int namelength = 0;
-
-		for (StatFileWrapper sfw : fileList) {
-			if (!sfw.isProcessed()) {
-				List<ResourceInst> resourceList = sfw.getResourceList();
-				int y = 0;
-				for (ResourceInst ri : resourceList) {
-					Object[] rowData = new Object[7];
-					rowData[0] = y;
-					rowData[1] = new Date(ri.getFirstTimeMillis());
-					rowData[2] = index;
-					rowData[3] = ri.getSampleCount();
-					rowData[4] = ri.getId();
-					rowData[5] = ri.getType().getName();
-					rowData[6] = ri.getName();
-					if (namelength < ri.getName().length()) {
-						namelength = ri.getName().length();
-					}
-					tablemodel.addRow(rowData);
-					y++;
-				}
-				sfw.setProcessed(true);
-			}
-			index++;
-		}
-
-	}
-
-	public List<String> getStats(int filenum, String type, String name, boolean hideZeros) {
-		StatFileWrapper stw = fileList.get(filenum - 1);
-		List<String> list = stw.getStats(type, name, hideZeros);
-		return list;
-	}
-
-	public StatFileWrapper getFile(int Index) {
-		return fileList.get(Index);
-	}
-
-	public int length() {
-		return fileList.size();
-	}
-}


[5/5] incubator-geode git commit: GEODE-609 Update license header on source files

Posted by vf...@apache.org.
GEODE-609 Update license header on source files

Adds the required Apache license to files.

Minor update to  build instructions and the
pom.xml (GEODE-339)


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

Branch: refs/heads/feature/GEODE-78
Commit: fb4de6a3cfc2bf6e147f5497d30e82867f250fb6
Parents: b9e0d9c
Author: Vince Ford <vf...@apache.org>
Authored: Wed Nov 25 15:28:23 2015 -0800
Committer: Vince Ford <vf...@apache.org>
Committed: Wed Nov 25 15:28:23 2015 -0800

----------------------------------------------------------------------
 jvsdfx-mm/README.txt                            |  36 ++-
 jvsdfx-mm/pom.xml                               | 244 +++++++++++--------
 .../com/pivotal/chart/AdvancedLineChart.java    |  16 ++
 .../javafx/scene/chart/AbstractSeries.java      |  16 ++
 .../javafx/scene/chart/BasicDataSet.java        |  16 ++
 .../scene/chart/ByteBufferNumberSeries.java     |  16 ++
 .../javafx/scene/chart/DataChangedListener.java |  16 ++
 .../com/pivotal/javafx/scene/chart/DataSet.java |  16 ++
 .../pivotal/jvsd/controller/RootController.java |  16 ++
 .../java/com/pivotal/jvsd/fx/ChartManager.java  |  16 ++
 .../pivotal/jvsd/fx/HoveredThresholdNode.java   |  16 ++
 .../jvsd/fx/LongDoubleMemoryMappedSeries.java   |  16 ++
 .../src/main/java/com/pivotal/jvsd/fx/Main.java |  16 ++
 .../pivotal/jvsd/fx/ObservableByteBuffer.java   |  16 ++
 .../pivotal/jvsd/fx/ObservableDataBuffer.java   |  16 ++
 .../com/pivotal/jvsd/fx/StatFileManager.java    |  16 ++
 .../com/pivotal/jvsd/fx/VSDChartWindow.java     |  16 ++
 .../java/com/pivotal/jvsd/fx/VsdSeries.java     |  16 ++
 .../com/pivotal/jvsd/model/ResourceWrapper.java |  16 ++
 .../jvsd/model/stats/StatArchiveFile.java       |  16 ++
 .../jvsd/model/stats/StatArchiveFormat.java     |  20 +-
 .../java/com/pivotal/jvsd/stats/Utility.java    |  16 ++
 22 files changed, 496 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/README.txt
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/README.txt b/jvsdfx-mm/README.txt
index 81b9c25..3873aa7 100644
--- a/jvsdfx-mm/README.txt
+++ b/jvsdfx-mm/README.txt
@@ -24,12 +24,36 @@ $mvn install
 
 Install the MultiAxisChart jar into local maven repository.
 
-$mvn install:install-file 
--Dfile=./MultiAxisChart-1.0-SNAPSHOT.jar 
--DgroupId=com.pivotal.javafx 
--DartifactId=MultiAxisChart 
--Dversion=1.0-SNAPSHOT 
--Dpackaging=jar 
+$mvn install:install-file \
+-Dfile=./MultiAxisChart-1.0-SNAPSHOT.jar \
+-DgroupId=com.pivotal.javafx \
+-DartifactId=MultiAxisChart \
+-Dversion=1.0-SNAPSHOT \
+-Dpackaging=jar \
+-DgeneratePom=true
+
+For testing, additional jars may need to be added from the Apache Geode build to
+the local Maven repository. 
+
+mvn install:install-file -Dfile=gemfire-core-1.0.0-incubating-SNAPSHOT.jar \
+-DgroupId=org.apache.geode \
+-DartifactId=gemfire-core \
+-Dversion=1.0.0-incubating-SNAPSHOT \
+-Dpackaging=jar \
+-DgeneratePom=true
+
+mvn install:install-file -Dfile=gemfire-jgroups-1.0.0-incubating-SNAPSHOT.jar \
+-DgroupId=org.apache.geode \
+-DartifactId=gemfire-jgroups \
+-Dversion=1.0.0-incubating-SNAPSHOT \
+-Dpackaging=jar \
+-DgeneratePom=true
+
+mvn install:install-file -Dfile=fastutil-7.0.2.jar \
+-DgroupId=org.apache.geode \
+-DartifactId=fastutil \
+-Dversion=7.0.2 \
+-Dpackaging=jar \
 -DgeneratePom=true
 
 Change back into the Geode directory and then into the JVSD directory. Build JVSD.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/pom.xml
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/pom.xml b/jvsdfx-mm/pom.xml
index 023ea8b..7fa9667 100644
--- a/jvsdfx-mm/pom.xml
+++ b/jvsdfx-mm/pom.xml
@@ -1,106 +1,156 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>com.pivotal</groupId>
-	<artifactId>jvsdfx</artifactId>
-	<version>1.0-SNAPSHOT</version>
-	<packaging>jar</packaging>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.pivotal</groupId>
+    <artifactId>jvsdfx</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
 
-	<properties>
-		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<maven.compiler.source>1.8</maven.compiler.source>
-		<maven.compiler.target>1.8</maven.compiler.target>
-	</properties>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
 
-	<dependencies>
-		<dependency>
-			<groupId>commons-cli</groupId>
-			<artifactId>commons-cli</artifactId>
-			<version>1.2</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-collections</groupId>
-			<artifactId>commons-collections</artifactId>
-			<version>3.2.1</version>
-		</dependency>
-		<!-- Enable only for Java 1.7 support
-		<dependency>
-			<groupId>com.oracle</groupId>
-			<artifactId>javafx</artifactId>
-			<version>2.2.60</version>
-			<scope>system</scope>
-			<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
-		</dependency>
-		-->
-		<dependency>
-    			<groupId>com.pivotal.javafx</groupId>
-    			<artifactId>MultiAxisChart</artifactId>
-    			<version>1.0-SNAPSHOT</version>
-			<!-- use scope and system path only if not installing jar into local maven repo -->
-    			<!--<scope>system</scope>
-    			<systemPath>${HOME}/Projects/MultiAxisChartFX/target/MultiAxisChart-1.0-SNAPSHOT.jar</systemPath> -->
-		</dependency>
-	</dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+            <version>1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-collections</groupId>
+            <artifactId>commons-collections</artifactId>
+            <version>3.2.1</version>
+        </dependency>
+        <!-- Enable only for Java 1.7 support
+        <dependency>
+                <groupId>com.oracle</groupId>
+                <artifactId>javafx</artifactId>
+                <version>2.2.60</version>
+                <scope>system</scope>
+                <systemPath>${java.home}/lib/jfxrt.jar</systemPath>
+        </dependency>
+        -->
+        <dependency>
+            <groupId>com.pivotal.javafx</groupId>
+            <artifactId>MultiAxisChart</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <!-- use scope and system path only if not installing jar into local maven repo -->
+            <!--<scope>system</scope>
+            <systemPath>${HOME}/Projects/MultiAxisChartFX/target/MultiAxisChart-1.0-SNAPSHOT.jar</systemPath> -->
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geode</groupId>
+            <artifactId>gemfire-core</artifactId>
+            <version>1.0.0-incubating-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geode</groupId>
+            <artifactId>gemfire-jgroups</artifactId>
+            <version>1.0.0-incubating-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.10</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>2.1</version>
+            <!--<scope>test</scope> -->
+            <type>pom</type> 
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>2.1</version>
+            <!--<scope>test</scope> -->
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>2.1</version>
+            <!--<scope>test</scope> -->
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geode</groupId>
+            <artifactId>fastutil</artifactId>
+            <version>7.0.2</version>
+            <type>jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.transaction</groupId>
+            <artifactId>jta</artifactId>
+            <version>1.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
 
-	<build>
-		<finalName>jvsd</finalName>
+    <build>
+        <finalName>jvsd</finalName>
 		
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-shade-plugin</artifactId>
-				<version>1.3.1</version>
-				<executions>
-					<execution>
-						<phase>package</phase>
-						<goals>
-							<goal>shade</goal>
-						</goals>
-						<configuration>
-							<transformers>
-								<transformer
-									implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
-							</transformers>
-							<!-- <artifactSet> <includes> <include>org.mortbay.jetty:jetty*</include> 
-								</includes> </artifactSet> -->
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>1.3.1</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <transformers>
+                                <transformer
+                                    implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+                            </transformers>
+                            <!-- <artifactSet> <includes> <include>org.mortbay.jetty:jetty*</include> 
+                            </includes> </artifactSet> -->
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
 
-			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<configuration>
-					<archive>
-						<manifest>
-							<mainClass>com.pivotal.jvsd.fx.Main</mainClass>
-						</manifest>
-					</archive>
-					<descriptorRefs>
-						<descriptorRef>jar-with-dependencies</descriptorRef>
-					</descriptorRefs>
-				</configuration>
-				<executions>
-					<execution>
-						<id>make-assembly</id>
-						<phase>package</phase>
-						<goals>
-							<goal>single</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>com.pivotal.jvsd.fx.Main</mainClass>
+                        </manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
 
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.5.1</version>
-				<configuration>
-					<source>${maven.compiler.source}</source>
-					<target>${maven.compiler.target}</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.5.1</version>
+                <configuration>
+                    <source>${maven.compiler.source}</source>
+                    <target>${maven.compiler.target}</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/chart/AdvancedLineChart.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/chart/AdvancedLineChart.java b/jvsdfx-mm/src/main/java/com/pivotal/chart/AdvancedLineChart.java
index 1300af1..4384269 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/chart/AdvancedLineChart.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/chart/AdvancedLineChart.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.chart;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/AbstractSeries.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/AbstractSeries.java b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/AbstractSeries.java
index 4b0faa5..0f0061f 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/AbstractSeries.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/AbstractSeries.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.javafx.scene.chart;
 
 import java.util.stream.Collectors;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/BasicDataSet.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/BasicDataSet.java b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/BasicDataSet.java
index 7ec0c5c..46835f0 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/BasicDataSet.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/BasicDataSet.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.javafx.scene.chart;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/ByteBufferNumberSeries.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/ByteBufferNumberSeries.java b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/ByteBufferNumberSeries.java
index e2a3e52..b3157b8 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/ByteBufferNumberSeries.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/ByteBufferNumberSeries.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.javafx.scene.chart;
 
 import java.nio.ByteBuffer;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataChangedListener.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataChangedListener.java b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataChangedListener.java
index e7cc1a7..8e42a2e 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataChangedListener.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataChangedListener.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.javafx.scene.chart;
 
 public interface DataChangedListener {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataSet.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataSet.java b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataSet.java
index bd67aef..64557c4 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataSet.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/javafx/scene/chart/DataSet.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.javafx.scene.chart;
 
 import java.util.List;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/controller/RootController.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/controller/RootController.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/controller/RootController.java
index a5692af..cc77ceb 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/controller/RootController.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/controller/RootController.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.controller;
 
 import com.pivotal.jvsd.fx.ChartManager;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ChartManager.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ChartManager.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ChartManager.java
index 700f9ea..4cf71a1 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ChartManager.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ChartManager.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import com.pivotal.jvsd.controller.RootController;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/HoveredThresholdNode.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/HoveredThresholdNode.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/HoveredThresholdNode.java
index cb3a4cd..eed7076 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/HoveredThresholdNode.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/HoveredThresholdNode.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import javafx.scene.Cursor;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/LongDoubleMemoryMappedSeries.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/LongDoubleMemoryMappedSeries.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/LongDoubleMemoryMappedSeries.java
index 939152c..132650b 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/LongDoubleMemoryMappedSeries.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/LongDoubleMemoryMappedSeries.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import java.nio.ByteBuffer;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/Main.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/Main.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/Main.java
index 0244c79..84eef0f 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/Main.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/Main.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import com.pivotal.jvsd.controller.RootController;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableByteBuffer.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableByteBuffer.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableByteBuffer.java
index 1f399b1..4f48894 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableByteBuffer.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableByteBuffer.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 public class ObservableByteBuffer {

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableDataBuffer.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableDataBuffer.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableDataBuffer.java
index 5d2cac5..dc87cb1 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableDataBuffer.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/ObservableDataBuffer.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import java.nio.ByteBuffer;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/StatFileManager.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/StatFileManager.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/StatFileManager.java
index aaabc33..a0175a3 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/StatFileManager.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/StatFileManager.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import com.pivotal.jvsd.model.stats.StatArchiveFile;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VSDChartWindow.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VSDChartWindow.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VSDChartWindow.java
index 0205a42..114d39f 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VSDChartWindow.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VSDChartWindow.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import java.io.File;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VsdSeries.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VsdSeries.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VsdSeries.java
index 9b1f8ff..1bb98d4 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VsdSeries.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/fx/VsdSeries.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.fx;
 
 import java.nio.MappedByteBuffer;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/ResourceWrapper.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/ResourceWrapper.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/ResourceWrapper.java
index 5811b9d..53024d5 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/ResourceWrapper.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/ResourceWrapper.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.model;
 
 import com.pivotal.jvsd.model.stats.StatArchiveFile;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFile.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFile.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFile.java
index 9bb3a80..fe9a57e 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFile.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFile.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.model.stats;
 
 import java.io.BufferedInputStream;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFormat.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFormat.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFormat.java
index 996f047..1830094 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFormat.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/model/stats/StatArchiveFormat.java
@@ -1,8 +1,18 @@
-/*=========================================================================
- * (c) Copyright 2002-2007, GemStone Systems, Inc. All Rights Reserved.
- * 1260 NW Waterhouse Ave., Suite 200,  Beaverton, OR 97006
- * All Rights Reserved.  
- *========================================================================
+/*
+ * 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 com.pivotal.jvsd.model.stats;
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fb4de6a3/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
----------------------------------------------------------------------
diff --git a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
index 34a5ee7..e130f10 100644
--- a/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
+++ b/jvsdfx-mm/src/main/java/com/pivotal/jvsd/stats/Utility.java
@@ -1,3 +1,19 @@
+/*
+ * 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 com.pivotal.jvsd.stats;
 
 import java.awt.event.ActionListener;