You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kato-commits@incubator.apache.org by sp...@apache.org on 2009/10/20 09:34:58 UTC

svn commit: r827016 - in /incubator/kato/branches/experimental/kato.javaview: ./ src/main/java/org/apache/kato/javaview/api/ src/main/java/org/apache/kato/javaview/impl/ src/test/java/test/apache/kato/javaview/ src/test/java/test/apache/kato/javaview/m...

Author: spoole
Date: Tue Oct 20 09:34:58 2009
New Revision: 827016

URL: http://svn.apache.org/viewvc?rev=827016&view=rev
Log:
get tests going for new javaview experiment

Added:
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStore.java
      - copied, changed from r826984, incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/Datastore.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStoreBuilder.java
      - copied, changed from r826984, incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewBuilder.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockImagePointer.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClass.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClassLoader.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaHeap.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaObject.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/SmallMockJavaRuntime.java
Removed:
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/Datastore.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewBuilder.java
Modified:
    incubator/kato/branches/experimental/kato.javaview/pom.xml
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/api/QueryResult.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassImpl.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassLoaderImpl.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaInstanceImpl.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewImpl.java
    incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/SQLDatastore.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/AbstractPersistentStoreTestCase.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistanceStoreScale.java
    incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistentStore.java

Modified: incubator/kato/branches/experimental/kato.javaview/pom.xml
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/pom.xml?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/pom.xml (original)
+++ incubator/kato/branches/experimental/kato.javaview/pom.xml Tue Oct 20 09:34:58 2009
@@ -18,7 +18,7 @@
   	<dependency>
   		<groupId>org.apache.derby</groupId>
 		<artifactId>derby</artifactId>
-		<version>10.5.3.0</version>
+		<version>10.4.2.0</version>
   	</dependency>
   	<dependency>
 		<groupId>junit</groupId>
@@ -26,5 +26,10 @@
 		<version>3.8.1</version>
 		<scope>test</scope>
 	</dependency>
+	 <dependency>
+    <groupId>mysql</groupId>
+    <artifactId>mysql-connector-java</artifactId>
+    <version>5.1.6</version>
+</dependency> 
   </dependencies>
 </project>
\ No newline at end of file

Modified: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/api/QueryResult.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/api/QueryResult.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/api/QueryResult.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/api/QueryResult.java Tue Oct 20 09:34:58 2009
@@ -32,4 +32,6 @@
     T getElement(long elementNumber) throws IOException;
     
     long getSize() throws IOException;
+
+	void dispose() throws IOException;
 }

Modified: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassImpl.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassImpl.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassImpl.java Tue Oct 20 09:34:58 2009
@@ -17,13 +17,13 @@
 import org.apache.kato.javaview.api.IJavaClass;
 import org.apache.kato.javaview.api.IJavaClassLoader;
 
