You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@giraph.apache.org by ni...@apache.org on 2012/12/20 05:25:33 UTC

[41/51] [partial] GIRAPH-457: update module names (nitay)

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/conf/GiraphClasses.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/conf/GiraphClasses.java b/giraph/src/main/java/org/apache/giraph/conf/GiraphClasses.java
deleted file mode 100644
index d791e58..0000000
--- a/giraph/src/main/java/org/apache/giraph/conf/GiraphClasses.java
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.giraph.conf;
-
-import org.apache.giraph.graph.AggregatorWriter;
-import org.apache.giraph.graph.Combiner;
-import org.apache.giraph.graph.DefaultMasterCompute;
-import org.apache.giraph.graph.DefaultVertexResolver;
-import org.apache.giraph.graph.DefaultWorkerContext;
-import org.apache.giraph.graph.EdgeInputFormat;
-import org.apache.giraph.graph.MasterCompute;
-import org.apache.giraph.graph.TextAggregatorWriter;
-import org.apache.giraph.graph.Vertex;
-import org.apache.giraph.graph.VertexInputFormat;
-import org.apache.giraph.graph.VertexOutputFormat;
-import org.apache.giraph.graph.VertexResolver;
-import org.apache.giraph.graph.WorkerContext;
-import org.apache.giraph.graph.partition.GraphPartitionerFactory;
-import org.apache.giraph.graph.partition.HashPartitionerFactory;
-import org.apache.giraph.graph.partition.Partition;
-import org.apache.giraph.graph.partition.SimplePartition;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.io.WritableComparable;
-
-import java.util.List;
-
-/**
- * Holder for classes used by Giraph.
- *
- * @param <I> Vertex ID class
- * @param <V> Vertex Value class
- * @param <E> Edge class
- * @param <M> Message class
- */
-public class GiraphClasses<I extends WritableComparable,
-    V extends Writable, E extends Writable, M extends Writable>
-    implements GiraphConstants {
-  /** Vertex class - cached for fast access */
-  protected Class<? extends Vertex<I, V, E, M>> vertexClass;
-  /** Vertex id class - cached for fast access */
-  protected Class<I> vertexIdClass;
-  /** Vertex value class - cached for fast access */
-  protected Class<V> vertexValueClass;
-  /** Edge value class - cached for fast access */
-  protected Class<E> edgeValueClass;
-  /** Message value class - cached for fast access */
-  protected Class<M> messageValueClass;
-
-  /** Graph partitioner factory class - cached for fast access */
-  protected Class<? extends GraphPartitionerFactory<I, V, E, M>>
-  graphPartitionerFactoryClass;
-
-  /** Vertex input format class - cached for fast access */
-  protected Class<? extends VertexInputFormat<I, V, E, M>>
-  vertexInputFormatClass;
-  /** Vertex output format class - cached for fast access */
-  protected Class<? extends VertexOutputFormat<I, V, E>>
-  vertexOutputFormatClass;
-  /** Edge input format class - cached for fast access */
-  protected Class<? extends EdgeInputFormat<I, E>>
-  edgeInputFormatClass;
-
-  /** Aggregator writer class - cached for fast access */
-  protected Class<? extends AggregatorWriter> aggregatorWriterClass;
-  /** Combiner class - cached for fast access */
-  protected Class<? extends Combiner<I, M>> combinerClass;
-
-  /** Vertex resolver class - cached for fast access */
-  protected Class<? extends VertexResolver<I, V, E, M>> vertexResolverClass;
-  /** Worker context class - cached for fast access */
-  protected Class<? extends WorkerContext> workerContextClass;
-  /** Master compute class - cached for fast access */
-  protected Class<? extends MasterCompute> masterComputeClass;
-
-  /** Partition class - cached for fast accesss */
-  protected Class<? extends Partition<I, V, E, M>> partitionClass;
-
-  /**
-   * Empty constructor. Initialize with classes all null.
-   */
-  public GiraphClasses() { }
-
-  /**
-   * Contructor that reads classes from a Configuration object.
-   *
-   * @param conf Configuration object to read from.
-   */
-  public GiraphClasses(Configuration conf) {
-    readFromConf(conf);
-  }
-
-  /**
-   * Read classes from Configuration.
-   *
-   * @param conf Configuration to read from.
-   */
-  public void readFromConf(Configuration conf) {
-    // set pre-validated generic parameter types into Configuration
-    vertexClass = (Class<? extends Vertex<I, V, E, M>>)
-        conf.getClass(VERTEX_CLASS, null, Vertex.class);
-    List<Class<?>> classList =
-        org.apache.giraph.utils.ReflectionUtils.<Vertex>getTypeArguments(
-            Vertex.class, vertexClass);
-    vertexIdClass = (Class<I>) classList.get(0);
-    vertexValueClass = (Class<V>) classList.get(1);
-    edgeValueClass = (Class<E>) classList.get(2);
-    messageValueClass = (Class<M>) classList.get(3);
-
-    graphPartitionerFactoryClass =
-        (Class<? extends GraphPartitionerFactory<I, V, E, M>>)
-        conf.getClass(GRAPH_PARTITIONER_FACTORY_CLASS,
-            HashPartitionerFactory.class,
-            GraphPartitionerFactory.class);
-
-    vertexInputFormatClass = (Class<? extends VertexInputFormat<I, V, E, M>>)
-        conf.getClass(VERTEX_INPUT_FORMAT_CLASS,
-        null, VertexInputFormat.class);
-    vertexOutputFormatClass = (Class<? extends VertexOutputFormat<I, V, E>>)
-        conf.getClass(VERTEX_OUTPUT_FORMAT_CLASS,
-        null, VertexOutputFormat.class);
-    edgeInputFormatClass = (Class<? extends EdgeInputFormat<I, E>>)
-        conf.getClass(EDGE_INPUT_FORMAT_CLASS,
-        null, EdgeInputFormat.class);
-
-    aggregatorWriterClass = conf.getClass(AGGREGATOR_WRITER_CLASS,
-        TextAggregatorWriter.class, AggregatorWriter.class);
-    combinerClass = (Class<? extends Combiner<I, M>>)
-        conf.getClass(VERTEX_COMBINER_CLASS, null, Combiner.class);
-    vertexResolverClass = (Class<? extends VertexResolver<I, V, E, M>>)
-        conf.getClass(VERTEX_RESOLVER_CLASS,
-        DefaultVertexResolver.class, VertexResolver.class);
-    workerContextClass = conf.getClass(WORKER_CONTEXT_CLASS,
-        DefaultWorkerContext.class, WorkerContext.class);
-    masterComputeClass =  conf.getClass(MASTER_COMPUTE_CLASS,
-        DefaultMasterCompute.class, MasterCompute.class);
-
-    partitionClass = (Class<? extends Partition<I, V, E, M>>)
-        conf.getClass(PARTITION_CLASS, SimplePartition.class);
-  }
-
-  /**
-   * Get Vertex class
-   *
-   * @return Vertex class.
-   */
-  public Class<? extends Vertex<I, V, E, M>> getVertexClass() {
-    return vertexClass;
-  }
-
-  /**
-   * Get Vertex ID class
-   *
-   * @return Vertex ID class
-   */
-  public Class<I> getVertexIdClass() {
-    return vertexIdClass;
-  }
-
-  /**
-   * Get Vertex Value class
-   *
-   * @return Vertex Value class
-   */
-  public Class<V> getVertexValueClass() {
-    return vertexValueClass;
-  }
-
-  /**
-   * Get Edge Value class
-   *
-   * @return Edge Value class
-   */
-  public Class<E> getEdgeValueClass() {
-    return edgeValueClass;
-  }
-
-  /**
-   * Get Message Value class
-   *
-   * @return Message Value class
-   */
-  public Class<M> getMessageValueClass() {
-    return messageValueClass;
-  }
-
-  /**
-   * Check if we GraphPartitionerFactory is set
-   *
-   * @return true if GraphPartitionerFactory is set
-   */
-  public boolean hasGraphPartitionerFactoryClass() {
-    return graphPartitionerFactoryClass != null;
-  }
-
-  /**
-   * Get the GraphPartitionerFactory
-   *
-   * @return GraphPartitionerFactory
-   */
-  public Class<? extends GraphPartitionerFactory<I, V, E, M>>
-  getGraphPartitionerFactoryClass() {
-    return graphPartitionerFactoryClass;
-  }
-
-  /**
-   * Check if VertexInputFormat class is set
-   *
-   * @return true if VertexInputFormat class is set
-   */
-  public boolean hasVertexInputFormat() {
-    return vertexInputFormatClass != null;
-  }
-
-  /**
-   * Get VertexInputFormat held
-   *
-   * @return VertexInputFormat
-   */
-  public Class<? extends VertexInputFormat<I, V, E, M>>
-  getVertexInputFormatClass() {
-    return vertexInputFormatClass;
-  }
-
-  /**
-   * Check if VertexOutputFormat is set
-   *
-   * @return true if VertexOutputFormat is set
-   */
-  public boolean hasVertexOutputFormat() {
-    return vertexOutputFormatClass != null;
-  }
-
-  /**
-   * Get VertexOutputFormat set
-   *
-   * @return VertexOutputFormat
-   */
-  public Class<? extends VertexOutputFormat<I, V, E>>
-  getVertexOutputFormatClass() {
-    return vertexOutputFormatClass;
-  }
-
-  /**
-   * Check if EdgeInputFormat is set
-   *
-   * @return true if EdgeInputFormat is set
-   */
-  public boolean hasEdgeInputFormat() {
-    return edgeInputFormatClass != null;
-  }
-
-  /**
-   * Get EdgeInputFormat used
-   *
-   * @return EdgeInputFormat
-   */
-  public Class<? extends EdgeInputFormat<I, E>> getEdgeInputFormatClass() {
-    return edgeInputFormatClass;
-  }
-
-  /**
-   * Check if AggregatorWriter is set
-   *
-   * @return true if AggregatorWriter is set
-   */
-  public boolean hasAggregatorWriterClass() {
-    return aggregatorWriterClass != null;
-  }
-
-  /**
-   * Get AggregatorWriter used
-   *
-   * @return AggregatorWriter
-   */
-  public Class<? extends AggregatorWriter> getAggregatorWriterClass() {
-    return aggregatorWriterClass;
-  }
-
-  /**
-   * Check if Combiner is set
-   *
-   * @return true if Combiner is set
-   */
-  public boolean hasCombinerClass() {
-    return combinerClass != null;
-  }
-
-  /**
-   * Get Combiner used
-   *
-   * @return Combiner
-   */
-  public Class<? extends Combiner<I, M>> getCombinerClass() {
-    return combinerClass;
-  }
-
-  /**
-   * Check if VertexResolver is set
-   *
-   * @return true if VertexResolver is set
-   */
-  public boolean hasVertexResolverClass() {
-    return vertexResolverClass != null;
-  }
-
-  /**
-   * Get VertexResolver used
-   *
-   * @return VertexResolver
-   */
-  public Class<? extends VertexResolver<I, V, E, M>> getVertexResolverClass() {
-    return vertexResolverClass;
-  }
-
-  /**
-   * Check if WorkerContext is set
-   *
-   * @return true if WorkerContext is set
-   */
-  public boolean hasWorkerContextClass() {
-    return workerContextClass != null;
-  }
-
-  /**
-   * Get WorkerContext used
-   *
-   * @return WorkerContext
-   */
-  public Class<? extends WorkerContext> getWorkerContextClass() {
-    return workerContextClass;
-  }
-
-  /**
-   * Check if MasterCompute is set
-   *
-   * @return true MasterCompute is set
-   */
-  public boolean hasMasterComputeClass() {
-    return masterComputeClass != null;
-  }
-
-  /**
-   * Get MasterCompute used
-   *
-   * @return MasterCompute
-   */
-  public Class<? extends MasterCompute> getMasterComputeClass() {
-    return masterComputeClass;
-  }
-
-  /**
-   * Check if Partition is set
-   *
-   * @return true if Partition is set
-   */
-  public boolean hasPartitionClass() {
-    return partitionClass != null;
-  }
-
-  /**
-   * Get Partition
-   *
-   * @return Partition
-   */
-  public Class<? extends Partition<I, V, E, M>> getPartitionClass() {
-    return partitionClass;
-  }
-
-  /**
-   * Set Vertex class held
-   *
-   * @param vertexClass Vertex class to set
-   * @return this
-   */
-  public GiraphClasses setVertexClass(
-      Class<? extends Vertex<I, V, E, M>> vertexClass) {
-    this.vertexClass = vertexClass;
-    return this;
-  }
-
-  /**
-   * Set Vertex ID class held
-   *
-   * @param vertexIdClass Vertex ID to set
-   * @return this
-   */
-  public GiraphClasses setVertexIdClass(Class<I> vertexIdClass) {
-    this.vertexIdClass = vertexIdClass;
-    return this;
-  }
-
-  /**
-   * Set Vertex Value class held
-   *
-   * @param vertexValueClass Vertex Value class to set
-   * @return this
-   */
-  public GiraphClasses setVertexValueClass(Class<V> vertexValueClass) {
-    this.vertexValueClass = vertexValueClass;
-    return this;
-  }
-
-  /**
-   * Set Edge Value class held
-   *
-   * @param edgeValueClass Edge Value class to set
-   * @return this
-   */
-  public GiraphClasses setEdgeValueClass(Class<E> edgeValueClass) {
-    this.edgeValueClass = edgeValueClass;
-    return this;
-  }
-
-  /**
-   * Set Message Value class held
-   *
-   * @param messageValueClass Message Value class to set
-   * @return this
-   */
-  public GiraphClasses setMessageValueClass(Class<M> messageValueClass) {
-    this.messageValueClass = messageValueClass;
-    return this;
-  }
-
-  /**
-   * Set GraphPartitionerFactory class held
-   *
-   * @param klass GraphPartitionerFactory to set
-   * @return this
-   */
-  public GiraphClasses setGraphPartitionerFactoryClass(
-      Class<? extends GraphPartitionerFactory<I, V, E, M>> klass) {
-    this.graphPartitionerFactoryClass = klass;
-    return this;
-  }
-
-  /**
-   * Set VertexInputFormat held
-   *
-   * @param vertexInputFormatClass VertexInputFormat to set
-   * @return this
-   */
-  public GiraphClasses setVertexInputFormatClass(
-      Class<? extends VertexInputFormat<I, V, E, M>> vertexInputFormatClass) {
-    this.vertexInputFormatClass = vertexInputFormatClass;
-    return this;
-  }
-
-  /**
-   * Set VertexOutputFormat held
-   *
-   * @param vertexOutputFormatClass VertexOutputFormat to set
-   * @return this
-   */
-  public GiraphClasses setVertexOutputFormatClass(
-      Class<? extends VertexOutputFormat<I, V, E>> vertexOutputFormatClass) {
-    this.vertexOutputFormatClass = vertexOutputFormatClass;
-    return this;
-  }
-
-  /**
-   * Set EdgeInputFormat class held
-   *
-   * @param edgeInputFormatClass EdgeInputFormat to set
-   * @return this
-   */
-  public GiraphClasses setEdgeInputFormatClass(
-      Class<? extends EdgeInputFormat<I, E>> edgeInputFormatClass) {
-    this.edgeInputFormatClass = edgeInputFormatClass;
-    return this;
-  }
-
-  /**
-   * Set AggregatorWriter class used
-   *
-   * @param aggregatorWriterClass AggregatorWriter to set
-   * @return this
-   */
-  public GiraphClasses setAggregatorWriterClass(
-      Class<? extends AggregatorWriter> aggregatorWriterClass) {
-    this.aggregatorWriterClass = aggregatorWriterClass;
-    return this;
-  }
-
-  /**
-   * Set Combiner class used
-   *
-   * @param combinerClass Combiner class to set
-   * @return this
-   */
-  public GiraphClasses setCombinerClass(
-      Class<? extends Combiner<I, M>> combinerClass) {
-    this.combinerClass = combinerClass;
-    return this;
-  }
-
-  /**
-   * Set VertexResolver used
-   *
-   * @param vertexResolverClass VertexResolver to set
-   * @return this
-   */
-  public GiraphClasses setVertexResolverClass(
-      Class<? extends VertexResolver<I, V, E, M>> vertexResolverClass) {
-    this.vertexResolverClass = vertexResolverClass;
-    return this;
-  }
-
-  /**
-   * Set WorkerContext used
-   *
-   * @param workerContextClass WorkerContext class to set
-   * @return this
-   */
-  public GiraphClasses setWorkerContextClass(
-      Class<? extends WorkerContext> workerContextClass) {
-    this.workerContextClass = workerContextClass;
-    return this;
-  }
-
-  /**
-   * Set MasterCompute class used
-   *
-   * @param masterComputeClass MasterCompute class to set
-   * @return this
-   */
-  public GiraphClasses setMasterComputeClass(
-      Class<? extends MasterCompute> masterComputeClass) {
-    this.masterComputeClass = masterComputeClass;
-    return this;
-  }
-
-  /**
-   * Set Partition class to use
-   *
-   * @param partitionClass Partition class to set
-   * @return this
-   */
-  public GiraphClasses setPartitionClass(
-      Class<? extends Partition<I, V, E, M>> partitionClass) {
-    this.partitionClass = partitionClass;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/conf/GiraphConfiguration.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/conf/GiraphConfiguration.java b/giraph/src/main/java/org/apache/giraph/conf/GiraphConfiguration.java
deleted file mode 100644
index 3e14aad..0000000
--- a/giraph/src/main/java/org/apache/giraph/conf/GiraphConfiguration.java
+++ /dev/null
@@ -1,615 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.giraph.conf;
-
-import org.apache.giraph.graph.AggregatorWriter;
-import org.apache.giraph.graph.Combiner;
-import org.apache.giraph.graph.EdgeInputFormat;
-import org.apache.giraph.graph.MasterCompute;
-import org.apache.giraph.graph.Vertex;
-import org.apache.giraph.graph.VertexInputFormat;
-import org.apache.giraph.graph.VertexOutputFormat;
-import org.apache.giraph.graph.VertexResolver;
-import org.apache.giraph.graph.WorkerContext;
-import org.apache.giraph.graph.partition.GraphPartitionerFactory;
-import org.apache.giraph.graph.partition.Partition;
-import org.apache.giraph.master.MasterObserver;
-import org.apache.hadoop.conf.Configuration;
-
-/**
- * Adds user methods specific to Giraph.  This will be put into an
- * ImmutableClassesGiraphConfiguration that provides the configuration plus
- * the immutable classes.
- */
-public class GiraphConfiguration extends Configuration
-    implements GiraphConstants {
-  /**
-   * Constructor that creates the configuration
-   */
-  public GiraphConfiguration() { }
-
-  /**
-   * Constructor.
-   *
-   * @param conf Configuration
-   */
-  public GiraphConfiguration(Configuration conf) {
-    super(conf);
-  }
-
-  /**
-   * Set the vertex class (required)
-   *
-   * @param vertexClass Runs vertex computation
-   */
-  public final void setVertexClass(
-      Class<? extends Vertex> vertexClass) {
-    setClass(VERTEX_CLASS, vertexClass, Vertex.class);
-  }
-
-  /**
-   * Set the vertex input format class (required)
-   *
-   * @param vertexInputFormatClass Determines how graph is input
-   */
-  public final void setVertexInputFormatClass(
-      Class<? extends VertexInputFormat> vertexInputFormatClass) {
-    setClass(VERTEX_INPUT_FORMAT_CLASS,
-        vertexInputFormatClass,
-        VertexInputFormat.class);
-  }
-
-  /**
-   * Set the edge input format class (required)
-   *
-   * @param edgeInputFormatClass Determines how graph is input
-   */
-  public final void setEdgeInputFormatClass(
-      Class<? extends EdgeInputFormat> edgeInputFormatClass) {
-    setClass(EDGE_INPUT_FORMAT_CLASS,
-        edgeInputFormatClass,
-        EdgeInputFormat.class);
-  }
-
-  /**
-   * Set the master class (optional)
-   *
-   * @param masterComputeClass Runs master computation
-   */
-  public final void setMasterComputeClass(
-      Class<? extends MasterCompute> masterComputeClass) {
-    setClass(MASTER_COMPUTE_CLASS, masterComputeClass,
-        MasterCompute.class);
-  }
-
-  /**
-   * Add a MasterObserver class (optional)
-   *
-   * @param masterObserverClass MasterObserver class to add.
-   */
-  public final void addMasterObserverClass(
-      Class<? extends MasterObserver> masterObserverClass) {
-    addToClasses(MASTER_OBSERVER_CLASSES, masterObserverClass,
-        MasterObserver.class);
-  }
-
-  /**
-   * Add a class to a property that is a list of classes. If the property does
-   * not exist it will be created.
-   *
-   * @param name String name of property.
-   * @param klass interface of the class being set.
-   * @param xface Class to add to the list.
-   */
-  public final void addToClasses(String name, Class<?> klass, Class<?> xface) {
-    if (!xface.isAssignableFrom(klass)) {
-      throw new RuntimeException(klass + " does not implement " +
-          xface.getName());
-    }
-    String value;
-    String klasses = get(name);
-    if (klasses == null) {
-      value = klass.getName();
-    } else {
-      value = klasses + "," + klass.getName();
-    }
-    set(name, value);
-  }
-
-  /**
-   * Set mapping from a key name to a list of classes.
-   *
-   * @param name String key name to use.
-   * @param xface interface of the classes being set.
-   * @param klasses Classes to set.
-   */
-  public final void setClasses(String name, Class<?> xface,
-                               Class<?> ... klasses) {
-    String[] klassNames = new String[klasses.length];
-    for (int i = 0; i < klasses.length; ++i) {
-      Class<?> klass = klasses[i];
-      if (!xface.isAssignableFrom(klass)) {
-        throw new RuntimeException(klass + " does not implement " +
-            xface.getName());
-      }
-      klassNames[i] = klasses[i].getName();
-    }
-    setStrings(name, klassNames);
-  }
-
-  /**
-   * Get classes from a property that all implement a given interface.
-   *
-   * @param name String name of property to fetch.
-   * @param xface interface classes must implement.
-   * @param defaultValue If not found, return this
-   * @param <T> Generic type of interface class
-   * @return array of Classes implementing interface specified.
-   */
-  public final <T> Class<? extends T>[] getClassesOfType(String name,
-      Class<T> xface, Class<? extends T> ... defaultValue) {
-    Class<?>[] klasses = getClasses(name, defaultValue);
-    for (Class<?> klass : klasses) {
-      if (!xface.isAssignableFrom(klass)) {
-        throw new RuntimeException(klass + " is not assignable from " +
-            xface.getName());
-      }
-    }
-    return (Class<? extends T>[]) klasses;
-  }
-
-  /**
-   * Set the vertex output format class (optional)
-   *
-   * @param vertexOutputFormatClass Determines how graph is output
-   */
-  public final void setVertexOutputFormatClass(
-      Class<? extends VertexOutputFormat> vertexOutputFormatClass) {
-    setClass(VERTEX_OUTPUT_FORMAT_CLASS,
-        vertexOutputFormatClass,
-        VertexOutputFormat.class);
-  }
-
-  /**
-   * Set the vertex combiner class (optional)
-   *
-   * @param vertexCombinerClass Determines how vertex messages are combined
-   */
-  public final void setVertexCombinerClass(
-      Class<? extends Combiner> vertexCombinerClass) {
-    setClass(VERTEX_COMBINER_CLASS,
-        vertexCombinerClass,
-        Combiner.class);
-  }
-
-  /**
-   * Set the graph partitioner class (optional)
-   *
-   * @param graphPartitionerFactoryClass Determines how the graph is partitioned
-   */
-  public final void setGraphPartitionerFactoryClass(
-      Class<?> graphPartitionerFactoryClass) {
-    setClass(GRAPH_PARTITIONER_FACTORY_CLASS,
-        graphPartitionerFactoryClass,
-        GraphPartitionerFactory.class);
-  }
-
-  /**
-   * Set the vertex resolver class (optional)
-   *
-   * @param vertexResolverClass Determines how vertex mutations are resolved
-   */
-  public final void setVertexResolverClass(
-      Class<? extends VertexResolver> vertexResolverClass) {
-    setClass(VERTEX_RESOLVER_CLASS, vertexResolverClass, VertexResolver.class);
-  }
-
-  /**
-   * Whether to create a vertex that doesn't exist when it receives messages.
-   * This only affects DefaultVertexResolver.
-   *
-   * @return true if we should create non existent vertices that get messages.
-   */
-  public final boolean getResolverCreateVertexOnMessages() {
-    return getBoolean(RESOLVER_CREATE_VERTEX_ON_MSGS, true);
-  }
-
-  /**
-   * Set whether to create non existent vertices when they receive messages.
-   *
-   * @param v true if we should create vertices when they get messages.
-   */
-  public final void setResolverCreateVertexOnMessages(boolean v) {
-    setBoolean(RESOLVER_CREATE_VERTEX_ON_MSGS, v);
-  }
-
-  /**
-   * Set the worker context class (optional)
-   *
-   * @param workerContextClass Determines what code is executed on a each
-   *        worker before and after each superstep and computation
-   */
-  public final void setWorkerContextClass(
-      Class<? extends WorkerContext> workerContextClass) {
-    setClass(WORKER_CONTEXT_CLASS,
-        workerContextClass,
-        WorkerContext.class);
-  }
-
-  /**
-   * Set the aggregator writer class (optional)
-   *
-   * @param aggregatorWriterClass Determines how the aggregators are
-   *        written to file at the end of the job
-   */
-  public final void setAggregatorWriterClass(
-      Class<? extends AggregatorWriter> aggregatorWriterClass) {
-    setClass(AGGREGATOR_WRITER_CLASS,
-        aggregatorWriterClass,
-        AggregatorWriter.class);
-  }
-
-  /**
-   * Set the partition class (optional)
-   *
-   * @param partitionClass Determines the why partitions are stored
-   */
-  public final void setPartitionClass(
-      Class<? extends Partition> partitionClass) {
-    setClass(PARTITION_CLASS,
-        partitionClass,
-        Partition.class);
-  }
-
-  /**
-   * Set worker configuration for determining what is required for
-   * a superstep.
-   *
-   * @param minWorkers Minimum workers to do a superstep
-   * @param maxWorkers Maximum workers to do a superstep
-   *        (max map tasks in job)
-   * @param minPercentResponded 0 - 100 % of the workers required to
-   *        have responded before continuing the superstep
-   */
-  public final void setWorkerConfiguration(int minWorkers,
-                                           int maxWorkers,
-                                           float minPercentResponded) {
-    setInt(MIN_WORKERS, minWorkers);
-    setInt(MAX_WORKERS, maxWorkers);
-    setFloat(MIN_PERCENT_RESPONDED, minPercentResponded);
-  }
-
-  public final int getMinWorkers() {
-    return getInt(MIN_WORKERS, -1);
-  }
-
-  public final int getMaxWorkers() {
-    return getInt(MAX_WORKERS, -1);
-  }
-
-  public final float getMinPercentResponded() {
-    return getFloat(MIN_PERCENT_RESPONDED, MIN_PERCENT_RESPONDED_DEFAULT);
-  }
-
-  /**
-   * Utilize an existing ZooKeeper service.  If this is not set, ZooKeeper
-   * will be dynamically started by Giraph for this job.
-   *
-   * @param serverList Comma separated list of servers and ports
-   *        (i.e. zk1:2221,zk2:2221)
-   */
-  public final void setZooKeeperConfiguration(String serverList) {
-    set(ZOOKEEPER_LIST, serverList);
-  }
-
-  public final boolean getSplitMasterWorker() {
-    return getBoolean(SPLIT_MASTER_WORKER, SPLIT_MASTER_WORKER_DEFAULT);
-  }
-
-  /**
-   * Get array of MasterObserver classes set in the configuration.
-   *
-   * @return array of MasterObserver classes.
-   */
-  public Class<? extends MasterObserver>[] getMasterObserverClasses() {
-    return getClassesOfType(MASTER_OBSERVER_CLASSES, MasterObserver.class);
-  }
-
-  /**
-   * Whether to track, print, and aggregate metrics.
-   *
-   * @return true if metrics are enabled, false otherwise (default)
-   */
-  public boolean metricsEnabled() {
-    return getBoolean(METRICS_ENABLE, false);
-  }
-
-  /**
-   * Get the task partition
-   *
-   * @return The task partition or -1 if not set
-   */
-  public int getTaskPartition() {
-    return getInt("mapred.task.partition", -1);
-  }
-
-  /**
-   * Get the ZooKeeper list.
-   *
-   * @return ZooKeeper list of strings, comma separated or null if none set.
-   */
-  public String getZookeeperList() {
-    return get(ZOOKEEPER_LIST);
-  }
-
-  public String getLocalLevel() {
-    return get(LOG_LEVEL, LOG_LEVEL_DEFAULT);
-  }
-
-  /**
-   * Use the log thread layout option?
-   *
-   * @return True if use the log thread layout option, false otherwise
-   */
-  public boolean useLogThreadLayout() {
-    return getBoolean(LOG_THREAD_LAYOUT, LOG_THREAD_LAYOUT_DEFAULT);
-  }
-
-  public boolean getLocalTestMode() {
-    return getBoolean(LOCAL_TEST_MODE, LOCAL_TEST_MODE_DEFAULT);
-  }
-
-  public int getZooKeeperServerCount() {
-    return getInt(ZOOKEEPER_SERVER_COUNT,
-        ZOOKEEPER_SERVER_COUNT_DEFAULT);
-  }
-
-  /**
-   * Set the ZooKeeper jar classpath
-   *
-   * @param classPath Classpath for the ZooKeeper jar
-   */
-  public void setZooKeeperJar(String classPath) {
-    set(ZOOKEEPER_JAR, classPath);
-  }
-
-  public int getZooKeeperSessionTimeout() {
-    return getInt(ZOOKEEPER_SESSION_TIMEOUT,
-        ZOOKEEPER_SESSION_TIMEOUT_DEFAULT);
-  }
-
-  public int getZookeeperOpsMaxAttempts() {
-    return getInt(ZOOKEEPER_OPS_MAX_ATTEMPTS,
-        ZOOKEEPER_OPS_MAX_ATTEMPTS_DEFAULT);
-  }
-
-  public int getZookeeperOpsRetryWaitMsecs() {
-    return getInt(ZOOKEEPER_OPS_RETRY_WAIT_MSECS,
-        ZOOKEEPER_OPS_RETRY_WAIT_MSECS_DEFAULT);
-  }
-
-  public boolean getNettyServerUseExecutionHandler() {
-    return getBoolean(NETTY_SERVER_USE_EXECUTION_HANDLER,
-        NETTY_SERVER_USE_EXECUTION_HANDLER_DEFAULT);
-  }
-
-  public int getNettyServerThreads() {
-    return getInt(NETTY_SERVER_THREADS, NETTY_SERVER_THREADS_DEFAULT);
-  }
-
-  public int getNettyServerExecutionThreads() {
-    return getInt(NETTY_SERVER_EXECUTION_THREADS,
-        NETTY_SERVER_EXECUTION_THREADS_DEFAULT);
-  }
-
-  /**
-   * Get the netty server execution concurrency.  This depends on whether the
-   * netty server execution handler exists.
-   *
-   * @return Server concurrency
-   */
-  public int getNettyServerExecutionConcurrency() {
-    if (getNettyServerUseExecutionHandler()) {
-      return getNettyServerExecutionThreads();
-    } else {
-      return getNettyServerThreads();
-    }
-  }
-
-  public int getZookeeperConnectionAttempts() {
-    return getInt(ZOOKEEPER_CONNECTION_ATTEMPTS,
-        ZOOKEEPER_CONNECTION_ATTEMPTS_DEFAULT);
-  }
-
-  public int getZooKeeperMinSessionTimeout() {
-    return getInt(ZOOKEEPER_MIN_SESSION_TIMEOUT,
-        DEFAULT_ZOOKEEPER_MIN_SESSION_TIMEOUT);
-  }
-
-  public int getZooKeeperMaxSessionTimeout() {
-    return getInt(ZOOKEEPER_MAX_SESSION_TIMEOUT,
-        DEFAULT_ZOOKEEPER_MAX_SESSION_TIMEOUT);
-  }
-
-  public String getZooKeeperForceSync() {
-    return get(ZOOKEEPER_FORCE_SYNC, DEFAULT_ZOOKEEPER_FORCE_SYNC);
-  }
-
-  public String getZooKeeperSkipAcl() {
-    return get(ZOOKEEPER_SKIP_ACL, DEFAULT_ZOOKEEPER_SKIP_ACL);
-  }
-
-  /**
-   * Get the number of map tasks in this job
-   *
-   * @return Number of map tasks in this job
-   */
-  public int getMapTasks() {
-    int mapTasks = getInt("mapred.map.tasks", -1);
-    if (mapTasks == -1) {
-      throw new IllegalStateException("getMapTasks: Failed to get the map " +
-          "tasks!");
-    }
-    return mapTasks;
-  }
-
-  /**
-   * Use authentication? (if supported)
-   *
-   * @return True if should authenticate, false otherwise
-   */
-  public boolean authenticate() {
-    return getBoolean(AUTHENTICATE, DEFAULT_AUTHENTICATE);
-  }
-
-  /**
-   * Set the number of compute threads
-   *
-   * @param numComputeThreads Number of compute threads to use
-   */
-  public void setNumComputeThreads(int numComputeThreads) {
-    setInt(NUM_COMPUTE_THREADS, numComputeThreads);
-  }
-
-  public int getNumComputeThreads() {
-    return getInt(NUM_COMPUTE_THREADS, NUM_COMPUTE_THREADS_DEFAULT);
-  }
-
-  /**
-   * Set the number of input split threads
-   *
-   * @param numInputSplitsThreads Number of input split threads to use
-   */
-  public void setNumInputSplitsThreads(int numInputSplitsThreads) {
-    setInt(NUM_INPUT_SPLITS_THREADS, numInputSplitsThreads);
-  }
-
-  public int getNumInputSplitsThreads() {
-    return getInt(NUM_INPUT_SPLITS_THREADS, NUM_INPUT_SPLITS_THREADS_DEFAULT);
-  }
-
-  public long getInputSplitMaxVertices() {
-    return getLong(INPUT_SPLIT_MAX_VERTICES, INPUT_SPLIT_MAX_VERTICES_DEFAULT);
-  }
-
-  public long getInputSplitMaxEdges() {
-    return getLong(INPUT_SPLIT_MAX_EDGES, INPUT_SPLIT_MAX_EDGES_DEFAULT);
-  }
-
-  /**
-   * Set whether to use unsafe serialization
-   *
-   * @param useUnsafeSerialization If true, use unsafe serialization
-   */
-  public void useUnsafeSerialization(boolean useUnsafeSerialization) {
-    setBoolean(USE_UNSAFE_SERIALIZATION, useUnsafeSerialization);
-  }
-
-  /**
-   * Use message size encoding?  This feature may help with complex message
-   * objects.
-   *
-   * @return Whether to use message size encoding
-   */
-  public boolean useMessageSizeEncoding() {
-    return getBoolean(
-        USE_MESSAGE_SIZE_ENCODING, USE_MESSAGE_SIZE_ENCODING_DEFAULT);
-  }
-
-  /**
-   * Set the checkpoint frequeuncy of how many supersteps to wait before
-   * checkpointing
-   *
-   * @param checkpointFrequency How often to checkpoint (0 means never)
-   */
-  public void setCheckpointFrequency(int checkpointFrequency) {
-    setInt(CHECKPOINT_FREQUENCY, checkpointFrequency);
-  }
-
-  /**
-   * Get the checkpoint frequeuncy of how many supersteps to wait
-   * before checkpointing
-   *
-   * @return Checkpoint frequency (0 means never)
-   */
-  public int getCheckpointFrequency() {
-    return getInt(CHECKPOINT_FREQUENCY, CHECKPOINT_FREQUENCY_DEFAULT);
-  }
-
-  /**
-   * Set the max task attempts
-   *
-   * @param maxTaskAttempts Max task attempts to use
-   */
-  public void setMaxTaskAttempts(int maxTaskAttempts) {
-    setInt(MAX_TASK_ATTEMPTS, maxTaskAttempts);
-  }
-
-  /**
-   * Get the max task attempts
-   *
-   * @return Max task attempts or -1, if not set
-   */
-  public int getMaxTaskAttempts() {
-    return getInt(MAX_TASK_ATTEMPTS, -1);
-  }
-
-  /**
-   * Get the number of milliseconds to wait for an event before continuing on
-   *
-   * @return Number of milliseconds to wait for an event before continuing on
-   */
-  public int getEventWaitMsecs() {
-    return getInt(EVENT_WAIT_MSECS, EVENT_WAIT_MSECS_DEFAULT);
-  }
-
-  /**
-   * Set the number of milliseconds to wait for an event before continuing on
-   *
-   * @param eventWaitMsecs Number of milliseconds to wait for an event before
-   *                       continuing on
-   */
-  public void setEventWaitMsecs(int eventWaitMsecs) {
-    setInt(EVENT_WAIT_MSECS, eventWaitMsecs);
-  }
-
-  /**
-   * Get the maximum milliseconds to wait before giving up trying to get the
-   * minimum number of workers before a superstep.
-   *
-   * @return Maximum milliseconds to wait before giving up trying to get the
-   *         minimum number of workers before a superstep
-   */
-  public int getMaxMasterSuperstepWaitMsecs() {
-    return getInt(MAX_MASTER_SUPERSTEP_WAIT_MSECS,
-        MAX_MASTER_SUPERSTEP_WAIT_MSECS_DEFAULT);
-  }
-
-  /**
-   * Set the maximum milliseconds to wait before giving up trying to get the
-   * minimum number of workers before a superstep.
-   *
-   * @param maxMasterSuperstepWaitMsecs Maximum milliseconds to wait before
-   *                                    giving up trying to get the minimum
-   *                                    number of workers before a superstep
-   */
-  public void setMaxMasterSuperstepWaitMsecs(int maxMasterSuperstepWaitMsecs) {
-    setInt(MAX_MASTER_SUPERSTEP_WAIT_MSECS, maxMasterSuperstepWaitMsecs);
-  }
-}

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/conf/GiraphConstants.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/conf/GiraphConstants.java b/giraph/src/main/java/org/apache/giraph/conf/GiraphConstants.java
deleted file mode 100644
index 11d4a41..0000000
--- a/giraph/src/main/java/org/apache/giraph/conf/GiraphConstants.java
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.giraph.conf;
-
-/**
- * Constants used all over Giraph for configuration.
- */
-// CHECKSTYLE: stop InterfaceIsTypeCheck
-public interface GiraphConstants {
-  /** Vertex class - required */
-  String VERTEX_CLASS = "giraph.vertexClass";
-
-  /** Class for Master - optional */
-  String MASTER_COMPUTE_CLASS = "giraph.masterComputeClass";
-  /** Classes for Observer Master - optional */
-  String MASTER_OBSERVER_CLASSES = "giraph.master.observers";
-  /** Vertex combiner class - optional */
-  String VERTEX_COMBINER_CLASS = "giraph.combinerClass";
-  /** Vertex resolver class - optional */
-  String VERTEX_RESOLVER_CLASS = "giraph.vertexResolverClass";
-  /**
-   * Option of whether to create vertexes that were not existent before but
-   * received messages
-   */
-  String RESOLVER_CREATE_VERTEX_ON_MSGS =
-      "giraph.vertex.resolver.create.on.msgs";
-  /** Graph partitioner factory class - optional */
-  String GRAPH_PARTITIONER_FACTORY_CLASS =
-      "giraph.graphPartitionerFactoryClass";
-
-  // At least one of the input format classes is required.
-  /** VertexInputFormat class */
-  String VERTEX_INPUT_FORMAT_CLASS = "giraph.vertexInputFormatClass";
-  /** EdgeInputFormat class */
-  String EDGE_INPUT_FORMAT_CLASS = "giraph.edgeInputFormatClass";
-
-  /** VertexOutputFormat class */
-  String VERTEX_OUTPUT_FORMAT_CLASS = "giraph.vertexOutputFormatClass";
-
-  /** Vertex index class */
-  String VERTEX_ID_CLASS = "giraph.vertexIdClass";
-  /** Vertex value class */
-  String VERTEX_VALUE_CLASS = "giraph.vertexValueClass";
-  /** Edge value class */
-  String EDGE_VALUE_CLASS = "giraph.edgeValueClass";
-  /** Message value class */
-  String MESSAGE_VALUE_CLASS = "giraph.messageValueClass";
-  /** Worker context class */
-  String WORKER_CONTEXT_CLASS = "giraph.workerContextClass";
-  /** AggregatorWriter class - optional */
-  String AGGREGATOR_WRITER_CLASS = "giraph.aggregatorWriterClass";
-
-  /** Partition class - optional */
-  String PARTITION_CLASS = "giraph.partitionClass";
-
-  /**
-   * Minimum number of simultaneous workers before this job can run (int)
-   */
-  String MIN_WORKERS = "giraph.minWorkers";
-  /**
-   * Maximum number of simultaneous worker tasks started by this job (int).
-   */
-  String MAX_WORKERS = "giraph.maxWorkers";
-
-  /**
-   * Separate the workers and the master tasks.  This is required
-   * to support dynamic recovery. (boolean)
-   */
-  String SPLIT_MASTER_WORKER = "giraph.SplitMasterWorker";
-  /**
-   * Default on whether to separate the workers and the master tasks.
-   * Needs to be "true" to support dynamic recovery.
-   */
-  boolean SPLIT_MASTER_WORKER_DEFAULT = true;
-
-  /** Indicates whether this job is run in an internal unit test */
-  String LOCAL_TEST_MODE = "giraph.localTestMode";
-
-  /** not in local test mode per default */
-  boolean LOCAL_TEST_MODE_DEFAULT = false;
-
-  /** Override the Hadoop log level and set the desired log level. */
-  String LOG_LEVEL = "giraph.logLevel";
-  /** Default log level is INFO (same as Hadoop) */
-  String LOG_LEVEL_DEFAULT = "info";
-
-  /** Use thread level debugging? */
-  String LOG_THREAD_LAYOUT = "giraph.logThreadLayout";
-  /** Default to not use thread-level debugging */
-  boolean LOG_THREAD_LAYOUT_DEFAULT = false;
-
-  /**
-   * Minimum percent of the maximum number of workers that have responded
-   * in order to continue progressing. (float)
-   */
-  String MIN_PERCENT_RESPONDED = "giraph.minPercentResponded";
-  /** Default 100% response rate for workers */
-  float MIN_PERCENT_RESPONDED_DEFAULT = 100.0f;
-
-  /** Enable the Metrics system **/
-  String METRICS_ENABLE = "giraph.metrics.enable";
-
-  /**
-   *  ZooKeeper comma-separated list (if not set,
-   *  will start up ZooKeeper locally)
-   */
-  String ZOOKEEPER_LIST = "giraph.zkList";
-
-  /** ZooKeeper session millisecond timeout */
-  String ZOOKEEPER_SESSION_TIMEOUT = "giraph.zkSessionMsecTimeout";
-  /** Default Zookeeper session millisecond timeout */
-  int ZOOKEEPER_SESSION_TIMEOUT_DEFAULT = 60 * 1000;
-
-  /** Polling interval to check for the ZooKeeper server data */
-  String ZOOKEEPER_SERVERLIST_POLL_MSECS = "giraph.zkServerlistPollMsecs";
-  /** Default polling interval to check for the ZooKeeper server data */
-  int ZOOKEEPER_SERVERLIST_POLL_MSECS_DEFAULT = 3 * 1000;
-
-  /** Number of nodes (not tasks) to run Zookeeper on */
-  String ZOOKEEPER_SERVER_COUNT = "giraph.zkServerCount";
-  /** Default number of nodes to run Zookeeper on */
-  int ZOOKEEPER_SERVER_COUNT_DEFAULT = 1;
-
-  /** ZooKeeper port to use */
-  String ZOOKEEPER_SERVER_PORT = "giraph.zkServerPort";
-  /** Default ZooKeeper port to use */
-  int ZOOKEEPER_SERVER_PORT_DEFAULT = 22181;
-
-  /** Location of the ZooKeeper jar - Used internally, not meant for users */
-  String ZOOKEEPER_JAR = "giraph.zkJar";
-
-  /** Local ZooKeeper directory to use */
-  String ZOOKEEPER_DIR = "giraph.zkDir";
-
-  /** Max attempts for handling ZooKeeper connection loss */
-  String ZOOKEEPER_OPS_MAX_ATTEMPTS = "giraph.zkOpsMaxAttempts";
-  /** Default of 3 attempts for handling ZooKeeper connection loss */
-  int ZOOKEEPER_OPS_MAX_ATTEMPTS_DEFAULT = 3;
-
-  /**
-   * Msecs to wait before retrying a failed ZooKeeper op due to connection
-   * loss.
-   */
-  String ZOOKEEPER_OPS_RETRY_WAIT_MSECS = "giraph.zkOpsRetryWaitMsecs";
-  /**
-   * Default to wait 5 seconds before retrying a failed ZooKeeper op due to
-   * connection loss.
-   */
-  int ZOOKEEPER_OPS_RETRY_WAIT_MSECS_DEFAULT = 5 * 1000;
-
-  /** TCP backlog (defaults to number of workers) */
-  String TCP_BACKLOG = "giraph.tcpBacklog";
-  /**
-   * Default TCP backlog default if the number of workers is not specified
-   * (i.e unittests)
-   */
-  int TCP_BACKLOG_DEFAULT = 1;
-
-  /** How big to make the default buffer? */
-  String NETTY_REQUEST_ENCODER_BUFFER_SIZE =
-      "giraph.nettyRequestEncoderBufferSize";
-  /** Start with 32K */
-  int NETTY_REQUEST_ENCODER_BUFFER_SIZE_DEFAULT = 32 * 1024;
-
-  /** Netty client threads */
-  String NETTY_CLIENT_THREADS = "giraph.nettyClientThreads";
-  /** Default is 4 */
-  int NETTY_CLIENT_THREADS_DEFAULT = 4;
-
-  /** Netty server threads */
-  String NETTY_SERVER_THREADS = "giraph.nettyServerThreads";
-  /** Default is 16 */
-  int NETTY_SERVER_THREADS_DEFAULT = 16;
-
-  /** Use the execution handler in netty on the client? */
-  String NETTY_CLIENT_USE_EXECUTION_HANDLER =
-      "giraph.nettyClientUseExecutionHandler";
-  /** Use the execution handler in netty on the client - default true */
-  boolean NETTY_CLIENT_USE_EXECUTION_HANDLER_DEFAULT = true;
-
-  /** Netty client execution threads (execution handler) */
-  String NETTY_CLIENT_EXECUTION_THREADS =
-      "giraph.nettyClientExecutionThreads";
-  /** Default Netty client execution threads (execution handler) of 8 */
-  int NETTY_CLIENT_EXECUTION_THREADS_DEFAULT = 8;
-
-  /** Where to place the netty client execution handle? */
-  String NETTY_CLIENT_EXECUTION_AFTER_HANDLER =
-      "giraph.nettyClientExecutionAfterHandler";
-  /**
-   * Default is to use the netty client execution handle after the request
-   * encoder.
-   */
-  String NETTY_CLIENT_EXECUTION_AFTER_HANDLER_DEFAULT = "requestEncoder";
-
-  /** Use the execution handler in netty on the server? */
-  String NETTY_SERVER_USE_EXECUTION_HANDLER =
-      "giraph.nettyServerUseExecutionHandler";
-  /** Use the execution handler in netty on the server - default true */
-  boolean NETTY_SERVER_USE_EXECUTION_HANDLER_DEFAULT = true;
-
-  /** Netty server execution threads (execution handler) */
-  String NETTY_SERVER_EXECUTION_THREADS = "giraph.nettyServerExecutionThreads";
-  /** Default Netty server execution threads (execution handler) of 8 */
-  int NETTY_SERVER_EXECUTION_THREADS_DEFAULT = 8;
-
-  /** Where to place the netty server execution handle? */
-  String NETTY_SERVER_EXECUTION_AFTER_HANDLER =
-      "giraph.nettyServerExecutionAfterHandler";
-  /**
-   * Default is to use the netty server execution handle after the request
-   * frame decoder.
-   */
-  String NETTY_SERVER_EXECUTION_AFTER_HANDLER_DEFAULT = "requestFrameDecoder";
-
-  /** Netty simulate a first request closed */
-  String NETTY_SIMULATE_FIRST_REQUEST_CLOSED =
-      "giraph.nettySimulateFirstRequestClosed";
-  /** Default of not simulating failure for first request */
-  boolean NETTY_SIMULATE_FIRST_REQUEST_CLOSED_DEFAULT = false;
-
-  /** Netty simulate a first response failed */
-  String NETTY_SIMULATE_FIRST_RESPONSE_FAILED =
-      "giraph.nettySimulateFirstResponseFailed";
-  /** Default of not simulating failure for first reponse */
-  boolean NETTY_SIMULATE_FIRST_RESPONSE_FAILED_DEFAULT = false;
-
-  /** Max resolve address attempts */
-  String MAX_RESOLVE_ADDRESS_ATTEMPTS = "giraph.maxResolveAddressAttempts";
-  /** Default max resolve address attempts */
-  int MAX_RESOLVE_ADDRESS_ATTEMPTS_DEFAULT = 5;
-
-  /** Msecs to wait between waiting for all requests to finish */
-  String WAITING_REQUEST_MSECS = "giraph.waitingRequestMsecs";
-  /** Default msecs to wait between waiting for all requests to finish */
-  int WAITING_REQUEST_MSECS_DEFAULT = 15000;
-
-  /** Millseconds to wait for an event before continuing */
-  String EVENT_WAIT_MSECS = "giraph.eventWaitMsecs";
-  /**
-   * Default milliseconds to wait for an event before continuing (30 seconds)
-   */
-  int EVENT_WAIT_MSECS_DEFAULT = 30 * 1000;
-
-  /**
-   * Maximum milliseconds to wait before giving up trying to get the minimum
-   * number of workers before a superstep (int).
-   */
-  String MAX_MASTER_SUPERSTEP_WAIT_MSECS = "giraph.maxMasterSuperstepWaitMsecs";
-  /**
-   * Default maximum milliseconds to wait before giving up trying to get
-   * the minimum number of workers before a superstep (10 minutes).
-   */
-  int MAX_MASTER_SUPERSTEP_WAIT_MSECS_DEFAULT = 10 * 60 * 1000;
-
-  /** Milliseconds for a request to complete (or else resend) */
-  String MAX_REQUEST_MILLISECONDS = "giraph.maxRequestMilliseconds";
-  /** Maximum number of milliseconds for a request to complete (10 minutes) */
-  int MAX_REQUEST_MILLISECONDS_DEFAULT = 10 * 60 * 1000;
-
-  /** Netty max connection failures */
-  String NETTY_MAX_CONNECTION_FAILURES = "giraph.nettyMaxConnectionFailures";
-  /** Default Netty max connection failures */
-  int NETTY_MAX_CONNECTION_FAILURES_DEFAULT = 1000;
-
-  /** Initial port to start using for the IPC communication */
-  String IPC_INITIAL_PORT = "giraph.ipcInitialPort";
-  /** Default port to start using for the IPC communication */
-  int IPC_INITIAL_PORT_DEFAULT = 30000;
-
-  /** Maximum bind attempts for different IPC ports */
-  String MAX_IPC_PORT_BIND_ATTEMPTS = "giraph.maxIpcPortBindAttempts";
-  /** Default maximum bind attempts for different IPC ports */
-  int MAX_IPC_PORT_BIND_ATTEMPTS_DEFAULT = 20;
-  /**
-   * Fail first IPC port binding attempt, simulate binding failure
-   * on real grid testing
-   */
-  String FAIL_FIRST_IPC_PORT_BIND_ATTEMPT =
-      "giraph.failFirstIpcPortBindAttempt";
-  /** Default fail first IPC port binding attempt flag */
-  boolean FAIL_FIRST_IPC_PORT_BIND_ATTEMPT_DEFAULT = false;
-
-  /** Client send buffer size */
-  String CLIENT_SEND_BUFFER_SIZE = "giraph.clientSendBufferSize";
-  /** Default client send buffer size of 0.5 MB */
-  int DEFAULT_CLIENT_SEND_BUFFER_SIZE = 512 * 1024;
-
-  /** Client receive buffer size */
-  String CLIENT_RECEIVE_BUFFER_SIZE = "giraph.clientReceiveBufferSize";
-  /** Default client receive buffer size of 32 k */
-  int DEFAULT_CLIENT_RECEIVE_BUFFER_SIZE = 32 * 1024;
-
-  /** Server send buffer size */
-  String SERVER_SEND_BUFFER_SIZE = "giraph.serverSendBufferSize";
-  /** Default server send buffer size of 32 k */
-  int DEFAULT_SERVER_SEND_BUFFER_SIZE = 32 * 1024;
-
-  /** Server receive buffer size */
-  String SERVER_RECEIVE_BUFFER_SIZE = "giraph.serverReceiveBufferSize";
-  /** Default server receive buffer size of 0.5 MB */
-  int DEFAULT_SERVER_RECEIVE_BUFFER_SIZE = 512 * 1024;
-
-  /** Maximum size of messages (in bytes) per peer before flush */
-  String MAX_MSG_REQUEST_SIZE = "giraph.msgRequestSize";
-  /** Default maximum size of messages per peer before flush of 0.5MB */
-  int MAX_MSG_REQUEST_SIZE_DEFAULT = 512 * 1024;
-
-  /** Maximum number of messages per peer before flush */
-  String MSG_SIZE = "giraph.msgSize";
-  /** Default maximum number of messages per peer before flush */
-  int MSG_SIZE_DEFAULT = 2000;
-
-  /** Maximum number of mutations per partition before flush */
-  String MAX_MUTATIONS_PER_REQUEST = "giraph.maxMutationsPerRequest";
-  /** Default maximum number of mutations per partition before flush */
-  int MAX_MUTATIONS_PER_REQUEST_DEFAULT = 100;
-
-  /**
-   * Use message size encoding (typically better for complex objects,
-   * not meant for primitive wrapped messages)
-   */
-  String USE_MESSAGE_SIZE_ENCODING = "giraph.useMessageSizeEncoding";
-  /**
-   * By default, do not use message size encoding as it is experimental.
-   */
-  boolean USE_MESSAGE_SIZE_ENCODING_DEFAULT = false;
-
-  /** Number of channels used per server */
-  String CHANNELS_PER_SERVER = "giraph.channelsPerServer";
-  /** Default number of channels used per server of 1 */
-  int DEFAULT_CHANNELS_PER_SERVER = 1;
-
-  /** Number of flush threads per peer */
-  String MSG_NUM_FLUSH_THREADS = "giraph.msgNumFlushThreads";
-
-  /** Number of threads for vertex computation */
-  String NUM_COMPUTE_THREADS = "giraph.numComputeThreads";
-  /** Default number of threads for vertex computation */
-  int NUM_COMPUTE_THREADS_DEFAULT = 1;
-
-  /** Number of threads for input splits loading */
-  String NUM_INPUT_SPLITS_THREADS = "giraph.numInputSplitsThreads";
-  /** Default number of threads for input splits loading */
-  int NUM_INPUT_SPLITS_THREADS_DEFAULT = 1;
-
-  /** Minimum stragglers of the superstep before printing them out */
-  String PARTITION_LONG_TAIL_MIN_PRINT = "giraph.partitionLongTailMinPrint";
-  /** Only print stragglers with one as a default */
-  int PARTITION_LONG_TAIL_MIN_PRINT_DEFAULT = 1;
-
-  /** Use superstep counters? (boolean) */
-  String USE_SUPERSTEP_COUNTERS = "giraph.useSuperstepCounters";
-  /** Default is to use the superstep counters */
-  boolean USE_SUPERSTEP_COUNTERS_DEFAULT = true;
-
-  /**
-   * Set the multiplicative factor of how many partitions to create from
-   * a single InputSplit based on the number of total InputSplits.  For
-   * example, if there are 10 total InputSplits and this is set to 0.5, then
-   * you will get 0.5 * 10 = 5 partitions for every InputSplit (given that the
-   * minimum size is met).
-   */
-  String TOTAL_INPUT_SPLIT_MULTIPLIER = "giraph.totalInputSplitMultiplier";
-
-  /**
-   * Input split sample percent - Used only for sampling and testing, rather
-   * than an actual job.  The idea is that to test, you might only want a
-   * fraction of the actual input splits from your VertexInputFormat to
-   * load (values should be [0, 100]).
-   */
-  String INPUT_SPLIT_SAMPLE_PERCENT = "giraph.inputSplitSamplePercent";
-  /** Default is to use all the input splits */
-  float INPUT_SPLIT_SAMPLE_PERCENT_DEFAULT = 100f;
-
-  /**
-   * To limit outlier vertex input splits from producing too many vertices or
-   * to help with testing, the number of vertices loaded from an input split
-   * can be limited.  By default, everything is loaded.
-   */
-  String INPUT_SPLIT_MAX_VERTICES = "giraph.InputSplitMaxVertices";
-  /**
-   * Default is that all the vertices are to be loaded from the input split
-   */
-  long INPUT_SPLIT_MAX_VERTICES_DEFAULT = -1;
-
-  /**
-   * To limit outlier vertex input splits from producing too many vertices or
-   * to help with testing, the number of edges loaded from an input split
-   * can be limited.  By default, everything is loaded.
-   */
-  String INPUT_SPLIT_MAX_EDGES = "giraph.InputSplitMaxEdges";
-  /**
-   * Default is that all the edges are to be loaded from the input split
-   */
-  long INPUT_SPLIT_MAX_EDGES_DEFAULT = -1;
-
-  /** Java opts passed to ZooKeeper startup */
-  String ZOOKEEPER_JAVA_OPTS = "giraph.zkJavaOpts";
-  /** Default java opts passed to ZooKeeper startup */
-  String ZOOKEEPER_JAVA_OPTS_DEFAULT =
-      "-Xmx512m -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC " +
-          "-XX:CMSInitiatingOccupancyFraction=70 -XX:MaxGCPauseMillis=100";
-
-  /**
-   *  How often to checkpoint (i.e. 0, means no checkpoint,
-   *  1 means every superstep, 2 is every two supersteps, etc.).
-   */
-  String CHECKPOINT_FREQUENCY = "giraph.checkpointFrequency";
-
-  /** Default checkpointing frequency of none. */
-  int CHECKPOINT_FREQUENCY_DEFAULT = 0;
-
-  /**
-   * Delete checkpoints after a successful job run?
-   */
-  String CLEANUP_CHECKPOINTS_AFTER_SUCCESS =
-      "giraph.cleanupCheckpointsAfterSuccess";
-  /** Default is to clean up the checkponts after a successful job */
-  boolean CLEANUP_CHECKPOINTS_AFTER_SUCCESS_DEFAULT = true;
-
-  /**
-   * An application can be restarted manually by selecting a superstep.  The
-   * corresponding checkpoint must exist for this to work.  The user should
-   * set a long value.  Default is start from scratch.
-   */
-  String RESTART_SUPERSTEP = "giraph.restartSuperstep";
-
-  /**
-   * Base ZNode for Giraph's state in the ZooKeeper cluster.  Must be a root
-   * znode on the cluster beginning with "/"
-   */
-  String BASE_ZNODE_KEY = "giraph.zkBaseZNode";
-
-  /**
-   * If ZOOKEEPER_LIST is not set, then use this directory to manage
-   * ZooKeeper
-   */
-  String ZOOKEEPER_MANAGER_DIRECTORY = "giraph.zkManagerDirectory";
-  /**
-   * Default ZooKeeper manager directory (where determining the servers in
-   * HDFS files will go).  directory path will also have job number
-   * for uniqueness.
-   */
-  String ZOOKEEPER_MANAGER_DIR_DEFAULT = "_bsp/_defaultZkManagerDir";
-
-  /** Number of ZooKeeper client connection attempts before giving up. */
-  String ZOOKEEPER_CONNECTION_ATTEMPTS = "giraph.zkConnectionAttempts";
-  /** Default of 10 ZooKeeper client connection attempts before giving up. */
-  int ZOOKEEPER_CONNECTION_ATTEMPTS_DEFAULT = 10;
-
-  /** This directory has/stores the available checkpoint files in HDFS. */
-  String CHECKPOINT_DIRECTORY = "giraph.checkpointDirectory";
-  /**
-   * Default checkpoint directory (where checkpoing files go in HDFS).  Final
-   * directory path will also have the job number for uniqueness
-   */
-  String CHECKPOINT_DIRECTORY_DEFAULT = "_bsp/_checkpoints/";
-
-  /** Directory in the local file system for out-of-core messages. */
-  String MESSAGES_DIRECTORY = "giraph.messagesDirectory";
-  /**
-   * Default messages directory. directory path will also have the
-   * job number for uniqueness
-   */
-  String MESSAGES_DIRECTORY_DEFAULT = "_bsp/_messages/";
-
-  /** Whether or not to use out-of-core messages */
-  String USE_OUT_OF_CORE_MESSAGES = "giraph.useOutOfCoreMessages";
-  /** Default choice about using out-of-core messaging */
-  boolean USE_OUT_OF_CORE_MESSAGES_DEFAULT = false;
-  /**
-   * If using out-of-core messaging, it tells how much messages do we keep
-   * in memory.
-   */
-  String MAX_MESSAGES_IN_MEMORY = "giraph.maxMessagesInMemory";
-  /** Default maximum number of messages in memory. */
-  int MAX_MESSAGES_IN_MEMORY_DEFAULT = 1000000;
-  /** Size of buffer when reading and writing messages out-of-core. */
-  String MESSAGES_BUFFER_SIZE = "giraph.messagesBufferSize";
-  /** Default size of buffer when reading and writing messages out-of-core. */
-  int MESSAGES_BUFFER_SIZE_DEFAULT = 8192;
-
-  /** Directory in the local filesystem for out-of-core partitions. */
-  String PARTITIONS_DIRECTORY = "giraph.partitionsDirectory";
-  /** Default directory for out-of-core partitions. */
-  String PARTITIONS_DIRECTORY_DEFAULT = "_bsp/_partitions";
-
-  /** Enable out-of-core graph. */
-  String USE_OUT_OF_CORE_GRAPH = "giraph.useOutOfCoreGraph";
-  /** Default is not to use out-of-core graph. */
-  boolean USE_OUT_OF_CORE_GRAPH_DEFAULT = false;
-
-  /** Maximum number of partitions to hold in memory for each worker. */
-  String MAX_PARTITIONS_IN_MEMORY = "giraph.maxPartitionsInMemory";
-  /** Default maximum number of in-memory partitions. */
-  int MAX_PARTITIONS_IN_MEMORY_DEFAULT = 10;
-
-  /** Keep the zookeeper output for debugging? Default is to remove it. */
-  String KEEP_ZOOKEEPER_DATA = "giraph.keepZooKeeperData";
-  /** Default is to remove ZooKeeper data. */
-  Boolean KEEP_ZOOKEEPER_DATA_DEFAULT = false;
-
-  /** Default ZooKeeper tick time. */
-  int DEFAULT_ZOOKEEPER_TICK_TIME = 6000;
-  /** Default ZooKeeper init limit (in ticks). */
-  int DEFAULT_ZOOKEEPER_INIT_LIMIT = 10;
-  /** Default ZooKeeper sync limit (in ticks). */
-  int DEFAULT_ZOOKEEPER_SYNC_LIMIT = 5;
-  /** Default ZooKeeper snap count. */
-  int DEFAULT_ZOOKEEPER_SNAP_COUNT = 50000;
-  /** Default ZooKeeper maximum client connections. */
-  int DEFAULT_ZOOKEEPER_MAX_CLIENT_CNXNS = 10000;
-  /** ZooKeeper minimum session timeout */
-  String ZOOKEEPER_MIN_SESSION_TIMEOUT = "giraph.zKMinSessionTimeout";
-  /** Default ZooKeeper minimum session timeout of 10 minutes (in msecs). */
-  int DEFAULT_ZOOKEEPER_MIN_SESSION_TIMEOUT = 600 * 1000;
-  /** ZooKeeper maximum session timeout */
-  String ZOOKEEPER_MAX_SESSION_TIMEOUT = "giraph.zkMaxSessionTimeout";
-  /** Default ZooKeeper maximum session timeout of 15 minutes (in msecs). */
-  int DEFAULT_ZOOKEEPER_MAX_SESSION_TIMEOUT = 900 * 1000;
-  /** ZooKeeper force sync */
-  String ZOOKEEPER_FORCE_SYNC = "giraph.zKForceSync";
-  /** Default ZooKeeper force sync is off (for performance) */
-  String DEFAULT_ZOOKEEPER_FORCE_SYNC = "no";
-  /** ZooKeeper skip ACLs */
-  String ZOOKEEPER_SKIP_ACL = "giraph.ZkSkipAcl";
-  /** Default ZooKeeper skip ACLs true (for performance) */
-  String DEFAULT_ZOOKEEPER_SKIP_ACL = "yes";
-
-  /**
-   * Whether to use SASL with DIGEST and Hadoop Job Tokens to authenticate
-   * and authorize Netty BSP Clients to Servers.
-   */
-  String AUTHENTICATE = "giraph.authenticate";
-  /** Default is not to do authenticate and authorization with Netty. */
-  boolean DEFAULT_AUTHENTICATE = false;
-
-  /** Use unsafe serialization? */
-  String USE_UNSAFE_SERIALIZATION = "giraph.useUnsafeSerialization";
-  /**
-   * Use unsafe serialization default is true (use it if you can,
-   * its much faster)!
-   */
-  boolean USE_UNSAFE_SERIALIZATION_DEFAULT = true;
-
-  /**
-   * Maximum number of attempts a master/worker will retry before killing
-   * the job.  This directly maps to the number of map task attempts in
-   * Hadoop.
-   */
-  String MAX_TASK_ATTEMPTS = "mapred.map.max.attempts";
-}
-// CHECKSTYLE: resume InterfaceIsTypeCheck

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfigurable.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfigurable.java b/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfigurable.java
deleted file mode 100644
index e4351a2..0000000
--- a/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfigurable.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.giraph.conf;
-
-import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.io.WritableComparable;
-
-/**
- * Can be instantiated with ImmutableClassesGiraphConfiguration
- *
- * @param <I> Vertex id
- * @param <V> Vertex data
- * @param <E> Edge data
- * @param <M> Message data
- */
-public interface ImmutableClassesGiraphConfigurable<
-    I extends WritableComparable, V extends Writable, E extends Writable,
-    M extends Writable> {
-  /**
-   * Set the configuration to be used by this object.
-   *
-   * @param configuration Set configuration
-   */
-  void setConf(ImmutableClassesGiraphConfiguration<I, V, E, M>
-                   configuration);
-
-  /**
-   * Return the configuration used by this object.
-   *
-   * @return Set configuration
-   */
-  ImmutableClassesGiraphConfiguration<I, V, E, M> getConf();
-}

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfiguration.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfiguration.java b/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfiguration.java
deleted file mode 100644
index 00e4135..0000000
--- a/giraph/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfiguration.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.giraph.conf;
-
-import org.apache.giraph.graph.AggregatorWriter;
-import org.apache.giraph.graph.Combiner;
-import org.apache.giraph.graph.EdgeInputFormat;
-import org.apache.giraph.graph.GraphState;
-import org.apache.giraph.graph.MasterCompute;
-import org.apache.giraph.graph.Vertex;
-import org.apache.giraph.graph.VertexInputFormat;
-import org.apache.giraph.graph.VertexOutputFormat;
-import org.apache.giraph.graph.VertexResolver;
-import org.apache.giraph.graph.WorkerContext;
-import org.apache.giraph.graph.partition.GraphPartitionerFactory;
-import org.apache.giraph.graph.partition.MasterGraphPartitioner;
-import org.apache.giraph.graph.partition.Partition;
-import org.apache.giraph.graph.partition.PartitionStats;
-import org.apache.giraph.master.MasterObserver;
-import org.apache.giraph.utils.ExtendedByteArrayDataInput;
-import org.apache.giraph.utils.ExtendedByteArrayDataOutput;
-import org.apache.giraph.utils.ExtendedDataInput;
-import org.apache.giraph.utils.ExtendedDataOutput;
-import org.apache.giraph.utils.ReflectionUtils;
-import org.apache.giraph.utils.UnsafeByteArrayInputStream;
-import org.apache.giraph.utils.UnsafeByteArrayOutputStream;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.io.NullWritable;
-import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.io.WritableComparable;
-import org.apache.hadoop.util.Progressable;
-
-/**
- * The classes set here are immutable, the remaining configuration is mutable.
- * Classes are immutable and final to provide the best performance for
- * instantiation.  Everything is thread-safe.
- *
- * @param <I> Vertex id
- * @param <V> Vertex data
- * @param <E> Edge data
- * @param <M> Message data
- */
-public class ImmutableClassesGiraphConfiguration<I extends WritableComparable,
-    V extends Writable, E extends Writable, M extends Writable> extends
-    GiraphConfiguration {
-  /** Master graph partitioner - cached for fast access */
-  protected final MasterGraphPartitioner<I, V, E, M> masterGraphPartitioner;
-
-  /** Holder for all the classes */
-  private final GiraphClasses classes;
-
-  /**
-   * Use unsafe serialization? Cached for fast access to instantiate the
-   * extended data input/output classes
-   */
-  private final boolean useUnsafeSerialization;
-
-  /**
-   * Constructor.  Takes the configuration and then gets the classes out of
-   * them for Giraph
-   *
-   * @param conf Configuration
-   */
-  public ImmutableClassesGiraphConfiguration(Configuration conf) {
-    super(conf);
-
-    classes = new GiraphClasses(conf);
-    masterGraphPartitioner = (MasterGraphPartitioner<I, V, E, M>)
-        createGraphPartitioner().createMasterGraphPartitioner();
-
-    useUnsafeSerialization = getBoolean(USE_UNSAFE_SERIALIZATION,
-        USE_UNSAFE_SERIALIZATION_DEFAULT);
-  }
-
-  /**
-   * Get the user's subclassed
-   * {@link org.apache.giraph.graph.partition.GraphPartitionerFactory}.
-   *
-   * @return User's graph partitioner
-   */
-  public Class<? extends GraphPartitionerFactory<I, V, E, M>>
-  getGraphPartitionerClass() {
-    return classes.getGraphPartitionerFactoryClass();
-  }
-
-  /**
-   * Create a user graph partitioner class
-   *
-   * @return Instantiated user graph partitioner class
-   */
-  public GraphPartitionerFactory<I, V, E, M> createGraphPartitioner() {
-    Class<? extends GraphPartitionerFactory<I, V, E, M>> klass =
-        classes.getGraphPartitionerFactoryClass();
-    return ReflectionUtils.newInstance(klass, this);
-  }
-
-  /**
-   * Create a user graph partitioner partition stats class
-   *
-   * @return Instantiated user graph partition stats class
-   */
-  public PartitionStats createGraphPartitionStats() {
-    return getMasterGraphPartitioner().createPartitionStats();
-  }
-
-  /**
-   * Get the cached MasterGraphPartitioner.
-   *
-   * @return MasterGraphPartitioner cached in this class.
-   */
-  public MasterGraphPartitioner<I, V, E, M> getMasterGraphPartitioner() {
-    return masterGraphPartitioner;
-  }
-
-  /**
-   * Does the job have a {@link VertexInputFormat}?
-   *
-   * @return True iff a {@link VertexInputFormat} has been specified.
-   */
-  public boolean hasVertexInputFormat() {
-    return classes.hasVertexInputFormat();
-  }
-
-  /**
-   * Get the user's subclassed
-   * {@link org.apache.giraph.graph.VertexInputFormat}.
-   *
-   * @return User's vertex input format class
-   */
-  public Class<? extends VertexInputFormat<I, V, E, M>>
-  getVertexInputFormatClass() {
-    return classes.getVertexInputFormatClass();
-  }
-
-  /**
-   * Create a user vertex input format class
-   *
-   * @return Instantiated user vertex input format class
-   */
-  public VertexInputFormat<I, V, E, M>
-  createVertexInputFormat() {
-    Class<? extends VertexInputFormat<I, V, E, M>> klass =
-        classes.getVertexInputFormatClass();
-    return ReflectionUtils.newInstance(klass, this);
-  }
-
-  /**
-   * Get the user's subclassed
-   * {@link org.apache.giraph.graph.VertexOutputFormat}.
-   *
-   * @return User's vertex output format class
-   */
-  public Class<? extends VertexOutputFormat<I, V, E>>
-  getVertexOutputFormatClass() {
-    return classes.getVertexOutputFormatClass();
-  }
-
-  /**
-   * Create a user vertex output format class
-   *
-   * @return Instantiated user vertex output format class
-   */
-  @SuppressWarnings("rawtypes")
-  public VertexOutputFormat<I, V, E> createVertexOutputFormat() {
-    Class<? extends VertexOutputFormat<I, V, E>> klass =
-        classes.getVertexOutputFormatClass();
-    return ReflectionUtils.newInstance(klass, this);
-  }
-
-  /**
-   * Does the job have an {@link EdgeInputFormat}?
-   *
-   * @return True iff an {@link EdgeInputFormat} has been specified.
-   */
-  public boolean hasEdgeInputFormat() {
-    return classes.hasEdgeInputFormat();
-  }
-
-  /**
-   * Get the user's subclassed
-   * {@link org.apache.giraph.graph.EdgeInputFormat}.
-   *
-   * @return User's edge input format class
-   */
-  public Class<? extends EdgeInputFormat<I, E>> getEdgeInputFormatClass() {
-    return classes.getEdgeInputFormatClass();
-  }
-
-  /**
-   * Create a user edge input format class
-   *
-   * @return Instantiated user edge input format class
-   */
-  public EdgeInputFormat<I, E> createEdgeInputFormat() {
-    Class<? extends EdgeInputFormat<I, E>> klass = getEdgeInputFormatClass();
-    return ReflectionUtils.newInstance(klass, this);
-  }
-
-  /**
-   * Get the user's subclassed {@link org.apache.giraph.graph.AggregatorWriter}.
-   *
-   * @return User's aggregator writer class
-   */
-  public Class<? extends AggregatorWriter> getAggregatorWriterClass() {
-    return classes.getAggregatorWriterClass();
-  }
-
-  /**
-   * Create a user aggregator output format class
-   *
-   * @return Instantiated user aggregator writer class
-   */
-  public AggregatorWriter createAggregatorWriter() {
-    return ReflectionUtils.newInstance(getAggregatorWriterClass(), this);
-  }
-
-  /**
-   * Create a user combiner class
-   *
-   * @return Instantiated user combiner class
-   */
-  @SuppressWarnings("rawtypes")
-  public Combiner<I, M> createCombiner() {
-    Class<? extends Combiner<I, M>> klass = classes.getCombinerClass();
-    return ReflectionUtils.newInstance(klass, this);
-  }
-
-  /**
-   * Check if user set a combiner
-   *
-   * @return True iff user set a combiner class
-   */
-  public boolean useCombiner() {
-    return classes.hasCombinerClass();
-  }
-
-  /**
-   * Get the user's subclassed VertexResolver.
-   *
-   * @return User's vertex resolver class
-   */
-  public Class<? extends VertexResolver<I, V, E, M>> getVertexResolverClass() {
-    return classes.getVertexResolverClass();
-  }
-
-  /**
-   * Create a user vertex revolver
-   *
-   * @param graphState State of the graph from the worker
-   * @return Instantiated user vertex resolver
-   */
-  @SuppressWarnings("rawtypes")
-  public VertexResolver<I, V, E, M> createVertexResolver(
-                       GraphState<I, V, E, M> graphState) {
-    VertexResolver<I, V, E, M> resolver =
-        ReflectionUtils.newInstance(getVertexResolverClass(), this);
-    resolver.setGraphState(graphState);
-    return resolver;
-  }
-
-  /**
-   * Get the user's subclassed WorkerContext.
-   *
-   * @return User's worker context class
-   */
-  public Class<? extends WorkerContext> getWorkerContextClass() {
-    return classes.getWorkerContextClass();
-  }
-
-  /**
-   * Create a user worker context
-   *
-   * @param graphState State of the graph from the worker
-   * @return Instantiated user worker context
-   */
-  @SuppressWarnings("rawtypes")
-  public WorkerContext createWorkerContext(GraphState<I, V, E, M> graphState) {
-    WorkerContext workerContext =
-        ReflectionUtils.newInstance(getWorkerContextClass(), this);
-    workerContext.setGraphState(graphState);
-    return workerContext;
-  }
-
-  /**
-   * Get the user's subclassed {@link org.apache.giraph.graph.MasterCompute}
-   *
-   * @return User's master class
-   */
-  public Class<? extends MasterCompute> getMasterComputeClass() {
-    return classes.getMasterComputeClass();
-  }
-
-  /**
-   * Create a user master
-   *
-   * @return Instantiated user master
-   */
-  public MasterCompute createMasterCompute() {
-    return ReflectionUtils.newInstance(getMasterComputeClass(), this);
-  }
-
-  /**
-   * Get the user's subclassed {@link org.apache.giraph.graph.Vertex}
-   *
-   * @return User's vertex class
-   */
-  public Class<? extends Vertex<I, V, E, M>> getVertexClass() {
-    return classes.getVertexClass();
-  }
-
-  /**
-   * Create a user vertex
-   *
-   * @return Instantiated user vertex
-   */
-  public Vertex<I, V, E, M> createVertex() {
-    return ReflectionUtils.newInstance(getVertexClass(), this);
-  }
-
-  /**
-   * Get the user's subclassed vertex index class.
-   *
-   * @return User's vertex index class
-   */
-  public Class<I> getVertexIdClass() {
-    return classes.getVertexIdClass();
-  }
-
-  /**
-   * Create a user vertex index
-   *
-   * @return Instantiated user vertex index
-   */
-  public I createVertexId() {
-    try {
-      return getVertexIdClass().newInstance();
-    } catch (InstantiationException e) {
-      throw new IllegalArgumentException(
-          "createVertexId: Failed to instantiate", e);
-    } catch (IllegalAccessException e) {
-      throw new IllegalArgumentException(
-          "createVertexId: Illegally accessed", e);
-    }
-  }
-
-  /**
-   * Get the user's subclassed vertex value class.
-   *
-   * @return User's vertex value class
-   */
-  public Class<V> getVertexValueClass() {
-    return classes.getVertexValueClass();
-  }
-
-  /**
-   * Create a user vertex value
-   *
-   * @return Instantiated user vertex value
-   */
-  @SuppressWarnings("unchecked")
-  public V createVertexValue() {
-    Class<V> klass = getVertexValueClass();
-    if (klass == NullWritable.class) {
-      return (V) NullWritable.get();
-    } else {
-      try {
-        return klass.newInstance();
-      } catch (InstantiationException e) {
-        throw new IllegalArgumentException(
-            "createVertexValue: Failed to instantiate", e);
-      } catch (IllegalAccessException e) {
-        throw new IllegalArgumentException(
-            "createVertexValue: Illegally accessed", e);
-      }
-    }
-  }
-
-  /**
-   * Create array of MasterObservers.
-   *
-   * @return Instantiated array of MasterObservers.
-   */
-  public MasterObserver[] createMasterObservers() {
-    Class<? extends MasterObserver>[] klasses = getMasterObserverClasses();
-    MasterObserver[] objects = new MasterObserver[klasses.length];
-    for (int i = 0; i < klasses.length; ++i) {
-      objects[i] = ReflectionUtils.newInstance(klasses[i], this);
-    }
-    return objects;
-  }
-
-  /**
-   * Get the user's subclassed edge value class.
-   *
-   * @return User's vertex edge value class
-   */
-  public Class<E> getEdgeValueClass() {
-    return classes.getEdgeValueClass();
-  }
-
-  /**
-   * Create a user edge value
-   *
-   * @return Instantiated user edge value
-   */
-  public E createEdgeValue() {
-    Class<E> klass = getEdgeValueClass();
-    if (klass == NullWritable.class) {
-      return (E) NullWritable.get();
-    } else {
-      try {
-        return klass.newInstance();
-      } catch (InstantiationException e) {
-        throw new IllegalArgumentException(
-            "createEdgeValue: Failed to instantiate", e);
-      } catch (IllegalAccessException e) {
-        throw new IllegalArgumentException(
-            "createEdgeValue: Illegally accessed", e);
-      }
-    }
-  }
-
-  /**
-   * Get the user's subclassed vertex message value class.
-   *
-   * @return User's vertex message value class
-   */
-  @SuppressWarnings("unchecked")
-  public Class<M> getMessageValueClass() {
-    return classes.getMessageValueClass();
-  }
-
-  /**
-   * Create a user vertex message value
-   *
-   * @return Instantiated user vertex message value
-   */
-  public M createMessageValue() {
-    Class<M> klass = getMessageValueClass();
-    if (klass == NullWritable.class) {
-      return (M) NullWritable.get();
-    } else {
-      try {
-        return klass.newInstance();
-      } catch (InstantiationException e) {
-        throw new IllegalArgumentException(
-            "createMessageValue: Failed to instantiate", e);
-      } catch (IllegalAccessException e) {
-        throw new IllegalArgumentException(
-            "createMessageValue: Illegally accessed", e);
-      }
-    }
-  }
-
-  /**
-   * Create a partition
-   *
-   * @param id Partition id
-   * @param progressable Progressable for reporting progress
-   * @return Instantiated partition
-   */
-  public Partition<I, V, E, M> createPartition(
-      int id, Progressable progressable) {
-    Class<? extends Partition<I, V, E, M>> klass = classes.getPartitionClass();
-    Partition<I, V, E, M> partition = ReflectionUtils.newInstance(klass, this);
-    partition.initialize(id, progressable);
-    return partition;
-  }
-
-  /**
-   * Use unsafe serialization?
-   *
-   * @return True if using unsafe serialization, false otherwise.
-   */
-  public boolean useUnsafeSerialization() {
-    return useUnsafeSerialization;
-  }
-
-  /**
-   * Create an extended data output (can be subclassed)
-   *
-   * @return ExtendedDataOutput object
-   */
-  public ExtendedDataOutput createExtendedDataOutput() {
-    if (useUnsafeSerialization) {
-      return new UnsafeByteArrayOutputStream();
-    } else {
-      return new ExtendedByteArrayDataOutput();
-    }
-  }
-
-  /**
-   * Create an extended data output (can be subclassed)
-   *
-   * @param expectedSize Expected size
-   * @return ExtendedDataOutput object
-   */
-  public ExtendedDataOutput createExtendedDataOutput(int expectedSize) {
-    if (useUnsafeSerialization) {
-      return new UnsafeByteArrayOutputStream(expectedSize);
-    } else {
-      return new ExtendedByteArrayDataOutput(expectedSize);
-    }
-  }
-
-  /**
-   * Create an extended data output (can be subclassed)
-   *
-   * @param buf Buffer to use for the output (reuse perhaps)
-   * @param pos How much of the buffer is already used
-   * @return ExtendedDataOutput object
-   */
-  public ExtendedDataOutput createExtendedDataOutput(byte[] buf,
-                                                     int pos) {
-    if (useUnsafeSerialization) {
-      return new UnsafeByteArrayOutputStream(buf, pos);
-    } else {
-      return new ExtendedByteArrayDataOutput(buf, pos);
-    }
-  }
-
-  /**
-   * Create an extended data input (can be subclassed)
-   *
-   * @param buf Buffer to use for the input
-   * @param off Where to start reading in the buffer
-   * @param length Maximum length of the buffer
-   * @return ExtendedDataInput object
-   */
-  public ExtendedDataInput createExtendedDataInput(
-      byte[] buf, int off, int length) {
-    if (useUnsafeSerialization) {
-      return new UnsafeByteArrayInputStream(buf, off, length);
-    } else {
-      return new ExtendedByteArrayDataInput(buf, off, length);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/conf/package-info.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/conf/package-info.java b/giraph/src/main/java/org/apache/giraph/conf/package-info.java
deleted file mode 100644
index 3b6b4b1..0000000
--- a/giraph/src/main/java/org/apache/giraph/conf/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Package of Giraph configuration related things.
- */
-package org.apache.giraph.conf;

http://git-wip-us.apache.org/repos/asf/giraph/blob/45851391/giraph/src/main/java/org/apache/giraph/counters/GiraphHadoopCounter.java
----------------------------------------------------------------------
diff --git a/giraph/src/main/java/org/apache/giraph/counters/GiraphHadoopCounter.java b/giraph/src/main/java/org/apache/giraph/counters/GiraphHadoopCounter.java
deleted file mode 100644
index 948c9ab..0000000
--- a/giraph/src/main/java/org/apache/giraph/counters/GiraphHadoopCounter.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.giraph.counters;
-
-import com.google.common.base.Objects;
-import org.apache.hadoop.mapreduce.Counter;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-/**
- * Wrapper around Hadoop Counter to make it easier to use.
- */
-public class GiraphHadoopCounter {
-  /** Hadoop Counter we're wrapping. */
-  private Counter counter;
-
-  /**
-   * Create wrapping a Hadoop Counter.
-   *
-   * @param counter Hadoop Counter to wrap.
-   */
-  public GiraphHadoopCounter(Counter counter) {
-    this.counter = counter;
-  }
-
-  /**
-   * Get underlying Hadoop Counter we're wrapping.
-   *
-   * @return Hadoop Counter being wrapped.
-   */
-  public Counter getHadoopCounter() {
-    return counter;
-  }
-
-  @Override
-  public int hashCode() {
-    return counter.hashCode();
-  }
-
-  @Override
-  public boolean equals(Object genericRight) {
-    if (genericRight == null) {
-      return false;
-    }
-    if (getClass() != genericRight.getClass()) {
-      return false;
-    }
-    GiraphHadoopCounter right = (GiraphHadoopCounter) genericRight;
-    return Objects.equal(counter, right.counter);
-  }
-
-  /**
-   * Set counter to value. Should be greater than current value.
-   *
-   * @param value long value to set to.
-   */
-  public void setValue(long value) {
-    increment(value - getValue());
-  }
-
-  /**
-   * Increment counter value by 1.
-   */
-  public void increment() {
-    increment(1);
-  }
-
-  /**
-   * Increment counter value.
-   *
-   * @param incr amount to increment by.
-   */
-  public void increment(long incr) {
-    counter.increment(incr);
-  }
-
-  /**
-   * Get counter value
-   *
-   * @return long value of counter
-   */
-  public long getValue() {
-    return counter.getValue();
-  }
-
-  /**
-   * Get counter display name.
-   *
-   * @return String Hadoop counter display name.
-   */
-  public String getDisplayName() {
-    return counter.getDisplayName();
-  }
-
-  /**
-   * Get counter name.
-   *
-   * @return String Hadoop counter name.
-   */
-  public String getName() {
-    return counter.getName();
-  }
-
-  /**
-   * Write to Hadoop output.
-   *
-   * @param out DataOutput to write to.
-   * @throws IOException if something goes wrong.
-   */
-  public void write(DataOutput out) throws IOException {
-    counter.write(out);
-  }
-
-  /**
-   * Read from Hadoop input.
-   *
-   * @param in DataInput to read from.
-   * @throws IOException if something goes wrong reading.
-   */
-  public void readFields(DataInput in) throws IOException {
-    counter.readFields(in);
-  }
-}