[NEMO] Release v0.3 (#305)

**Major changes:**
- None

**Minor changes to note:**
- Added Javadocs for the release process
- Bump up the version to 0.4-SNAPSHOT

**Tests for the changes:**
- Existing tests work.

**Other comments:**
- None

Closes #305
diff --git a/client/pom.xml b/client/pom.xml
index e869a88..52b8f12 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-project</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
@@ -97,7 +96,7 @@
               </outputFile>
               <transformers>
                 <!-- Required for using beam-hadoop: See https://stackoverflow.com/questions/44365545-->
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"/>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" />
               </transformers>
             </configuration>
           </execution>
diff --git a/common/pom.xml b/common/pom.xml
index 87de322..3c27023 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-project</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/common/src/main/java/org/apache/nemo/common/dag/DAGBuilder.java b/common/src/main/java/org/apache/nemo/common/dag/DAGBuilder.java
index 7ec85b7..85d7ce5 100644
--- a/common/src/main/java/org/apache/nemo/common/dag/DAGBuilder.java
+++ b/common/src/main/java/org/apache/nemo/common/dag/DAGBuilder.java
@@ -185,7 +185,7 @@
    * should be used when there are changes in vertices before / after SplitterVertex.
    *
    * CAUTION: TaskSizeSplitterVertex must only appear in IRDAG.
-   *          {@param originalEdge} and {@param edgeToInsert} should have same source and destination.
+   *          {@code originalEdge} and {@code edgeToInsert} should have same source and destination.
    *
    * Relation to be Erased:   originalEdge - internalEdge
    * Relation to insert:      edgeToInsert - newInternalEdge
@@ -250,8 +250,8 @@
    * without replacing existing mapping relationships.
    * The changes which invokes this method should not be caused by SplitterVertex itself. Therefore, this method
    * should be used when there are changes in vertices before / after SplitterVertex.
-   * Since {@param edgeToInsert} should also have a mapping relationship to originalVertices of SplitterVertex,
-   * we give {@param edgeToReference} together to copy the mapping information. Therefore, these two parameters must
+   * Since {@code edgeToInsert} should also have a mapping relationship to originalVertices of SplitterVertex,
+   * we give {@code edgeToReference} together to copy the mapping information. Therefore, these two parameters must
    * have at least one common source or destination.
    *
    * Relation to reference:   edgeToReference - internalEdge
diff --git a/common/src/main/java/org/apache/nemo/common/ir/edge/executionproperty/SubPartitionSetProperty.java b/common/src/main/java/org/apache/nemo/common/ir/edge/executionproperty/SubPartitionSetProperty.java
index 4395719..655b46e 100644
--- a/common/src/main/java/org/apache/nemo/common/ir/edge/executionproperty/SubPartitionSetProperty.java
+++ b/common/src/main/java/org/apache/nemo/common/ir/edge/executionproperty/SubPartitionSetProperty.java
@@ -25,7 +25,7 @@
 import java.util.ArrayList;
 
 /**
- * This property decides the hash partition set of sampled & optimized tasks in Dynamic Task Sizing Policy.
+ * This property decides the hash partition set of sampled and optimized tasks in Dynamic Task Sizing Policy.
  * <p>
  * Adopting this property requires changing other properties as well.
  * Such execution properties include:
diff --git a/common/src/main/java/org/apache/nemo/common/ir/vertex/LoopVertex.java b/common/src/main/java/org/apache/nemo/common/ir/vertex/LoopVertex.java
index 011dcc1..e68fc77 100644
--- a/common/src/main/java/org/apache/nemo/common/ir/vertex/LoopVertex.java
+++ b/common/src/main/java/org/apache/nemo/common/ir/vertex/LoopVertex.java
@@ -164,6 +164,7 @@
 
   /**
    * Getter method for edgeWithLoopToEdgeWithInternalVertex.
+   * @return the map of edge with loop to the edge with the internal vertex.
    */
   public Map<IREdge, IREdge> getEdgeWithLoopToEdgeWithInternalVertex() {
     return this.edgeWithLoopToEdgeWithInternalVertex;
@@ -171,6 +172,7 @@
 
   /**
    * Getter method for edgeWithInternalVertexToEdgeWithLoop.
+   * @return the map of edge with internal vertex to the edge with the loop.
    */
   public Map<IREdge, IREdge> getEdgeWithInternalVertexToEdgeWithLoop() {
     return this.edgeWithInternalVertexToEdgeWithLoop;
diff --git a/common/src/main/java/org/apache/nemo/common/test/ExampleTestArgs.java b/common/src/main/java/org/apache/nemo/common/test/ExampleTestArgs.java
index 9e0162f..6c74a5e 100644
--- a/common/src/main/java/org/apache/nemo/common/test/ExampleTestArgs.java
+++ b/common/src/main/java/org/apache/nemo/common/test/ExampleTestArgs.java
@@ -22,7 +22,7 @@
  * Test Arguments for Examples.
  */
 public final class ExampleTestArgs {
-  public static final int TIMEOUT = 240000;
+  public static final int TIMEOUT = 300000;
   private static String fileBasePath;
 
   /**
diff --git a/compiler/backend/pom.xml b/compiler/backend/pom.xml
index ef912d8..e461d4e 100644
--- a/compiler/backend/pom.xml
+++ b/compiler/backend/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-compiler</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/compiler/frontend/beam/pom.xml b/compiler/frontend/beam/pom.xml
index 1c25117..b5501d1 100644
--- a/compiler/frontend/beam/pom.xml
+++ b/compiler/frontend/beam/pom.xml
@@ -15,14 +15,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-compiler</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../../</relativePath>
   </parent>
 
diff --git a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/AbstractDoFnTransform.java b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/AbstractDoFnTransform.java
index 79b31c6..59a3b1b 100644
--- a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/AbstractDoFnTransform.java
+++ b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/AbstractDoFnTransform.java
@@ -98,6 +98,8 @@
    * @param sideInputs           side inputs
    * @param options              pipeline options
    * @param displayData          display data.
+   * @param doFnSchemaInformation doFn schema information.
+   * @param sideInputMapping      side input mapping.
    */
   public AbstractDoFnTransform(final DoFn<InterT, OutputT> doFn,
                                final Coder<InputT> inputCoder,
diff --git a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/DoFnTransform.java b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/DoFnTransform.java
index c6b8e3b..1d29402 100644
--- a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/DoFnTransform.java
+++ b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/DoFnTransform.java
@@ -56,6 +56,8 @@
    * @param windowingStrategy    windowing strategy
    * @param options              pipeline options
    * @param displayData          display data.
+   * @param doFnSchemaInformation doFn schema information.
+   * @param sideInputMapping      side input mapping.
    */
   public DoFnTransform(final DoFn<InputT, OutputT> doFn,
                        final Coder<InputT> inputCoder,
diff --git a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/GBKTransform.java b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/GBKTransform.java
index 1bf6cb8..4aa366f 100644
--- a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/GBKTransform.java
+++ b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/GBKTransform.java
@@ -142,7 +142,7 @@
   }
 
   /**
-   * Trigger timers that need to be fired at {@param watermark} and emit output watermark.
+   * Trigger timers that need to be fired at {@code watermark} and emit output watermark.
    * @param watermark watermark
    */
   @Override
@@ -263,7 +263,11 @@
     }
   }
 
-  /** Accessor for isPartialCombining. */
+  /**
+   * Accessor for isPartialCombining.
+   *
+   * @return whether it is partial combining.
+   */
   public boolean getIsPartialCombining() {
     return isPartialCombining;
   }
@@ -277,7 +281,7 @@
       this.oc = oc;
     }
 
-    /** Emit output. If {@param output} is emitted on-time, save its timestamp in the output watermark map. */
+    /** Emit output. If {@code output} is emitted on-time, save its timestamp in the output watermark map. */
     @Override
     public final void emit(final WindowedValue<KV<K, OutputT>> output) {
       // The watermark advances only in ON_TIME
@@ -301,7 +305,7 @@
       oc.emitWatermark(watermark);
     }
 
-    /** Emit output value to {@param dstVertexId}. */
+    /** Emit output value to {@code dstVertexId}. */
     @Override
     public final <T> void emit(final String dstVertexId, final T output) {
       oc.emit(dstVertexId, output);
diff --git a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/InMemoryTimerInternalsFactory.java b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/InMemoryTimerInternalsFactory.java
index 0072463..ed1bb1e 100644
--- a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/InMemoryTimerInternalsFactory.java
+++ b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/InMemoryTimerInternalsFactory.java
@@ -50,7 +50,13 @@
     }
   }
 
-  /** Remove the next eligible timer in {@param timeDomain}. */
+  /**
+   * Remove the next eligible timer in {@code timeDomain}.
+   *
+   * @param timerInternal the timer internals.
+   * @param timeDomain the time domain.
+   * @return the timer data.
+   */
   public TimerInternals.TimerData pollTimer(final InMemoryTimerInternals timerInternal, final TimeDomain timeDomain) {
     switch (timeDomain) {
       case EVENT_TIME :
@@ -64,12 +70,21 @@
     }
   }
 
-  /** Accessor for timerInternalsMap. */
+  /**
+   * Accessor for timerInternalsMap.
+   *
+   * @return the timer internals map.
+   */
   public Map<K, InMemoryTimerInternals> getTimerInternalsMap() {
     return timerInternalsMap;
   }
 
-  /** Helper method to check if {@param timerInternals} doesn't have any timers left. */
+  /**
+   * Helper method to check if {@code timerInternals} doesn't have any timers left.
+   *
+   * @param timerInternal the in-memory timer internals.
+   * @return whether it is empty or not.
+   */
   public boolean isEmpty(final InMemoryTimerInternals timerInternal) {
     for (final TimeDomain domain : TimeDomain.values()) {
       if (timerInternal.getNextTimer(domain) != null) {
diff --git a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/PushBackDoFnTransform.java b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/PushBackDoFnTransform.java
index 15a0873..7df9bff 100644
--- a/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/PushBackDoFnTransform.java
+++ b/compiler/frontend/beam/src/main/java/org/apache/nemo/compiler/frontend/beam/transform/PushBackDoFnTransform.java
@@ -60,6 +60,8 @@
    * @param sideInputs           side inputs
    * @param options              pipeline options
    * @param displayData          display data.
+   * @param doFnSchemaInformation DoFn schema information.
+   * @param sideInputMapping      side input mapping.
    */
   public PushBackDoFnTransform(final DoFn<InputT, OutputT> doFn,
                                final Coder<InputT> inputCoder,
diff --git a/compiler/frontend/spark/pom.xml b/compiler/frontend/spark/pom.xml
index 8938b53..f135fd8 100644
--- a/compiler/frontend/spark/pom.xml
+++ b/compiler/frontend/spark/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-compiler</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../../</relativePath>
   </parent>
 
diff --git a/compiler/optimizer/pom.xml b/compiler/optimizer/pom.xml
index c6dbb79..49a546d 100644
--- a/compiler/optimizer/pom.xml
+++ b/compiler/optimizer/pom.xml
@@ -17,8 +17,7 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
     <build>
       <plugins>
@@ -36,7 +35,7 @@
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-compiler</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/examples/MapReduceDisaggregationOptimization.java b/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/examples/MapReduceDisaggregationOptimization.java
index 14220d7..48008d1 100644
--- a/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/examples/MapReduceDisaggregationOptimization.java
+++ b/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/examples/MapReduceDisaggregationOptimization.java
@@ -47,7 +47,6 @@
    * Main function of the example MR program.
    *
    * @param args arguments.
-   * @throws Exception Exceptions on the way.
    */
   public static void main(final String[] args) {
     final IRVertex source = new EmptyComponents.EmptySourceVertex<>("Source");
diff --git a/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/pass/compiletime/reshaping/SamplingTaskSizingPass.java b/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/pass/compiletime/reshaping/SamplingTaskSizingPass.java
index c35941b..dd5fe1f 100644
--- a/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/pass/compiletime/reshaping/SamplingTaskSizingPass.java
+++ b/compiler/optimizer/src/main/java/org/apache/nemo/compiler/optimizer/pass/compiletime/reshaping/SamplingTaskSizingPass.java
@@ -36,17 +36,17 @@
 
 /**
  * Compiler pass for dynamic task size optimization. Happens only when the edge property is SHUFFLE.
- * If (size of given job) >= 1GB: enable dynamic task sizing optimization.
+ * If (size of given job) is greater than or equal to 1GB: enable dynamic task sizing optimization.
  * else:                          break.
  *
  *
- * @Attributes
+ * With attributes
  * PARTITIONER_PROPERTY_FOR_SMALL_JOB:  PartitionerProperty for jobs in range of [1GB, 10GB) size.
  * PARTITIONER_PROPERTY_FOR_MEDIUM_JOB: PartitionerProperty for jobs in range of [10GB, 100GB) size.
  * PARTITIONER_PROPERTY_FOR_BIG_JOB:    PartitionerProperty for jobs in range of [100GB, - ) size(No upper limit).
  *
  * source stage - shuffle edge - current stage - next stage
- * -> source stage - [curr stage - signal vertex] - next stage
+ * - source stage - [curr stage - signal vertex] - next stage
  * where [] is a splitter vertex
  */
 @Annotates({EnableDynamicTaskSizingProperty.class, PartitionerProperty.class, SubPartitionSetProperty.class,
diff --git a/compiler/pom.xml b/compiler/pom.xml
index aaf93cd..1d6b396 100644
--- a/compiler/pom.xml
+++ b/compiler/pom.xml
@@ -17,13 +17,12 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
   <parent>
     <artifactId>nemo-project</artifactId>
     <groupId>org.apache.nemo</groupId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/compiler/test/pom.xml b/compiler/test/pom.xml
index 12f6569..54ef45a 100644
--- a/compiler/test/pom.xml
+++ b/compiler/test/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-compiler</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/conf/pom.xml b/conf/pom.xml
index e25be3c..fc7ada1 100644
--- a/conf/pom.xml
+++ b/conf/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-project</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/examples/beam/pom.xml b/examples/beam/pom.xml
index 4cca999..65651a3 100644
--- a/examples/beam/pom.xml
+++ b/examples/beam/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-examples</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
@@ -119,7 +118,7 @@
               <transformers>
                 <!-- Required for using beam-hadoop: See https://stackoverflow.com/questions/44365545
                 -->
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"/>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" />
               </transformers>
             </configuration>
           </execution>
diff --git a/examples/beam/src/main/java/org/apache/nemo/examples/beam/AlternatingLeastSquare.java b/examples/beam/src/main/java/org/apache/nemo/examples/beam/AlternatingLeastSquare.java
index d87d546..3d05ce2 100644
--- a/examples/beam/src/main/java/org/apache/nemo/examples/beam/AlternatingLeastSquare.java
+++ b/examples/beam/src/main/java/org/apache/nemo/examples/beam/AlternatingLeastSquare.java
@@ -326,7 +326,6 @@
      * ProcessElement method for BEAM.
      *
      * @param c ProcessContext.
-     * @throws Exception Exception on the way.
      */
     @ProcessElement
     public void processElement(final ProcessContext c) {
@@ -354,7 +353,6 @@
    * Main function for the ALS BEAM program.
    *
    * @param args arguments.
-   * @throws ClassNotFoundException exception.
    */
   public static void main(final String[] args) {
     final Long start = System.currentTimeMillis();
diff --git a/examples/beam/src/main/java/org/apache/nemo/examples/beam/BeamWordCount.java b/examples/beam/src/main/java/org/apache/nemo/examples/beam/BeamWordCount.java
index 2d2021a..fe80521 100644
--- a/examples/beam/src/main/java/org/apache/nemo/examples/beam/BeamWordCount.java
+++ b/examples/beam/src/main/java/org/apache/nemo/examples/beam/BeamWordCount.java
@@ -153,6 +153,7 @@
     /**
      * By default, this example reads from a public dataset containing the text of King Lear. Set
      * this option to choose a different input file or glob.
+     * @return the input file path.
      */
     @Description("Path of the file to read from")
     @Default.String("gs://apache-beam-samples/shakespeare/kinglear.txt")
@@ -160,7 +161,10 @@
 
     void setInputFile(String value);
 
-    /** Set this required option to specify where to write the output. */
+    /**
+     * Set this required option to specify where to write the output.
+     * @return the output path.
+     */
     @Description("Path of the file to write to")
     @Required
     String getOutput();
diff --git a/examples/nexmark/pom.xml b/examples/nexmark/pom.xml
index 7ea5cce..9d6557b 100644
--- a/examples/nexmark/pom.xml
+++ b/examples/nexmark/pom.xml
@@ -17,13 +17,11 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <artifactId>nemo-examples</artifactId>
     <groupId>org.apache.nemo</groupId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -64,7 +62,7 @@
               <transformers>
                 <!-- Required for using beam-hadoop: See https://stackoverflow.com/questions/44365545
                 -->
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"/>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" />
               </transformers>
             </configuration>
           </execution>
diff --git a/examples/pom.xml b/examples/pom.xml
index 8c1bb46..5f58afc 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -17,12 +17,11 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <artifactId>nemo-project</artifactId>
     <groupId>org.apache.nemo</groupId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/examples/spark/pom.xml b/examples/spark/pom.xml
index 7cf23f0..7a7878c 100644
--- a/examples/spark/pom.xml
+++ b/examples/spark/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <artifactId>nemo-examples</artifactId>
     <groupId>org.apache.nemo</groupId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
@@ -93,7 +92,7 @@
               <transformers>
                 <!-- Required for using beam-hadoop: See https://stackoverflow.com/questions/44365545
                 -->
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"/>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" />
               </transformers>
               <filters>
                 <filter>
diff --git a/pom.xml b/pom.xml
index fc60b34..834ea5f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,19 +17,18 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
-    <version>21</version>
+    <version>23</version>
   </parent>
 
   <groupId>org.apache.nemo</groupId>
   <artifactId>nemo-project</artifactId>
-  <version>0.3-SNAPSHOT</version>
+  <version>0.4-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>Nemo Project</name>
 
@@ -283,9 +282,10 @@
         <artifactId>maven-javadoc-plugin</artifactId>
         <version>${maven.javadoc.version}</version>
         <configuration>
-          <excludePackageNames>*.org.apache.nemo.runtime.common.comm</excludePackageNames>
+          <excludePackageNames>*.org.apache.nemo.runtime.common.comm:*.compiler.frontend.spark.*</excludePackageNames>
           <outputDirectory>docs/apidocs</outputDirectory>
           <reportOutputDirectory>docs/apidocs</reportOutputDirectory>
+          <detectJavaApiLink>false</detectJavaApiLink>
         </configuration>
         <executions>
           <execution>
diff --git a/runtime/common/pom.xml b/runtime/common/pom.xml
index c4ebf4d..75cfa14 100644
--- a/runtime/common/pom.xml
+++ b/runtime/common/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-runtime</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/runtime/driver/pom.xml b/runtime/driver/pom.xml
index db8fa1d..51c8f94 100644
--- a/runtime/driver/pom.xml
+++ b/runtime/driver/pom.xml
@@ -17,12 +17,11 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-runtime</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/runtime/executor/pom.xml b/runtime/executor/pom.xml
index bec9c04..2520a89 100644
--- a/runtime/executor/pom.xml
+++ b/runtime/executor/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-runtime</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
@@ -62,7 +61,7 @@
     <dependency>
       <groupId>org.apache.nemo</groupId>
       <artifactId>nemo-runtime-master</artifactId>
-      <version>0.3-SNAPSHOT</version>
+      <version>0.4-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/LocalInputContext.java b/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/LocalInputContext.java
index 70c55e1..570f0e6 100644
--- a/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/LocalInputContext.java
+++ b/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/LocalInputContext.java
@@ -32,7 +32,7 @@
     private boolean outputContextClosed = false;
 
     /**
-     * Creates a new local input context and connect it to {@param localOutputContext}.
+     * Creates a new local input context and connect it to {@code localOutputContext}.
      * @param localOutputContext the local output context to which this local input context is connected
      */
     public LocalInputContext(final LocalOutputContext localOutputContext) {
diff --git a/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/TransferOutputStream.java b/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/TransferOutputStream.java
index d7dd978..dc5b9c2 100644
--- a/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/TransferOutputStream.java
+++ b/runtime/executor/src/main/java/org/apache/nemo/runtime/executor/transfer/TransferOutputStream.java
@@ -28,7 +28,7 @@
   /**
    * Write an element into the output stream.
    * @param element element to be sent
-   * @param serializer serializer of {@param element}
+   * @param serializer serializer of {@code element}
    */
   void writeElement(Object element, Serializer serializer);
 
diff --git a/runtime/master/pom.xml b/runtime/master/pom.xml
index 82c1ce4..5740e56 100644
--- a/runtime/master/pom.xml
+++ b/runtime/master/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-runtime</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
 
diff --git a/runtime/pom.xml b/runtime/pom.xml
index 063f1d0..71a9b45 100644
--- a/runtime/pom.xml
+++ b/runtime/pom.xml
@@ -17,12 +17,11 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <artifactId>nemo-project</artifactId>
     <groupId>org.apache.nemo</groupId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/runtime/test/pom.xml b/runtime/test/pom.xml
index 6fd24bf..91342f3 100644
--- a/runtime/test/pom.xml
+++ b/runtime/test/pom.xml
@@ -17,14 +17,13 @@
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
     <groupId>org.apache.nemo</groupId>
     <artifactId>nemo-runtime</artifactId>
-    <version>0.3-SNAPSHOT</version>
+    <version>0.4-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>