diff --git a/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java b/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java
index 20dfee0..fcfbb07 100644
--- a/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java
+++ b/apps/foo/src/main/java/org/onlab/onos/foo/TestMessage.java
@@ -32,6 +32,7 @@
     /**
      * Creates a new message with the specified data.
      *
+     * @param length        message length
      * @param requestorTime requester time
      * @param responderTime responder time
      * @param padding       message padding
diff --git a/core/net/src/main/java/org/onlab/onos/net/intent/impl/ConnectivityIntentCompiler.java b/core/net/src/main/java/org/onlab/onos/net/intent/impl/ConnectivityIntentCompiler.java
index cecff78..4cf1830 100644
--- a/core/net/src/main/java/org/onlab/onos/net/intent/impl/ConnectivityIntentCompiler.java
+++ b/core/net/src/main/java/org/onlab/onos/net/intent/impl/ConnectivityIntentCompiler.java
@@ -67,7 +67,8 @@
     /**
      * Validates the specified path against the given constraints.
      *
-     * @param path path to be checked
+     * @param path        path to be checked
+     * @param constraints path constraints
      * @return true if the path passes all constraints
      */
     protected boolean checkPath(Path path, List<Constraint> constraints) {
@@ -82,8 +83,9 @@
     /**
      * Computes a path between two ConnectPoints.
      *
-     * @param one start of the path
-     * @param two end of the path
+     * @param intent intent on which behalf path is being computed
+     * @param one    start of the path
+     * @param two    end of the path
      * @return Path between the two
      * @throws PathNotFoundException if a path cannot be found
      */
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/topology/impl/DefaultTopology.java b/core/store/dist/src/main/java/org/onlab/onos/store/topology/impl/DefaultTopology.java
index 6fc2360e..f2e07f1 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/topology/impl/DefaultTopology.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/topology/impl/DefaultTopology.java
@@ -248,8 +248,9 @@
      * Computes on-demand the set of shortest paths between source and
      * destination devices.
      *
-     * @param src source device
-     * @param dst destination device
+     * @param src    source device
+     * @param dst    destination device
+     * @param weight link weight function
      * @return set of shortest paths
      */
     Set<Path> getPaths(DeviceId src, DeviceId dst, LinkWeight weight) {
diff --git a/docs/pom.xml b/docs/pom.xml
index d2581eb..e65dd5e 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -87,7 +87,13 @@
                         <group>
                             <title>Sample Applications</title>
                             <packages>
-                                org.onlab.onos.tvue:org.onlab.onos.fwd:org.onlab.onos.ifwd:org.onlab.onos.mobility:org.onlab.onos.proxyarp:org.onlab.onos.foo:org.onlab.onos.calendar:org.onlab.onos.sdnip:org.onlab.onos.sdnip.*:org.onlab.onos.optical:org.onlab.onos.optical.*:org.onlab.onos.metrics.*:org.onlab.onos.config
+                                org.onlab.onos.tvue:org.onlab.onos.fwd:org.onlab.onos.ifwd:org.onlab.onos.mobility:org.onlab.onos.proxyarp:org.onlab.onos.foo:org.onlab.onos.calendar:org.onlab.onos.optical.*:org.onlab.onos.sdnip:org.onlab.onos.sdnip.*:org.onlab.onos.config
+                            </packages>
+                        </group>
+                        <group>
+                            <title>Test Instrumentation</title>
+                            <packages>
+                                org.onlab.onos.metrics.*:org.onlab.onos.oecfg
                             </packages>
                         </group>
                     </groups>
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OFChannelHandler.java b/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OFChannelHandler.java
index 8dbff60..ca5f4f5 100644
--- a/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OFChannelHandler.java
+++ b/openflow/ctl/src/main/java/org/onlab/onos/openflow/controller/impl/OFChannelHandler.java
@@ -115,7 +115,7 @@
 
     /**
      * Create a new unconnected OFChannelHandler.
-     * @param controller
+     * @param controller parent controller
      */
     OFChannelHandler(Controller controller) {
         this.controller = controller;
@@ -794,7 +794,7 @@
          * @param m The PortStatus message we received
          * @param doNotify if true switch port changed events will be
          * dispatched
-         * @throws SwitchStateException
+         * @throws SwitchStateException if the switch is not bound to the channel
          *
          */
         protected void handlePortStatusMessage(OFChannelHandler h, OFPortStatus m,
@@ -826,8 +826,8 @@
          *
          * @param h The OFChannelHandler that received the message
          * @param m The message we received.
-         * @throws SwitchStateException
-         * @throws IOException
+         * @throws SwitchStateException if the switch is not bound to the channel
+         * @throws IOException if unable to send message back to the switch
          */
         void processOFMessage(OFChannelHandler h, OFMessage m)
                 throws IOException, SwitchStateException {