-class JavaClassImpl implements IJavaClass {
+public class JavaClassImpl implements IJavaClass {
 	 
 	
 	/**
 	 * 
 	 */
-	private final Datastore store;
+	private final PersistentStore store;
 	private long id=0;
 	private long loader=0;
 	private String name=null;
@@ -31,7 +31,7 @@
 	
 	
 	
-	JavaClassImpl( Datastore store, long id,long loader,String name) {
+	JavaClassImpl( PersistentStore store, long id,long loader,String name) {
 		this.store=store;
 		this.id=id;
 		this.loader=loader;

Modified: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassLoaderImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassLoaderImpl.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassLoaderImpl.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaClassLoaderImpl.java Tue Oct 20 09:34:58 2009
@@ -22,11 +22,11 @@
 
 
 	private long id=0;
-	private Datastore store=null;
+	private PersistentStore store=null;
 	
 	
 	
-	JavaClassLoaderImpl(Datastore store,long id) {
+	JavaClassLoaderImpl(PersistentStore store,long id) {
 		this.id=id;
 		this.store=store;
 	

Modified: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaInstanceImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaInstanceImpl.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaInstanceImpl.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaInstanceImpl.java Tue Oct 20 09:34:58 2009
@@ -22,10 +22,10 @@
 
 class JavaInstanceImpl implements IJavaInstance{
 
-	private Datastore store=null;
+	private PersistentStore store=null;
 	private long id=0;
 	private long clazzid=0;
-	public JavaInstanceImpl(Datastore store,long id, long clazzid) {
+	public JavaInstanceImpl(PersistentStore store,long id, long clazzid) {
 		this.store=store;
 		this.id=id;
 		this.clazzid=clazzid;

Modified: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewImpl.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewImpl.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewImpl.java Tue Oct 20 09:34:58 2009
@@ -27,7 +27,7 @@
 import org.apache.kato.javaview.api.IJavaInstance;
 import org.apache.kato.javaview.api.IJavaView;
 import org.apache.kato.javaview.api.QueryResult;
-import org.apache.kato.javaview.impl.Datastore;
+import org.apache.kato.javaview.impl.PersistentStore;
 import org.apache.kato.javaview.impl.JavaClassImpl;
 import org.apache.kato.javaview.impl.JavaClassLoaderImpl;
 import org.apache.kato.javaview.impl.JavaInstanceImpl;
@@ -35,10 +35,10 @@
 public 
 class JavaViewImpl implements IJavaView {
 
-	Datastore store=null;
+	PersistentStore store=null;
 	private JavaRuntime runtime=null;
 	
-	public JavaViewImpl(JavaRuntime jrt, Datastore store) {
+	public JavaViewImpl(JavaRuntime jrt, PersistentStore store) {
 		this.store=store;
 		this.runtime=jrt;
 	}
@@ -53,110 +53,4 @@
 		// TODO Auto-generated method stub
 		return null;
 	}
-	
-void addInstances() {
-	
-		
-		for(JavaHeap h: runtime.getHeaps()) {
-			for(JavaObject o:h.getObjects()) {
-				try {
-					JavaClass clazz=o.getJavaClass();
-					long clazzid=clazz.getID().getAddress();
-					JavaClassImpl clazzImpl=store.getJavaClass(clazzid);
-					if(clazzImpl==null) {
-						System.out.println("cant find record for "+clazz.getName());
-					}
-					else {
-					long id=o.getID().getAddress();
-					JavaInstanceImpl impl=new JavaInstanceImpl(store,id,clazzid);
-					store.addJavaInstance(impl);
-					
-					
-					}
-					
-				} catch (CorruptDataException e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
-				}
-				
-				
-				
-			}
-		}
-		
-	
-		
-	}
-
-	 void addClassLoaders() {
-		
-		
-		
-		int count=0;
-		for(JavaClassLoader jcl:runtime.getJavaClassLoaders()) {
-			
-			
-			long id=1;
-			count++;
-			
-			JavaObject o;
-			try {
-				o = jcl.getObject();
-			
-			if(o!=null) id=o.getID().getAddress();
-			JavaClassLoaderImpl i=new JavaClassLoaderImpl(store,id);
-			store.addJavaClassLoader(i);
-			
-			// add classes...
-			
-			addClasses(store, jcl.getCachedClasses());
-			addClasses(store, jcl.getDefinedClasses());
-			
-			
-			
-			
-			} catch (CorruptDataException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-		System.out.println("Added "+count+" loaders");
-		
-	}
-
-	 void addClasses(Datastore store, List<JavaClass> list)
-			throws CorruptDataException {
-		for(JavaClass clazz:list) {
-			String name=clazz.getName();
-			long clazzid=clazz.getID().getAddress();
-			long loaderid=1;
-			
-			JavaClassLoader loader=clazz.getClassLoader();
-			if(loader!=null) {
-				JavaObject lobj=loader.getObject();
-				if(lobj!=null) {
-					loaderid=lobj.getID().getAddress();
-				}
-				
-			}
-			
-			clazz.getClassLoader().getObject().getID().getAddress();
-			JavaClassImpl clazzImpl=store.getJavaClass(clazzid);
-			if(clazzImpl==null) {
-				clazzImpl=new JavaClassImpl(store, clazzid,loaderid,name);
-				store.addJavaClass(clazzImpl);
-			}
-			else {
-				String oldName=store.getJavaClass(clazzid).getName();
-				if(oldName.equals(name)==false) {
-					throw new IllegalArgumentException(oldName+" != "+name);
-				}
-			}
-			
-			
-			//clazzImpl.setLoader(impl);
-			//impl.addCachedClass(clazzImpl);
-			
-		}
-	}
 }
\ No newline at end of file

Copied: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStore.java (from r826984, incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/Datastore.java)
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStore.java?p2=incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStore.java&p1=incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/Datastore.java&r1=826984&r2=827016&rev=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/Datastore.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStore.java Tue Oct 20 09:34:58 2009
@@ -16,9 +16,12 @@
 
 import java.io.IOException;
 
+import org.apache.kato.javaview.api.IJavaClass;
+import org.apache.kato.javaview.api.QueryResult;
+
 
 public 
- interface Datastore {
+ interface PersistentStore {
 
 	public void open() throws IOException;
 	
@@ -35,4 +38,6 @@
 	JavaClassLoaderImpl getJavaClassLoader(long loader);
 
 	public void close() throws IOException;
+
+	public QueryResult<IJavaClass> getAllClasses() throws IOException;
 }

Copied: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStoreBuilder.java (from r826984, incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewBuilder.java)
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStoreBuilder.java?p2=incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStoreBuilder.java&p1=incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewBuilder.java&r1=826984&r2=827016&rev=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/JavaViewBuilder.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/PersistentStoreBuilder.java Tue Oct 20 09:34:58 2009
@@ -14,36 +14,155 @@
 
 package org.apache.kato.javaview.impl;
 
+import java.io.File;
 import java.io.IOException;
+import java.util.List;
 
+import javax.tools.diagnostics.image.CorruptDataException;
+import javax.tools.diagnostics.runtime.java.JavaClass;
+import javax.tools.diagnostics.runtime.java.JavaClassLoader;
+import javax.tools.diagnostics.runtime.java.JavaHeap;
+import javax.tools.diagnostics.runtime.java.JavaObject;
 import javax.tools.diagnostics.runtime.java.JavaRuntime;
 
 import org.apache.kato.javaview.api.IJavaView;
 
 
 
-public class JavaViewBuilder {
+public class PersistentStoreBuilder {
 
 	
-	public  static IJavaView buildView(JavaRuntime jrt) throws IOException {
+	public PersistentStoreBuilder(File cacheDir) {
+		
+	}
+	
+	public  PersistentStore buildStore(JavaRuntime jrt) throws IOException {
 		
 		if(jrt==null) throw new IllegalArgumentException("runtime is null");
 		
-		Datastore s=new SQLDatastore("jdbc:mysql://localhost/javaview");
+		PersistentStore s=new SQLDatastore("jdbc:mysql://localhost/javaview");
 		s.open();
-		JavaViewImpl impl=new JavaViewImpl(jrt,s);
+		
 		
 		// add all the class loaders...
 		
-		impl.addClassLoaders();
-		impl.addInstances();
+		addClassLoaders(jrt,s);
+		addInstances(jrt,s);
+		
+	
+		
+		return  s;
+		
+	}
+
+	private static void addInstances(JavaRuntime runtime, PersistentStore store) {
+	
+		
+		for(JavaHeap h: runtime.getHeaps()) {
+			for(JavaObject o:h.getObjects()) {
+				try {
+					JavaClass clazz=o.getJavaClass();
+					if(clazz==null) {
+						System.out.println("Object without class");
+						continue;
+					}
+					long clazzid=clazz.getID().getAddress();
+					JavaClassImpl clazzImpl=store.getJavaClass(clazzid);
+					if(clazzImpl==null) {
+						System.out.println("cant find record for "+clazz.getName());
+					}
+					else {
+					long id=o.getID().getAddress();
+					JavaInstanceImpl impl=new JavaInstanceImpl(store,id,clazzid);
+					store.addJavaInstance(impl);
+					
+					
+					}
+					
+				} catch (CorruptDataException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+				
+				
+				
+			}
+		}
+		
+	
+		
+	}
+
+	private static void addClassLoaders(JavaRuntime runtime, PersistentStore store) {
+		
 		
-		s.close();
 		
-		return  impl;
+		int count=0;
+		for(JavaClassLoader jcl:runtime.getJavaClassLoaders()) {
+			
+			
+			long id=1;
+			count++;
+			
+			JavaObject o;
+			try {
+				o = jcl.getObject();
+			
+			if(o!=null) id=o.getID().getAddress();
+			JavaClassLoaderImpl i=new JavaClassLoaderImpl(store,id);
+			store.addJavaClassLoader(i);
+			
+			// add classes...
+			
+			addClasses(store, jcl.getCachedClasses());
+			addClasses(store, jcl.getDefinedClasses());
+			
+			
+			
+			
+			} catch (CorruptDataException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		System.out.println("Added "+count+" loaders");
 		
 	}
 
+	private static void addClasses(PersistentStore store, List<JavaClass> list)
+			throws CorruptDataException {
+		for(JavaClass clazz:list) {
+			String name=clazz.getName();
+			long clazzid=clazz.getID().getAddress();
+			long loaderid=1;
+			
+			JavaClassLoader loader=clazz.getClassLoader();
+			if(loader!=null) {
+				JavaObject lobj=loader.getObject();
+				if(lobj!=null) {
+					loaderid=lobj.getID().getAddress();
+				}
+			}
+			
+			JavaClassImpl clazzImpl=store.getJavaClass(clazzid);
+			if(clazzImpl==null) {
+				clazzImpl=new JavaClassImpl(store, clazzid,loaderid,name);
+				store.addJavaClass(clazzImpl);
+			}
+			else {
+				String oldName=store.getJavaClass(clazzid).getName();
+				if(oldName.equals(name)==false) {
+					throw new IllegalArgumentException(oldName+" != "+name);
+				}
+			}
+			
+			
+			//clazzImpl.setLoader(impl);
+			//impl.addCachedClass(clazzImpl);
+			
+		}
+	}
+
 	
 
 		

Modified: incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/SQLDatastore.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/SQLDatastore.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/SQLDatastore.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/main/java/org/apache/kato/javaview/impl/SQLDatastore.java Tue Oct 20 09:34:58 2009
@@ -7,8 +7,12 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.util.Iterator;
 
-public class SQLDatastore implements Datastore{
+import org.apache.kato.javaview.api.IJavaClass;
+import org.apache.kato.javaview.api.QueryResult;
+
+public class SQLDatastore implements PersistentStore{
 
 	Connection connection=null;
 	PreparedStatement insertInstance=null;
@@ -172,4 +176,75 @@
 		
 		
 	}
+
+	@Override
+	public QueryResult<IJavaClass> getAllClasses() throws IOException {
+		
+		try {
+			Statement s=connection.createStatement();
+			final ResultSet rs=s.executeQuery("select * from classes");
+			return new QueryResult<IJavaClass>() {
+
+				@Override
+				public void applyFilter(String filter) {
+					// TODO Auto-generated method stub
+					
+				}
+
+				@Override
+				public void dispose() throws IOException {
+					try {
+						rs.close();
+					} catch (SQLException e) {
+						throw new IOException(e);
+					}
+					
+				}
+
+				@Override
+				public QueryResult<IJavaClass> filterSet(String filter) {
+					// TODO Auto-generated method stub
+					return null;
+				}
+
+				@Override
+				public IJavaClass getElement(long elementNumber)
+						throws IOException {
+					// TODO Auto-generated method stub
+					return null;
+				}
+
+				@Override
+				public long getSize() throws IOException {
+					
+				    try {
+						int current=rs.getRow();
+						rs.last();
+						long size=rs.getRow();
+						if(current==0)  rs.beforeFirst();
+						else rs.absolute(current);
+						return size;
+					} catch (SQLException e) {
+					throw new IOException(e);
+					}
+				    
+				}
+
+				@Override
+				public QueryResult<?> query(String filter) {
+					// TODO Auto-generated method stub
+					return null;
+				}
+
+				@Override
+				public Iterator<IJavaClass> iterator() {
+					// TODO Auto-generated method stub
+					return null;
+				}
+			};
+		} catch (SQLException e) {
+			throw new IOException(e);
+		}
+	
+	}
 }

Modified: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/AbstractPersistentStoreTestCase.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/AbstractPersistentStoreTestCase.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/AbstractPersistentStoreTestCase.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/AbstractPersistentStoreTestCase.java Tue Oct 20 09:34:58 2009
@@ -18,11 +18,11 @@
 
 import javax.tools.diagnostics.runtime.java.JavaRuntime;
 
+import junit.framework.TestCase;
+
 import org.apache.kato.javaview.impl.PersistentStore;
 import org.apache.kato.javaview.impl.PersistentStoreBuilder;
 
-import junit.framework.TestCase;
-
 public abstract class AbstractPersistentStoreTestCase  extends TestCase{
 
 	protected void deleteFile(File dir) {

Modified: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistanceStoreScale.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistanceStoreScale.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistanceStoreScale.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistanceStoreScale.java Tue Oct 20 09:34:58 2009
@@ -16,62 +16,33 @@
 import java.io.File;
 import java.io.IOException;
 
-import javax.tools.diagnostics.FactoryRegistry;
-import javax.tools.diagnostics.image.CorruptDataException;
-import javax.tools.diagnostics.runtime.java.JavaClass;
-import javax.tools.diagnostics.runtime.java.JavaHeap;
-import javax.tools.diagnostics.runtime.java.JavaObject;
 import javax.tools.diagnostics.runtime.java.JavaRuntime;
 
+import org.apache.kato.javaview.api.IJavaClass;
+import org.apache.kato.javaview.api.QueryResult;
 import org.apache.kato.javaview.impl.PersistentStore;
-import org.apache.kato.javaview.impl.Table;
+
+import test.apache.kato.javaview.mockdata.SmallMockJavaRuntime;
+
 
 public class TestPersistanceStoreScale extends AbstractPersistentStoreTestCase {
 
+	static String testname=TestPersistanceStoreScale.class.getCanonicalName();
 	
 	public void testLoadPersistentStore() throws IOException {
 		
-		File base=new File("C:\\Documents and Settings\\spoole\\Desktop\\core.core");
 		
-		JavaRuntime jrt=FactoryRegistry.getDefaultRegistry().getJavaRuntime(base);
-		assertNotNull(jrt);
+		File f=new File("foo");
 		
-	
+		JavaRuntime jrt=new SmallMockJavaRuntime(f);
 		PersistentStore store=getStore(jrt);
 		
-		int count=0;
-		int cycle=0;
-		int cdeCount=0;
-		// add in class object data
-		
-		Table table=store.getClassObjectTable();
-		
-		for(JavaHeap heap:jrt.getHeaps()) {
-			for(JavaObject object:heap.getObjects()) {
-				try {
-					JavaClass clazz=object.getJavaClass();
-					if(clazz!=null) {
-						long clazz_addr=clazz.getID().getAddress();
-						long obj_addr=object.getID().getAddress();
-						table.put(clazz_addr,obj_addr);
-						count++;
-						cycle++;
-						if(cycle>1000) {
-							cycle=0;
-							System.out.print("Count "+count+" errs="+cdeCount);
-						}
-					}
-				} catch (CorruptDataException e) {
-					cdeCount++;
-				}
-				
-			}
-		}
-		
-		long records=table.setSize();
+		QueryResult<IJavaClass>  clazzes=store.getAllClasses();
+		long size=clazzes.getSize();
+		clazzes.dispose();
 		store.close();
 		
-		assertEquals(3,records);
+		assertEquals(3,size);
 		
 		
 	}

Modified: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistentStore.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistentStore.java?rev=827016&r1=827015&r2=827016&view=diff
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistentStore.java (original)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/TestPersistentStore.java Tue Oct 20 09:34:58 2009
@@ -38,403 +38,17 @@
 
 import junit.framework.TestCase;
 
+import org.apache.kato.javaview.api.IJavaClass;
+import org.apache.kato.javaview.api.QueryResult;
 import org.apache.kato.javaview.impl.PersistentStore;
 import org.apache.kato.javaview.impl.Table;
 
+import test.apache.kato.javaview.mockdata.SmallMockJavaRuntime;
+
 public class TestPersistentStore extends AbstractPersistentStoreTestCase {
 
-	private static long lastaddr=0;
 	
-	private final class MockPointer implements ImagePointer {
-		
-		private long addr=0;
-		public MockPointer(long addr) {
-			this.addr=addr;
-		}
-
-		@Override
-		public ImagePointer add(long offset) {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public long getAddress() {
-			return addr;
-		}
-
-		@Override
-		public ImageAddressSpace getAddressSpace() {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public byte getByteAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return 0;
-		}
-
-		@Override
-		public double getDoubleAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return 0;
-		}
-
-		@Override
-		public float getFloatAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return 0;
-		}
-
-		@Override
-		public int getIntAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return 0;
-		}
-
-		@Override
-		public long getLongAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return 0;
-		}
-
-		@Override
-		public ImagePointer getPointerAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public short getShortAt(long index)
-				throws MemoryAccessException, CorruptDataException {
-			// TODO Auto-generated method stub
-			return 0;
-		}
-
-		@Override
-		public boolean isExecutable() throws DataUnavailable {
-			// TODO Auto-generated method stub
-			return false;
-		}
-
-		@Override
-		public boolean isReadOnly() throws DataUnavailable {
-			// TODO Auto-generated method stub
-			return false;
-		}
-
-		@Override
-		public boolean isShared() throws DataUnavailable {
-			// TODO Auto-generated method stub
-			return false;
-		}
-	}
-	private final class MockJavaRuntime implements JavaRuntime {
-		
-		private final class MockJavaObject implements JavaObject {
-			
-			private JavaClass clazz=null;
-			private long addr=0;			
-			public MockJavaObject(JavaClass c1) {
-				this.clazz=c1;
-					lastaddr++;
-					addr=lastaddr;
-
-			}
-
-			@Override
-			public boolean isArray() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return false;
-			}
-
-			@Override
-			public long getSize() throws CorruptDataException {
-			
-				return 0;
-			}
-
-			@Override
-			public List<ImageSection> getSections() {
-			
-				return null;
-			}
-
-			@Override
-			public List<JavaReference> getReferences() {
-			
-				return null;
-			}
-
-			@Override
-			public long getPersistentHashcode() throws DataUnavailable,
-					CorruptDataException {
-			
-				return 0;
-			}
-
-			@Override
-			public JavaClass getJavaClass() throws CorruptDataException {
-				return clazz;
-			}
-
-			@Override
-			public ImagePointer getID() {
-			return new MockPointer(addr);
-			}
-
-			@Override
-			public JavaHeap getHeap() throws CorruptDataException, DataUnavailable {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public long getHashcode() throws DataUnavailable, CorruptDataException {
-				// TODO Auto-generated method stub
-				return 0;
-			}
-
-			@Override
-			public int getArraySize() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return 0;
-			}
-
-			@Override
-			public void arraycopy(int srcStart, Object dst, int dstStart, int length)
-					throws CorruptDataException, MemoryAccessException {
-				// TODO Auto-generated method stub
-				
-			}
-		}
-
-		private final class MockJavaClass implements JavaClass {
-			
-			
-
-			private long addr=0;
-			public MockJavaClass() {
-			
-				lastaddr++;
-				addr=lastaddr;
-			}
-
-			
-			 
-			
-			@Override
-			public JavaClassLoader getClassLoader()
-					throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public JavaClass getComponentType() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public List<JavaObject> getConstantPoolReferences() {
-			
-				return null;
-			}
-
-			@Override
-			public List<JavaField> getDeclaredFields() {
-			
-				return null;
-			}
-
-			@Override
-			public List<JavaMethod> getDeclaredMethods() {
-			
-				return null;
-			}
-
-			@Override
-			public ImagePointer getID() {
-			 
-				return new MockPointer(addr);
-			}
-
-			@Override
-			public List<String> getInterfaces() {
-			
-				return null;
-			}
-
-			@Override
-			public int getModifiers() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return 0;
-			}
-
-			@Override
-			public String getName() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public JavaObject getObject() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public List<JavaReference> getReferences() {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public JavaClass getSuperclass() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public boolean isArray() throws CorruptDataException {
-				// TODO Auto-generated method stub
-				return false;
-			}
-		}
-
-		private final class MockHeap implements JavaHeap {
-			private final List<JavaObject> objects;
-
-			private MockHeap(List<JavaObject> objects) {
-				this.objects = objects;
-			}
-
-			@Override
-			public String getName() {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			@Override
-			public List<JavaObject> getObjects() {
-				return objects;
-			}
-
-			@Override
-			public List<ImageSection> getSections() {
-				// TODO Auto-generated method stub
-				return null;
-			}
-		}
-
-		List<JavaHeap> heaps=new LinkedList<JavaHeap>();
-		public MockJavaRuntime() {
-			
-			JavaClass  c1=new MockJavaClass();
-			JavaObject a1=new MockJavaObject(c1);
-			JavaClass  c2=new MockJavaClass();
-			JavaObject b1=new MockJavaObject(c2);
-			JavaObject b2=new MockJavaObject(c2);
-			
-			final List<JavaObject> objects=new LinkedList<JavaObject>();
-			objects.add(a1);
-			objects.add(b1);
-			objects.add(b2);
-			
-			heaps.add(new MockHeap(objects));
-		}
-
-		
-		
-		@Override
-		public String getVersion() throws CorruptDataException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public String getFullVersion() throws CorruptDataException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public Object getTraceBuffer(String bufferName, boolean formatted)
-				throws CorruptDataException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public List<JavaThread> getThreads() {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public File getSource() {
-			return new File("testfile.txt");
-		}
-
-		@Override
-		public JavaObject getObjectAtAddress(ImagePointer address)
-				throws CorruptDataException, IllegalArgumentException,
-				MemoryAccessException, DataUnavailable {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public List<JavaMonitor> getMonitors() {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public JavaVMInitArgs getJavaVMInitArgs() throws DataUnavailable,
-				CorruptDataException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public ImagePointer getJavaVM() throws CorruptDataException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public List<JavaClassLoader> getJavaClassLoaders() {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public List<JavaHeap> getHeaps() {
-			return heaps;
-		}
-
-		@Override
-		public List<JavaReference> getHeapRoots() {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-		@Override
-		public List<JavaMethod> getCompiledMethods() {
-			// TODO Auto-generated method stub
-			return null;
-		}
-	}
-
+	
 	/**
 	 * Test we can create a persistent store from scratch
 	 * @throws IOException
@@ -451,37 +65,21 @@
 			}
 		}
 		
-		getStore(new MockJavaRuntime());
+		getStore(new SmallMockJavaRuntime(storeDir));
 	}
 	 
 	public void testSmallPopulateClassObjectTable() throws IOException {
 		
-		JavaRuntime jrt=new MockJavaRuntime();
+		JavaRuntime jrt=new SmallMockJavaRuntime(null);
+		
 		PersistentStore store=getStore(jrt);
 		
 		// add in class object data
+		QueryResult<IJavaClass> table=store.getAllClasses();
 		
-		Table table=store.getClassObjectTable();
-		
-		for(JavaHeap heap:jrt.getHeaps()) {
-			for(JavaObject object:heap.getObjects()) {
-				try {
-					JavaClass clazz=object.getJavaClass();
-					if(clazz!=null) {
-						long clazz_addr=clazz.getID().getAddress();
-						long obj_addr=object.getID().getAddress();
-						table.put(clazz_addr,obj_addr);
-					}
-				} catch (CorruptDataException e) {
-					
-				}
-				
-			}
-		}
-		
-		long records=table.setSize();
+		long records=table.getSize();
+		table.dispose();
 		store.close();
-		
 		assertEquals(3,records);
 		
 		

Added: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockImagePointer.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockImagePointer.java?rev=827016&view=auto
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockImagePointer.java (added)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockImagePointer.java Tue Oct 20 09:34:58 2009
@@ -0,0 +1,102 @@
+/**
+ * 
+ */
+package test.apache.kato.javaview.mockdata;
+
+import javax.tools.diagnostics.image.CorruptDataException;
+import javax.tools.diagnostics.image.DataUnavailable;
+import javax.tools.diagnostics.image.ImageAddressSpace;
+import javax.tools.diagnostics.image.ImagePointer;
+import javax.tools.diagnostics.image.MemoryAccessException;
+
+class MockImagePointer implements ImagePointer {
+	
+	private long id=0;
+	public MockImagePointer(long id) {
+		this.id=id;
+	}
+	@Override
+	public ImagePointer add(long offset) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public long getAddress() {
+		
+		return this.id;
+	}
+
+	@Override
+	public ImageAddressSpace getAddressSpace() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public byte getByteAt(long index) throws MemoryAccessException,
+			CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public double getDoubleAt(long index)
+			throws MemoryAccessException, CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public float getFloatAt(long index)
+			throws MemoryAccessException, CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public int getIntAt(long index) throws MemoryAccessException,
+			CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public long getLongAt(long index) throws MemoryAccessException,
+			CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public ImagePointer getPointerAt(long index)
+			throws MemoryAccessException, CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public short getShortAt(long index)
+			throws MemoryAccessException, CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public boolean isExecutable() throws DataUnavailable {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean isReadOnly() throws DataUnavailable {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean isShared() throws DataUnavailable {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}
\ No newline at end of file

Added: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClass.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClass.java?rev=827016&view=auto
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClass.java (added)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClass.java Tue Oct 20 09:34:58 2009
@@ -0,0 +1,108 @@
+/**
+ * 
+ */
+package test.apache.kato.javaview.mockdata;
+
+import java.util.List;
+
+import javax.tools.diagnostics.image.CorruptDataException;
+import javax.tools.diagnostics.image.ImagePointer;
+import javax.tools.diagnostics.runtime.java.JavaClass;
+import javax.tools.diagnostics.runtime.java.JavaClassLoader;
+import javax.tools.diagnostics.runtime.java.JavaField;
+import javax.tools.diagnostics.runtime.java.JavaMethod;
+import javax.tools.diagnostics.runtime.java.JavaObject;
+import javax.tools.diagnostics.runtime.java.JavaReference;
+
+final class MockJavaClass implements JavaClass {
+	private static long lastclazzID=1000;
+	private long clazzid=0;
+	private String name=null;
+	private JavaClassLoader loader=null;
+	
+	
+	public MockJavaClass(String name,JavaClassLoader loader) {
+		lastclazzID++;
+		clazzid=lastclazzID;
+		this.name=name;
+		this.loader=loader;
+	}
+
+	@Override
+	public JavaClassLoader getClassLoader()
+			throws CorruptDataException {
+		return loader;
+	}
+
+	@Override
+	public JavaClass getComponentType() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaObject> getConstantPoolReferences() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaField> getDeclaredFields() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaMethod> getDeclaredMethods() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public ImagePointer getID() {
+		
+		return new MockImagePointer(clazzid);
+	}
+
+	@Override
+	public List<String> getInterfaces() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getModifiers() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public String getName() throws CorruptDataException {
+		
+		return name;
+	}
+
+	@Override
+	public JavaObject getObject() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaReference> getReferences() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public JavaClass getSuperclass() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean isArray() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}
\ No newline at end of file

Added: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClassLoader.java?rev=827016&view=auto
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClassLoader.java (added)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaClassLoader.java Tue Oct 20 09:34:58 2009
@@ -0,0 +1,43 @@
+package test.apache.kato.javaview.mockdata;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.tools.diagnostics.image.CorruptDataException;
+import javax.tools.diagnostics.runtime.java.JavaClass;
+import javax.tools.diagnostics.runtime.java.JavaClassLoader;
+import javax.tools.diagnostics.runtime.java.JavaObject;
+
+public class MockJavaClassLoader implements JavaClassLoader {
+
+	List<JavaClass> clazzes=new LinkedList<JavaClass>();
+	
+	@Override
+	public JavaClass findClass(String name) throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaClass> getCachedClasses() {
+		return clazzes;
+	}
+
+	@Override
+	public List<JavaClass> getDefinedClasses() {
+	
+		return clazzes;
+	}
+
+	@Override
+	public JavaObject getObject() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void addClass(JavaClass javaClass) {
+		clazzes.add(javaClass);
+		
+	}
+
+}

Added: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaHeap.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaHeap.java?rev=827016&view=auto
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaHeap.java (added)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaHeap.java Tue Oct 20 09:34:58 2009
@@ -0,0 +1,36 @@
+package test.apache.kato.javaview.mockdata;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.tools.diagnostics.image.ImageSection;
+import javax.tools.diagnostics.runtime.java.JavaHeap;
+import javax.tools.diagnostics.runtime.java.JavaObject;
+
+public class MockJavaHeap implements JavaHeap{
+
+	private List<JavaObject> objects=new LinkedList<JavaObject>();
+	@Override
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaObject> getObjects() {
+		
+		return objects;
+	}
+
+	@Override
+	public List<ImageSection> getSections() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void add(MockJavaObject mockJavaObject) {
+		objects.add(mockJavaObject);
+		
+	}
+
+}

Added: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaObject.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaObject.java?rev=827016&view=auto
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaObject.java (added)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/MockJavaObject.java Tue Oct 20 09:34:58 2009
@@ -0,0 +1,105 @@
+/**
+ * 
+ */
+package test.apache.kato.javaview.mockdata;
+
+import java.util.List;
+
+import javax.tools.diagnostics.image.CorruptDataException;
+import javax.tools.diagnostics.image.DataUnavailable;
+import javax.tools.diagnostics.image.ImagePointer;
+import javax.tools.diagnostics.image.ImageSection;
+import javax.tools.diagnostics.image.MemoryAccessException;
+import javax.tools.diagnostics.runtime.java.JavaClass;
+import javax.tools.diagnostics.runtime.java.JavaHeap;
+import javax.tools.diagnostics.runtime.java.JavaObject;
+import javax.tools.diagnostics.runtime.java.JavaReference;
+
+final class MockJavaObject implements JavaObject {
+	private static long lastID=1000;
+	private long id=0;
+	private JavaClass clazz=null;
+	
+	public MockJavaObject(JavaClass clazz) {
+		lastID++;
+		id=lastID;
+		this.clazz=clazz;
+	}
+
+	@Override
+	public void arraycopy(int srcStart, Object dst,
+			int dstStart, int length)
+			throws CorruptDataException,
+			MemoryAccessException {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public int getArraySize()
+			throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public long getHashcode() throws DataUnavailable,
+			CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public JavaHeap getHeap()
+			throws CorruptDataException,
+			DataUnavailable {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public ImagePointer getID() {
+		
+		return new MockImagePointer(id);
+	}
+
+	@Override
+	public JavaClass getJavaClass()
+			throws CorruptDataException {
+		
+		return clazz;
+	}
+
+	@Override
+	public long getPersistentHashcode()
+			throws DataUnavailable,
+			CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<JavaReference> getReferences() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<ImageSection> getSections() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public long getSize() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public boolean isArray()
+			throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}
\ No newline at end of file

Added: incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/SmallMockJavaRuntime.java
URL: http://svn.apache.org/viewvc/incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/SmallMockJavaRuntime.java?rev=827016&view=auto
==============================================================================
--- incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/SmallMockJavaRuntime.java (added)
+++ incubator/kato/branches/experimental/kato.javaview/src/test/java/test/apache/kato/javaview/mockdata/SmallMockJavaRuntime.java Tue Oct 20 09:34:58 2009
@@ -0,0 +1,134 @@
+/**
+ * 
+ */
+package test.apache.kato.javaview.mockdata;
+
+import java.io.File;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.tools.diagnostics.image.CorruptDataException;
+import javax.tools.diagnostics.image.DataUnavailable;
+import javax.tools.diagnostics.image.ImagePointer;
+import javax.tools.diagnostics.image.MemoryAccessException;
+import javax.tools.diagnostics.runtime.java.JavaClass;
+import javax.tools.diagnostics.runtime.java.JavaClassLoader;
+import javax.tools.diagnostics.runtime.java.JavaHeap;
+import javax.tools.diagnostics.runtime.java.JavaMethod;
+import javax.tools.diagnostics.runtime.java.JavaMonitor;
+import javax.tools.diagnostics.runtime.java.JavaObject;
+import javax.tools.diagnostics.runtime.java.JavaReference;
+import javax.tools.diagnostics.runtime.java.JavaRuntime;
+import javax.tools.diagnostics.runtime.java.JavaThread;
+import javax.tools.diagnostics.runtime.java.JavaVMInitArgs;
+
+
+public class SmallMockJavaRuntime implements JavaRuntime {
+	
+	private JavaClass[] clazzes=null;
+	private List<JavaClassLoader> loaders=null;
+	private File source=null;
+	private List<JavaHeap>  heaps=null;
+	
+	public SmallMockJavaRuntime(File source) {
+		this.source=source;
+		clazzes=new JavaClass[3];
+		loaders=new LinkedList<JavaClassLoader>();
+		MockJavaClassLoader loader=new MockJavaClassLoader();
+		loaders.add(loader);
+		
+		clazzes[0]=new MockJavaClass("a",loader);
+		clazzes[1]=new MockJavaClass("b",loader);
+		clazzes[2]=new MockJavaClass("c",loader);
+		loader.addClass(clazzes[0]);
+		loader.addClass(clazzes[1]);
+		loader.addClass(clazzes[2]);
+		heaps=new LinkedList<JavaHeap>();
+		MockJavaHeap heap=new MockJavaHeap();
+		heap.add(new MockJavaObject(clazzes[0]));
+		heap.add(new MockJavaObject(clazzes[1]));
+		heap.add(new MockJavaObject(clazzes[2]));
+		heaps.add(heap);
+		
+	}
+	@Override
+	public String getVersion() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getFullVersion() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Object getTraceBuffer(String bufferName, boolean formatted)
+			throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaThread> getThreads() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public File getSource() {
+		
+		return source;
+	}
+
+	@Override
+	public JavaObject getObjectAtAddress(ImagePointer address)
+			throws CorruptDataException, IllegalArgumentException,
+			MemoryAccessException, DataUnavailable {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaMonitor> getMonitors() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public JavaVMInitArgs getJavaVMInitArgs() throws DataUnavailable,
+			CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public ImagePointer getJavaVM() throws CorruptDataException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaClassLoader> getJavaClassLoaders() {
+		
+		return loaders;
+	}
+
+	@Override
+	public List<JavaHeap> getHeaps() {
+		return heaps;
+	}
+
+	@Override
+	public List<JavaReference> getHeapRoots() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<JavaMethod> getCompiledMethods() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}
\ No newline at end of file