diff --git a/core/api/src/main/java/org/onosproject/cluster/Leadership.java b/core/api/src/main/java/org/onosproject/cluster/Leadership.java
index d063a19..a0c5e70 100644
--- a/core/api/src/main/java/org/onosproject/cluster/Leadership.java
+++ b/core/api/src/main/java/org/onosproject/cluster/Leadership.java
@@ -62,6 +62,7 @@
 
     /**
      * The topic for which this leadership applies.
+     *
      * @return leadership topic.
      */
     public String topic() {
@@ -70,6 +71,7 @@
 
     /**
      * The nodeId of leader for this topic.
+     *
      * @return leader node.
      */
     public NodeId leader() {
@@ -108,6 +110,7 @@
      * clock skew, relying on this value for determining event ordering
      * is discouraged. Epoch is more appropriate for determining
      * event ordering.
+     *
      * @return elected time.
      */
     public long electedTime() {
diff --git a/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java b/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java
index 15a198c..1acdc61 100644
--- a/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java
+++ b/core/api/src/main/java/org/onosproject/cluster/LeadershipService.java
@@ -30,6 +30,7 @@
 
     /**
      * Returns the current leader for the topic.
+     *
      * @param path topic
      * @return nodeId of the leader, null if so such topic exists.
      */
@@ -37,6 +38,7 @@
 
     /**
      * Returns the current leadership info for the topic.
+     *
      * @param path topic
      * @return leadership info or null if so such topic exists.
      */
@@ -44,6 +46,7 @@
 
     /**
      * Returns the set of topics owned by the specified node.
+     *
      * @param nodeId node Id.
      * @return set of topics for which this node is the current leader.
      */
@@ -51,30 +54,35 @@
 
     /**
      * Joins the leadership contest.
+     *
      * @param path topic for which this controller node wishes to be a leader.
      */
     void runForLeadership(String path);
 
     /**
      * Withdraws from a leadership contest.
+     *
      * @param path topic for which this controller node no longer wishes to be a leader.
      */
     void withdraw(String path);
 
     /**
      * Returns the current leader board.
+     *
      * @return mapping from topic to leadership info.
      */
     Map<String, Leadership> getLeaderBoard();
 
     /**
      * Returns the candidates for all known topics.
+     *
      * @return A map of topics to lists of NodeIds.
      */
     Map<String, List<NodeId>> getCandidates();
 
     /**
      * Returns the candidates for a given topic.
+     *
      * @param path topic
      * @return A lists of NodeIds, which may be empty.
      */
@@ -82,12 +90,14 @@
 
     /**
      * Registers a event listener to be notified of leadership events.
+     *
      * @param listener listener that will asynchronously notified of leadership events.
      */
     void addListener(LeadershipEventListener listener);
 
     /**
      * Unregisters a event listener for leadership events.
+     *
      * @param listener listener to be removed.
      */
     void removeListener(LeadershipEventListener listener);
