Adding a file genomix-pregelix

git-svn-id: https://hyracks.googlecode.com/svn/branches/fullstack_genomix@2900 123451ca-8445-de46-9d55-352943316053
diff --git a/genomix/genomix-pregelix/.classpath b/genomix/genomix-pregelix/.classpath
new file mode 100644
index 0000000..31cf404
--- /dev/null
+++ b/genomix/genomix-pregelix/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/genomix/genomix-pregelix/.project b/genomix/genomix-pregelix/.project
new file mode 100644
index 0000000..8a64f92
--- /dev/null
+++ b/genomix/genomix-pregelix/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>genomix-pregelix</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/genomix/genomix-pregelix/.settings/org.eclipse.jdt.core.prefs b/genomix/genomix-pregelix/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..60105c1
--- /dev/null
+++ b/genomix/genomix-pregelix/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/genomix/genomix-pregelix/.settings/org.maven.ide.eclipse.prefs b/genomix/genomix-pregelix/.settings/org.maven.ide.eclipse.prefs
new file mode 100644
index 0000000..cfdba58
--- /dev/null
+++ b/genomix/genomix-pregelix/.settings/org.maven.ide.eclipse.prefs
@@ -0,0 +1,7 @@
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/genomix/genomix-pregelix/folder/test.dat b/genomix/genomix-pregelix/folder/test.dat
new file mode 100644
index 0000000..266a4f4
--- /dev/null
+++ b/genomix/genomix-pregelix/folder/test.dat
@@ -0,0 +1,4 @@
+ 
+ "
+ D
+- ˆ
diff --git a/genomix/genomix-pregelix/pom.xml b/genomix/genomix-pregelix/pom.xml
new file mode 100644
index 0000000..28f5e1c
--- /dev/null
+++ b/genomix/genomix-pregelix/pom.xml
@@ -0,0 +1,164 @@
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>edu.uci.ics.pregelix</groupId>
+  <artifactId>genomix-pregelix</artifactId>
+  <version>0.2.2</version>
+  <packaging>jar</packaging>
+  <name>genomix-pregelix</name>
+
+  <properties>
+    <jvm.extraargs/>
+  </properties>
+
+  <profiles>
+    <profile>
+      <id>macosx</id>
+      <activation>
+        <os>
+          <name>mac os x</name>
+        </os>
+        <jdk>1.7</jdk>
+      </activation>
+      <properties>
+        <jvm.extraargs>-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.KQueueSelectorProvider</jvm.extraargs>
+      </properties>
+    </profile>
+  </profiles>
+
+  <build>
+        <plugins>
+            <plugin>
+                                <groupId>org.apache.maven.plugins</groupId>
+                                <artifactId>maven-compiler-plugin</artifactId>
+                                <version>2.0.2</version>
+                                <configuration>
+                                        <source>1.6</source>
+                                        <target>1.6</target>
+                                </configuration>
+                        </plugin>
+                        <plugin>
+                                <artifactId>maven-assembly-plugin</artifactId>
+                                <configuration>
+                                        <descriptorRefs>
+                                                <descriptorRef>jar-with-dependencies</descriptorRef>
+                                        </descriptorRefs>
+                                </configuration>
+                                <executions>
+                                        <execution>
+                                                <id>make-my-jar-with-dependencies</id>
+                                                <phase>package</phase>
+                                                <goals>
+                                                        <goal>single</goal>
+                                                </goals>
+                                        </execution>
+                                </executions>
+                        </plugin>
+                        <plugin>
+                                <groupId>org.apache.maven.plugins</groupId>
+                                <artifactId>maven-surefire-plugin</artifactId>
+                                <version>2.7.2</version>
+                                <configuration>
+                                        <forkMode>pertest</forkMode>
+                                        <argLine>-enableassertions -Xmx2047m -Dfile.encoding=UTF-8
+                                                -Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
+                                        <includes>
+                                                <include>**/*TestSuite.java</include>
+                                                <include>**/*Test.java</include>
+                                        </includes>
+                                </configuration>
+                        </plugin>
+                        <plugin>
+                                <artifactId>maven-clean-plugin</artifactId>
+                                <configuration>
+                                        <filesets>
+                                                <fileset>
+                                                        <directory>.</directory>
+                                                        <includes>
+                                                                <include>teststore*</include>
+                                                                <include>edu*</include>
+                                                                <include>actual*</include>
+                                                                <include>build*</include>
+                                                                <include>expect*</include>
+                                                                <include>ClusterController*</include>
+                                                                <include>edu.uci.*</include>
+                                                        </includes>
+                                                </fileset>
+                                        </filesets>
+                                </configuration>
+                        </plugin>
+                </plugins>
+        </build>
+
+        <dependencies>
+                <dependency>
+                        <groupId>edu.uci.ics.hyracks</groupId>
+                        <artifactId>pregelix-core</artifactId>
+                        <version>0.2.2</version>
+                        <type>jar</type>
+                        <scope>compile</scope>
+                </dependency>
+                <dependency>
+                        <groupId>edu.uci.ics.hyracks</groupId>
+                        <artifactId>pregelix-example</artifactId>
+                        <version>0.2.2</version>
+                        <type>jar</type>
+                        <scope>compile</scope>
+                </dependency>
+                <dependency>
+                        <groupId>junit</groupId>
+                        <artifactId>junit</artifactId>
+                        <version>4.8.1</version>
+                        <scope>test</scope>
+                </dependency>
+        </dependencies>
+
+  <scm>
+    <connection>scm:svn:https://hyracks.googlecode.com/svn/trunk/fullstack/pregelix</connection>
+    <developerConnection>scm:svn:https://hyracks.googlecode.com/svn/trunk/fullstack/pregelix</developerConnection>
+    <url>http://code.google.com/p/hyracks/source/browse/#svn/trunk/fullstack/pregelix</url>
+  </scm>
+
+  <distributionManagement>
+    <repository>
+      <id>hyracks-releases</id>
+      <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-releases/</url>
+    </repository>
+    <snapshotRepository>
+      <id>hyracks-snapshots</id>
+      <url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-snapshots/</url>
+    </snapshotRepository>
+  </distributionManagement>
+
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changelog-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+
+  <repositories>
+    <repository>
+      <id>hyracks-public</id>
+      <url>http://obelix.ics.uci.edu/nexus/content/groups/hyracks-public/</url>
+    </repository>
+    <repository>
+      <id>jboss-public</id>
+      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
+    </repository>
+  </repositories>
+
+  <pluginRepositories>
+    <pluginRepository>
+      <id>hyracks-public</id>
+      <url>http://obelix.ics.uci.edu/nexus/content/groups/hyracks-public/</url>
+      <releases>
+        <updatePolicy>always</updatePolicy>
+      </releases>
+    </pluginRepository>
+  </pluginRepositories>
+</project>
+
+
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LoadGraphVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LoadGraphVertex.java
new file mode 100644
index 0000000..4af68fb
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LoadGraphVertex.java
@@ -0,0 +1,109 @@
+package edu.uci.ics.pregelix;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import org.apache.hadoop.io.ByteWritable;
+import org.apache.hadoop.io.BytesWritable;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.mapreduce.RecordWriter;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.io.VertexWriter;
+import edu.uci.ics.pregelix.api.io.text.TextVertexOutputFormat;
+import edu.uci.ics.pregelix.api.io.text.TextVertexOutputFormat.TextVertexWriter;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.example.client.Client;
+import edu.uci.ics.pregelix.example.io.MessageWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10	0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+public class LoadGraphVertex extends Vertex<BytesWritable, ByteWritable, NullWritable, MessageWritable>{
+	
+	private ByteWritable tmpVertexValue = new ByteWritable();
+	
+	/**
+	 * For test, in compute method, make each vertexValue shift 1 to left.
+	 * It will be modified when going forward to next step.
+	 */
+	@Override
+	public void compute(Iterator<MessageWritable> msgIterator) {
+		if(getSuperstep() == 1){
+			tmpVertexValue.set(getVertexValue().get());
+			tmpVertexValue.set((byte) (tmpVertexValue.get() << 1));
+			setVertexValue(tmpVertexValue);
+		}
+		else
+			voteToHalt();
+	 }
+	
+    /**
+     * Simple VertexWriter that supports {@link SimpleLoadGraphVertex}
+     */
+    public static class SimpleLoadGraphVertexWriter extends
+            TextVertexWriter<BytesWritable, ByteWritable, NullWritable> {
+        public SimpleLoadGraphVertexWriter(RecordWriter<Text, Text> lineRecordWriter) {
+            super(lineRecordWriter);
+        }
+
+        @Override
+        public void writeVertex(Vertex<BytesWritable, ByteWritable, NullWritable, ?> vertex) throws IOException,
+                InterruptedException {
+            getRecordWriter().write(new Text(vertex.getVertexId().toString()),
+                    new Text(vertex.getVertexValue().toString()));
+        }
+    }
+
+    /**
+     * Simple VertexOutputFormat that supports {@link SimpleLoadGraphVertex}
+     */
+    public static class SimpleLoadGraphVertexOutputFormat extends
+            TextVertexOutputFormat<BytesWritable, ByteWritable, NullWritable> {
+
+        @Override
+        public VertexWriter<BytesWritable, ByteWritable, NullWritable> createVertexWriter(TaskAttemptContext context)
+                throws IOException, InterruptedException {
+            RecordWriter<Text, Text> recordWriter = textOutputFormat.getRecordWriter(context);
+            return new SimpleLoadGraphVertexWriter(recordWriter);
+        }
+    }
+	
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(LoadGraphVertex.class.getSimpleName());
+        job.setVertexClass(LoadGraphVertex.class);
+        job.setVertexInputFormatClass(TextLoadGraphInputFormat.class);
+        job.setVertexOutputFormatClass(SimpleLoadGraphVertexOutputFormat.class);
+        Client.run(args, job);
+	}
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TestLoadGraphVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TestLoadGraphVertex.java
new file mode 100644
index 0000000..529d429
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TestLoadGraphVertex.java
@@ -0,0 +1,102 @@
+package edu.uci.ics.pregelix;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.util.StringTokenizer;
+
+import edu.uci.ics.pregelix.LoadGraphVertex.SimpleLoadGraphVertexOutputFormat;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.example.client.Client;
+
+public class TestLoadGraphVertex {
+
+	/**
+	 * If running in different machines, the parameters need to be changed.
+	 * Now, this test is not completed.
+	 */
+	private static final String EXPECT_RESULT_FILE = "~/workspace/genomix-pregelix/expect/expected_result";
+	private static final String INPUT_PATHS = "~/workspace/genomix-pregelix/folder";
+	private static final String OUTPUT_PATH = "~/workspace/genomix-pregelix/tmp/pg_result"; //result
+	private static final String IP = "169.234.134.212"; 
+	private static final String PORT = "3099";
+	/**
+	 * @param args
+	 * @throws Exception 
+	 */
+	@SuppressWarnings("deprecation")
+	public static void main(String[] args) throws Exception {
+		// TODO Auto-generated method stub
+		//initiate args
+		args = new String[8];
+		args[0] = "-inputpaths"; 
+		args[1] = INPUT_PATHS;
+		args[2] = "-outputpath";
+		args[3] = OUTPUT_PATH;
+		args[4] = "-ip";
+		args[5] = IP;
+		args[6] = "-port";
+		args[7] = PORT;
+        PregelixJob job = new PregelixJob(LoadGraphVertex.class.getSimpleName());
+        job.setVertexClass(LoadGraphVertex.class);
+        job.setVertexInputFormatClass(TextLoadGraphInputFormat.class);
+        job.setVertexOutputFormatClass(SimpleLoadGraphVertexOutputFormat.class);
+        Client.run(args, job);
+        
+        generateExpectBinaryFile();
+        
+        //test if the actual file is the same as the expected file
+        DataInputStream actual_dis = new DataInputStream(new FileInputStream(OUTPUT_PATH + "/*"));
+        DataInputStream expected_dis = new DataInputStream(new FileInputStream(EXPECT_RESULT_FILE));
+        String actualLine, expectedLine = null;
+        StringTokenizer actualSt, expectedSt;
+		byte[] actualVertexId, expectedVertexId = null;
+		byte actualVertexValue, expectedVertexValue;
+        byte[] tmp = null;
+        while(((actualLine = actual_dis.readLine()) != null) && 
+        		((expectedLine = expected_dis.readLine()) != null)){
+        	actualSt = new StringTokenizer(actualLine, " ");
+			actualVertexId = actualSt.nextToken().getBytes();
+			tmp = actualSt.nextToken().getBytes();
+			actualVertexValue = tmp[0];
+			
+			expectedSt = new StringTokenizer(expectedLine," ");
+			expectedVertexId = expectedSt.nextToken().getBytes();
+			tmp = expectedSt.nextToken().getBytes();
+			expectedVertexValue = tmp[0];
+			
+			//assertEquals("actualVextexId == expectedVertexId", actualVertexId, expectedVertexId);
+			//assertEquals("actualVertexValue == expectedVertexValue", actualVertexValue, expectedVertexValue);
+        }
+        
+        //assertEquals("actualLine should be the end and be equal to null", actualLine, null);
+        //assertEquals("expectedLine should be the end and be equal to null", expectedLine, null);
+	}
+
+	@SuppressWarnings("deprecation")
+	public static void generateExpectBinaryFile() throws Exception{
+		DataInputStream dis = new DataInputStream(new FileInputStream(INPUT_PATHS + "/*"));
+		DataOutputStream dos = new DataOutputStream(new FileOutputStream(EXPECT_RESULT_FILE));
+		String line;
+		byte[] vertexId = null;
+		byte vertexValue;
+		byte[] tmp = null;
+		while((line = dis.readLine()) != null){
+			StringTokenizer st = new StringTokenizer(line, " ");
+			vertexId = st.nextToken().getBytes();
+			tmp = st.nextToken().getBytes();
+			vertexValue = tmp[0];		
+			
+			vertexValue = (byte) (vertexValue << 1); 
+			for(int i = 0; i < vertexId.length; i++)
+				dos.writeByte(vertexId[i]);
+			dos.writeByte((byte)32); //space
+			dos.writeByte(vertexValue);
+			dos.writeByte((byte)10); //line feed
+		}
+		
+		dis.close();
+		dos.close();
+	}
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TextLoadGraphInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TextLoadGraphInputFormat.java
new file mode 100644
index 0000000..b7fda73
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TextLoadGraphInputFormat.java
@@ -0,0 +1,82 @@
+package edu.uci.ics.pregelix;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.ByteWritable;
+import org.apache.hadoop.io.BytesWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.mapreduce.InputSplit;
+import org.apache.hadoop.mapreduce.RecordReader;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.io.VertexReader;
+import edu.uci.ics.pregelix.api.io.text.TextVertexInputFormat;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+import edu.uci.ics.pregelix.example.io.MessageWritable;
+
+public class TextLoadGraphInputFormat extends
+		TextVertexInputFormat<BytesWritable, ByteWritable, NullWritable, MessageWritable>{
+	
+	/**
+	 * Format INPUT
+	 */
+    @Override
+    public VertexReader<BytesWritable, ByteWritable, NullWritable, MessageWritable> createVertexReader(
+            InputSplit split, TaskAttemptContext context) throws IOException {
+        return new TextLoadGraphReader(textInputFormat.createRecordReader(split, context));
+    }
+    
+    @SuppressWarnings("rawtypes")
+    class TextLoadGraphReader extends
+            TextVertexReader<BytesWritable, ByteWritable, NullWritable, MessageWritable> {
+        private final static String separator = " ";
+        private Vertex vertex;
+        private BytesWritable vertexId = new BytesWritable();
+        private ByteWritable vertexValue = new ByteWritable();
+
+        public TextLoadGraphReader(RecordReader<LongWritable, Text> lineRecordReader) {
+            super(lineRecordReader);
+        }
+
+        @Override
+        public boolean nextVertex() throws IOException, InterruptedException {
+            return getRecordReader().nextKeyValue();
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public Vertex<BytesWritable, ByteWritable, NullWritable, MessageWritable> getCurrentVertex() throws IOException,
+                InterruptedException {
+            if (vertex == null)
+                vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+
+            vertex.getMsgList().clear();
+            vertex.getEdges().clear();
+            Text line = getRecordReader().getCurrentValue();
+            String[] fields = line.toString().split(separator);
+
+            if (fields.length > 0) {
+                /**
+                 * set the src vertex id
+                 */
+            	BytesWritable src = new BytesWritable(fields[0].getBytes());
+                vertexId.set(src);
+                vertex.setVertexId(vertexId);
+
+                
+                /**
+                 * set the vertex value
+                 */
+                byte[] temp = fields[1].getBytes();
+                vertexValue.set(temp[0]);
+                vertex.setVertexValue(vertexValue);
+                
+            }
+            return vertex;
+        }
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/MessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/MessageWritable.java
new file mode 100644
index 0000000..0dbd800
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/MessageWritable.java
@@ -0,0 +1,89 @@
+package edu.uci.ics.pregelix.example.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.hadoop.io.WritableComparable;
+
+public class MessageWritable implements WritableComparable<MessageWritable>{
+	/**
+	 * bytes stores the chains of connected DNA
+	 * file stores the point to the file that stores the chains of connected DNA
+	 */
+	private byte[] bytes;
+	private File file;
+	
+	public MessageWritable(){		
+	}
+	
+	public MessageWritable(byte[] bytes, File file){
+		set(bytes,file);
+	}
+	
+	public void set(byte[] bytes, File file){
+		this.bytes = bytes;
+		this.file = file;
+	}
+			
+	public byte[] getBytes() {
+	    return bytes;
+	}
+	
+	public File getFile(){
+		return file;
+	}
+
+	@Override
+	public void write(DataOutput out) throws IOException {
+		// TODO Auto-generated method stub
+		out.write(bytes);
+		out.writeUTF(file.getAbsolutePath()); 
+	}
+
+	@Override
+	public void readFields(DataInput in) throws IOException {
+		// TODO Auto-generated method stub
+		in.readFully(bytes);
+		String absolutePath = in.readUTF();
+		file = new File(absolutePath);
+	}
+
+    @Override
+    public int hashCode() {
+    	int hashCode = 0;
+    	for(int i = 0; i < bytes.length; i++)
+    		hashCode = (int)bytes[i];
+        return hashCode;
+    }
+    @Override
+    public boolean equals(Object o) {
+        if (o instanceof MessageWritable) {
+        	MessageWritable tp = (MessageWritable) o;
+            return bytes == tp.bytes && file == tp.file;
+        }
+        return false;
+    }
+    @Override
+    public String toString() {
+        return bytes.toString() + "\t" + file.getAbsolutePath();
+    }
+    
+	@Override
+	public int compareTo(MessageWritable tp) {
+		// TODO Auto-generated method stub
+        int cmp;
+        if (bytes == tp.bytes)
+            cmp = 0;
+        else
+            cmp = 1;
+        if (cmp != 0)
+            return cmp;
+        if (file == tp.file)
+            return 0;
+        else
+            return 1;
+	}
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/LoadGraphVertexTest.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/LoadGraphVertexTest.java
new file mode 100644
index 0000000..e88098d
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/LoadGraphVertexTest.java
@@ -0,0 +1,108 @@
+package edu.uci.ics.pregelix;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.StringTokenizer;
+
+import org.junit.Test;
+
+import edu.uci.ics.pregelix.LoadGraphVertex.SimpleLoadGraphVertexOutputFormat;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.example.client.Client;
+
+public class LoadGraphVertexTest {
+
+	/**
+	 * I can't debug in JUnits test so that I can't find my error here. So I leave comments here.
+	 * I will figure out as soon as possible.
+	 */
+	private static final String EXPECT_RESULT_FILE = "expected_result";
+	private static final String INPUT_PATHS = "folder";
+	private static final String OUTPUT_PATH = "result";
+	private static final String IP = "169.234.134.212";
+	private static final String PORT = "3099";
+	
+	@SuppressWarnings("deprecation")
+	@Test
+	public void test() throws Exception {
+		//initiate args
+	/*	String[] args = new String[8];
+		args[0] = "-inputpaths"; 
+		args[1] = INPUT_PATHS;
+		args[2] = "-outputpath";
+		args[3] = OUTPUT_PATH;
+		args[4] = "-ip";
+		args[5] = IP;
+		args[6] = "-port";
+		args[7] = PORT;
+        PregelixJob job = new PregelixJob(LoadGraphVertex.class.getSimpleName());
+        job.setVertexClass(LoadGraphVertex.class);
+        job.setVertexInputFormatClass(TextLoadGraphInputFormat.class);
+        job.setVertexOutputFormatClass(SimpleLoadGraphVertexOutputFormat.class);
+        Client.run(args, job);
+        
+        generateExpectBinaryFile();
+        
+        //test if the actual file is the same as the expected file
+        DataInputStream actual_dis = new DataInputStream(new FileInputStream(OUTPUT_PATH + "/*"));
+        DataInputStream expected_dis = new DataInputStream(new FileInputStream(EXPECT_RESULT_FILE));
+        String actualLine, expectedLine = null;
+        StringTokenizer actualSt, expectedSt;
+		byte[] actualVertexId, expectedVertexId = null;
+		byte actualVertexValue, expectedVertexValue;
+        byte[] tmp = null;
+        while(((actualLine = actual_dis.readLine()) != null) && 
+        		((expectedLine = expected_dis.readLine()) != null)){
+        	actualSt = new StringTokenizer(actualLine, " ");
+			actualVertexId = actualSt.nextToken().getBytes();
+			tmp = actualSt.nextToken().getBytes();
+			actualVertexValue = tmp[0];
+			
+			expectedSt = new StringTokenizer(expectedLine," ");
+			expectedVertexId = expectedSt.nextToken().getBytes();
+			tmp = expectedSt.nextToken().getBytes();
+			expectedVertexValue = tmp[0];
+			
+			assertEquals("actualVextexId == expectedVertexId", actualVertexId, expectedVertexId);
+			assertEquals("actualVertexValue == expectedVertexValue", actualVertexValue, expectedVertexValue);
+        }
+        
+        assertEquals("actualLine should be the end and be equal to null", actualLine, null);
+        assertEquals("expectedLine should be the end and be equal to null", expectedLine, null);*/
+	}
+	
+	@SuppressWarnings("deprecation")
+	public void generateExpectBinaryFile() throws Exception{
+		DataInputStream dis = new DataInputStream(new FileInputStream(INPUT_PATHS + "/*"));
+		DataOutputStream dos = new DataOutputStream(new FileOutputStream(EXPECT_RESULT_FILE));
+		String line;
+		byte[] vertexId = null;
+		byte vertexValue;
+		byte[] tmp = null;
+		while((line = dis.readLine()) != null){
+			StringTokenizer st = new StringTokenizer(line, " ");
+			vertexId = st.nextToken().getBytes();
+			tmp = st.nextToken().getBytes();
+			vertexValue = tmp[0];		
+			
+			vertexValue = (byte) (vertexValue << 1); 
+			for(int i = 0; i < vertexId.length; i++)
+				dos.writeByte(vertexId[i]);
+			dos.writeByte((byte)32); //space
+			dos.writeByte(vertexValue);
+			dos.writeByte((byte)10); //line feed
+		}
+		
+		dis.close();
+		dos.close();
+	}
+
+}
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex$SimpleLoadGraphVertexOutputFormat.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex$SimpleLoadGraphVertexOutputFormat.class
new file mode 100644
index 0000000..8e69a6e
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex$SimpleLoadGraphVertexOutputFormat.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex$SimpleLoadGraphVertexWriter.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex$SimpleLoadGraphVertexWriter.class
new file mode 100644
index 0000000..ccbd625
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex$SimpleLoadGraphVertexWriter.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex.class
new file mode 100644
index 0000000..fc53130
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/LoadGraphVertex.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TestLoadGraphVertex.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TestLoadGraphVertex.class
new file mode 100644
index 0000000..46de7d7
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TestLoadGraphVertex.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TextLoadGraphInputFormat$TextLoadGraphReader.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TextLoadGraphInputFormat$TextLoadGraphReader.class
new file mode 100644
index 0000000..817cfd9
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TextLoadGraphInputFormat$TextLoadGraphReader.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TextLoadGraphInputFormat.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TextLoadGraphInputFormat.class
new file mode 100644
index 0000000..230e432
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/TextLoadGraphInputFormat.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/example/io/MessageWritable.class b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/example/io/MessageWritable.class
new file mode 100644
index 0000000..9bd5624
--- /dev/null
+++ b/genomix/genomix-pregelix/target/classes/edu/uci/ics/pregelix/example/io/MessageWritable.class
Binary files differ
diff --git a/genomix/genomix-pregelix/target/genomix-pregelix-0.2.2-jar-with-dependencies.jar b/genomix/genomix-pregelix/target/genomix-pregelix-0.2.2-jar-with-dependencies.jar
new file mode 100644
index 0000000..802e6ca
--- /dev/null
+++ b/genomix/genomix-pregelix/target/genomix-pregelix-0.2.2-jar-with-dependencies.jar
Binary files differ
diff --git a/genomix/genomix-pregelix/target/genomix-pregelix-0.2.2.jar b/genomix/genomix-pregelix/target/genomix-pregelix-0.2.2.jar
new file mode 100644
index 0000000..d60398e
--- /dev/null
+++ b/genomix/genomix-pregelix/target/genomix-pregelix-0.2.2.jar
Binary files differ
diff --git a/genomix/genomix-pregelix/target/maven-archiver/pom.properties b/genomix/genomix-pregelix/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..da3f8d5
--- /dev/null
+++ b/genomix/genomix-pregelix/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Mon Feb 11 21:38:21 PST 2013
+version=0.2.2
+groupId=edu.uci.ics.pregelix
+artifactId=genomix-pregelix
diff --git a/genomix/genomix-pregelix/target/surefire-reports/TEST-edu.uci.ics.pregelix.LoadGraphVertexTest.xml b/genomix/genomix-pregelix/target/surefire-reports/TEST-edu.uci.ics.pregelix.LoadGraphVertexTest.xml
new file mode 100644
index 0000000..041909f
--- /dev/null
+++ b/genomix/genomix-pregelix/target/surefire-reports/TEST-edu.uci.ics.pregelix.LoadGraphVertexTest.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite failures="0" time="0.035" errors="0" skipped="0" tests="1" name="edu.uci.ics.pregelix.LoadGraphVertexTest">
+  <properties>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="sun.boot.library.path" value="/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64"/>
+    <property name="java.vm.version" value="20.0-b12"/>
+    <property name="java.vm.vendor" value="Sun Microsystems Inc."/>
+    <property name="java.vendor.url" value="http://java.sun.com/"/>
+    <property name="path.separator" value=":"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="file.encoding.pkg" value="sun.io"/>
+    <property name="java.util.logging.config.file" value="src/test/resources/logging.properties"/>
+    <property name="user.country" value="US"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="sun.os.patch.level" value="unknown"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="user.dir" value="/home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix"/>
+    <property name="java.runtime.version" value="1.6.0_24-b24"/>
+    <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/>
+    <property name="basedir" value="/home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix"/>
+    <property name="java.endorsed.dirs" value="/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/endorsed"/>
+    <property name="os.arch" value="amd64"/>
+    <property name="java.io.tmpdir" value="/tmp"/>
+    <property name="line.separator" value="
+"/>
+    <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."/>
+    <property name="os.name" value="Linux"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib"/>
+    <property name="surefire.test.class.path" value="/home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix/target/test-classes:/home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix/target/classes:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-core/0.2.2/pregelix-core-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-api/0.2.2/pregelix-api-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-dataflow-std/0.2.2/pregelix-dataflow-std-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-dataflow-std-base/0.2.2/pregelix-dataflow-std-base-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-dataflow/0.2.2/pregelix-dataflow-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-dataflow-std/0.2.2/hyracks-dataflow-std-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-runtime/0.2.2/pregelix-runtime-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-api/0.2.2/hyracks-api-0.2.2.jar:/home/anbangx/.m2/repository/org/json/json/20090211/json-20090211.jar:/home/anbangx/.m2/repository/org/apache/httpcomponents/httpclient/4.1-alpha2/httpclient-4.1-alpha2.jar:/home/anbangx/.m2/repository/org/apache/httpcomponents/httpcore/4.1-beta1/httpcore-4.1-beta1.jar:/home/anbangx/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/home/anbangx/.m2/repository/args4j/args4j/2.0.12/args4j-2.0.12.jar:/home/anbangx/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-dataflow-common/0.2.2/hyracks-dataflow-common-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-data-std/0.2.2/hyracks-data-std-0.2.2.jar:/home/anbangx/.m2/repository/org/apache/hadoop/hadoop-core/0.20.2/hadoop-core-0.20.2.jar:/home/anbangx/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar:/home/anbangx/.m2/repository/xmlenc/xmlenc/0.52/xmlenc-0.52.jar:/home/anbangx/.m2/repository/commons-httpclient/commons-httpclient/3.0.1/commons-httpclient-3.0.1.jar:/home/anbangx/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/home/anbangx/.m2/repository/commons-net/commons-net/1.4.1/commons-net-1.4.1.jar:/home/anbangx/.m2/repository/org/mortbay/jetty/jetty/6.1.14/jetty-6.1.14.jar:/home/anbangx/.m2/repository/org/mortbay/jetty/jetty-util/6.1.14/jetty-util-6.1.14.jar:/home/anbangx/.m2/repository/tomcat/jasper-runtime/5.5.12/jasper-runtime-5.5.12.jar:/home/anbangx/.m2/repository/tomcat/jasper-compiler/5.5.12/jasper-compiler-5.5.12.jar:/home/anbangx/.m2/repository/org/mortbay/jetty/jsp-api-2.1/6.1.14/jsp-api-2.1-6.1.14.jar:/home/anbangx/.m2/repository/org/mortbay/jetty/jsp-2.1/6.1.14/jsp-2.1-6.1.14.jar:/home/anbangx/.m2/repository/ant/ant/1.6.5/ant-1.6.5.jar:/home/anbangx/.m2/repository/commons-el/commons-el/1.0/commons-el-1.0.jar:/home/anbangx/.m2/repository/net/java/dev/jets3t/jets3t/0.7.1/jets3t-0.7.1.jar:/home/anbangx/.m2/repository/org/mortbay/jetty/servlet-api-2.5/6.1.14/servlet-api-2.5-6.1.14.jar:/home/anbangx/.m2/repository/net/sf/kosmosfs/kfs/0.3/kfs-0.3.jar:/home/anbangx/.m2/repository/hsqldb/hsqldb/1.8.0.10/hsqldb-1.8.0.10.jar:/home/anbangx/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar:/home/anbangx/.m2/repository/org/eclipse/jdt/core/3.1.1/core-3.1.1.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-storage-am-common/0.2.2/hyracks-storage-am-common-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-storage-common/0.2.2/hyracks-storage-common-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-storage-am-btree/0.2.2/hyracks-storage-am-btree-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-control-cc/0.2.2/hyracks-control-cc-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-control-common/0.2.2/hyracks-control-common-0.2.2.jar:/home/anbangx/.m2/repository/commons-io/commons-io/1.4/commons-io-1.4.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-server/8.0.0.RC0/jetty-server-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/mortbay/jetty/servlet-api/3.0.20100224/servlet-api-3.0.20100224.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-continuation/8.0.0.RC0/jetty-continuation-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-http/8.0.0.RC0/jetty-http-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-io/8.0.0.RC0/jetty-io-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-webapp/8.0.0.RC0/jetty-webapp-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-xml/8.0.0.RC0/jetty-xml-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-util/8.0.0.RC0/jetty-util-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-servlet/8.0.0.RC0/jetty-servlet-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-security/8.0.0.RC0/jetty-security-8.0.0.RC0.jar:/home/anbangx/.m2/repository/org/apache/wicket/wicket-core/1.5.2/wicket-core-1.5.2.jar:/home/anbangx/.m2/repository/org/apache/wicket/wicket-util/1.5.2/wicket-util-1.5.2.jar:/home/anbangx/.m2/repository/org/apache/wicket/wicket-request/1.5.2/wicket-request-1.5.2.jar:/home/anbangx/.m2/repository/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar:/home/anbangx/.m2/repository/org/slf4j/slf4j-jcl/1.6.3/slf4j-jcl-1.6.3.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-control-nc/0.2.2/hyracks-control-nc-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/dcache/dcache-client/0.0.1/dcache-client-0.0.1.jar:/home/anbangx/.m2/repository/org/eclipse/jetty/jetty-client/8.0.0.M0/jetty-client-8.0.0.M0.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-net/0.2.2/hyracks-net-0.2.2.jar:/home/anbangx/.m2/repository/org/apache/hadoop/hadoop-test/0.20.2/hadoop-test-0.20.2.jar:/home/anbangx/.m2/repository/org/apache/ftpserver/ftplet-api/1.0.0/ftplet-api-1.0.0.jar:/home/anbangx/.m2/repository/org/apache/mina/mina-core/2.0.0-M5/mina-core-2.0.0-M5.jar:/home/anbangx/.m2/repository/org/apache/ftpserver/ftpserver-core/1.0.0/ftpserver-core-1.0.0.jar:/home/anbangx/.m2/repository/org/apache/ftpserver/ftpserver-deprecated/1.0.0-M2/ftpserver-deprecated-1.0.0-M2.jar:/home/anbangx/.m2/repository/javax/servlet/javax.servlet-api/3.0.1/javax.servlet-api-3.0.1.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/hyracks-ipc/0.2.2/hyracks-ipc-0.2.2.jar:/home/anbangx/.m2/repository/edu/uci/ics/hyracks/pregelix-example/0.2.2/pregelix-example-0.2.2.jar:/home/anbangx/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar:/home/anbangx/.m2/repository/junit/junit/4.8.1/junit-4.8.1.jar:"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="java.class.version" value="50.0"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="os.version" value="3.2.0-37-generic"/>
+    <property name="user.home" value="/home/anbangx"/>
+    <property name="user.timezone" value=""/>
+    <property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.specification.version" value="1.6"/>
+    <property name="user.name" value="anbangx"/>
+    <property name="java.class.path" value="/home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix/target/surefire/surefirebooter7566709768436177293.jar"/>
+    <property name="java.vm.specification.version" value="1.0"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.home" value="/usr/lib/jvm/java-6-openjdk-amd64/jre"/>
+    <property name="sun.java.command" value="/home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix/target/surefire/surefirebooter7566709768436177293.jar /home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix/target/surefire/surefire4276252907471684694tmp /home/anbangx/workspace/fullstack_genomix/genomix/genomix-pregelix/target/surefire/surefire4155964393859946558tmp"/>
+    <property name="java.specification.vendor" value="Sun Microsystems Inc."/>
+    <property name="user.language" value="en"/>
+    <property name="java.vm.info" value="mixed mode"/>
+    <property name="java.version" value="1.6.0_24"/>
+    <property name="java.ext.dirs" value="/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext"/>
+    <property name="sun.boot.class.path" value="/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/netx.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/plugin.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/modules/jdk.boot.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/classes"/>
+    <property name="java.vendor" value="Sun Microsystems Inc."/>
+    <property name="localRepository" value="/home/anbangx/.m2/repository"/>
+    <property name="file.separator" value="/"/>
+    <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
+    <property name="sun.desktop" value="gnome"/>
+    <property name="sun.cpu.isalist" value=""/>
+  </properties>
+  <testcase time="0.002" classname="edu.uci.ics.pregelix.LoadGraphVertexTest" name="test"/>
+</testsuite>
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/target/surefire-reports/edu.uci.ics.pregelix.LoadGraphVertexTest.txt b/genomix/genomix-pregelix/target/surefire-reports/edu.uci.ics.pregelix.LoadGraphVertexTest.txt
new file mode 100644
index 0000000..e68f6fe
--- /dev/null
+++ b/genomix/genomix-pregelix/target/surefire-reports/edu.uci.ics.pregelix.LoadGraphVertexTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: edu.uci.ics.pregelix.LoadGraphVertexTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.035 sec
diff --git a/genomix/genomix-pregelix/target/test-classes/edu/uci/ics/pregelix/LoadGraphVertexTest.class b/genomix/genomix-pregelix/target/test-classes/edu/uci/ics/pregelix/LoadGraphVertexTest.class
new file mode 100644
index 0000000..a173573
--- /dev/null
+++ b/genomix/genomix-pregelix/target/test-classes/edu/uci/ics/pregelix/LoadGraphVertexTest.class
Binary files differ
diff --git a/genomix/genomix-pregelix/tmp/pg_result/.part-0.crc b/genomix/genomix-pregelix/tmp/pg_result/.part-0.crc
new file mode 100644
index 0000000..1e5bb17
--- /dev/null
+++ b/genomix/genomix-pregelix/tmp/pg_result/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/tmp/pg_result/.part-1.crc b/genomix/genomix-pregelix/tmp/pg_result/.part-1.crc
new file mode 100644
index 0000000..40acf8c
--- /dev/null
+++ b/genomix/genomix-pregelix/tmp/pg_result/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/tmp/pg_result/part-0 b/genomix/genomix-pregelix/tmp/pg_result/part-0
new file mode 100755
index 0000000..10595bd
--- /dev/null
+++ b/genomix/genomix-pregelix/tmp/pg_result/part-0
@@ -0,0 +1,3 @@
+07	68
+1b	-120
+2d	-34
diff --git a/genomix/genomix-pregelix/tmp/pg_result/part-1 b/genomix/genomix-pregelix/tmp/pg_result/part-1
new file mode 100755
index 0000000..e00a2e0
--- /dev/null
+++ b/genomix/genomix-pregelix/tmp/pg_result/part-1
@@ -0,0 +1 @@
+06	34