diff --git a/conf/checkstyle/onos_suppressions.xml b/conf/checkstyle/onos_suppressions.xml
new file mode 100644
index 0000000..61341f3
--- /dev/null
+++ b/conf/checkstyle/onos_suppressions.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+
+
+
+
+<suppressions>
+    <!-- Suppressions for ONOS -->
+    <suppress files="com.tinkerpop.*" checks="[_a-zA-Z0-9]*"/>
+    <suppress files="edu.stanford.ramcloud.*" checks="[_a-zA-Z0-9]*"/>
+    <suppress files="net.floodlightcontroller.*" checks="[_a-zA-Z0-9]*"/>
+    <suppress files="org.openflow.*" checks="[_a-zA-Z0-9]*"/>
+
+    <suppress files=".*" checks="FinalParametersCheck"/>
+    <suppress files=".*" checks="MagicNumbersCheck"/>
+    <suppress files=".*" checks="DesignForExtensionCheck"/>
+    <suppress files=".*" checks="TodoCommentCheck"/>
+    <suppress files=".*" checks="AvoidInlineConditionalsCheck"/>
+    <suppress files=".*" checks="OperatorWrapCheck"/>
+</suppressions>
+
diff --git a/conf/checkstyle/sun_checks.xml b/conf/checkstyle/sun_checks.xml
index 51a7f8c..d09a367 100644
--- a/conf/checkstyle/sun_checks.xml
+++ b/conf/checkstyle/sun_checks.xml
@@ -3,6 +3,7 @@
           "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
           "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
 
+
 <!--
 
   Checkstyle configuration that checks the sun coding conventions from:
@@ -38,10 +39,11 @@
 
         <property name="basedir" value="${basedir}"/>
     -->
-
     <!-- Checks that a package-info.java file exists for each package.     -->
     <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
-    <module name="JavadocPackage"/>
+    <!-- ONOS does not currently supply package level Javadoc information
+	 in package-info files -->
+    <!-- <module name="JavadocPackage"/> -->
 
     <!-- Checks whether files end with a new line.                        -->
     <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
@@ -81,7 +83,11 @@
         <!-- See http://checkstyle.sf.net/config_javadoc.html -->
         <module name="JavadocMethod"/>
         <module name="JavadocType"/>
-        <module name="JavadocVariable"/>
+        <module name="JavadocVariable">
+	   <!-- Suppress check for private member Javadocs.
+		Possibly revist fixing these. -->
+	   <property name="scope" value="public"/>
+	</module>
         <module name="JavadocStyle"/>
 
 
@@ -108,7 +114,11 @@
 
         <!-- Checks for Size Violations.                    -->
         <!-- See http://checkstyle.sf.net/config_sizes.html -->
-        <module name="LineLength"/>
+        <module name="LineLength">
+	     <!-- ONOS standard usage is 80 columns, but we allow up
+		  to 120 to not break the build. -->
+	     <property name="max" value="120" />
+        </module>
         <module name="MethodLength"/>
         <module name="ParameterNumber"/>
 
@@ -120,7 +130,8 @@
         <module name="MethodParamPad"/>
         <module name="NoWhitespaceAfter"/>
         <module name="NoWhitespaceBefore"/>
-        <module name="OperatorWrap"/>
+	<!-- Disabled for ONOS.  Default rules specify undesired behavior for the '?' operator -->
+        <!-- <module name="OperatorWrap"/> -->
         <module name="ParenPad"/>
         <module name="TypecastParenPad"/>
         <module name="WhitespaceAfter"/>
@@ -135,7 +146,11 @@
 
         <!-- Checks for blocks. You know, those {}'s         -->
         <!-- See http://checkstyle.sf.net/config_blocks.html -->
-        <module name="AvoidNestedBlocks"/>
+        <module name="AvoidNestedBlocks">
+	    <!-- ONOS alows declarations inside of switch case blocks -->
+            <property name="allowInSwitchCase" value="true"/>
+            <property name="severity" value="warning"/>
+        </module>
         <module name="EmptyBlock"/>
         <module name="LeftCurly"/>
         <module name="NeedBraces"/>
@@ -144,13 +159,16 @@
 
         <!-- Checks for common coding problems               -->
         <!-- See http://checkstyle.sf.net/config_coding.html -->
-        <module name="AvoidInlineConditionals"/>
+	<!-- ONOS allows conditional operators -->
+        <!-- <module name="AvoidInlineConditionals"/> -->
         <module name="EmptyStatement"/>
         <module name="EqualsHashCode"/>
         <module name="HiddenField"/>
         <module name="IllegalInstantiation"/>
         <module name="InnerAssignment"/>
-        <module name="MagicNumber"/>
+	<!-- Many violations of this rule present, revist in a
+	subsequent round of cleanups -->
+        <!-- <module name="MagicNumber"/> -->
         <module name="MissingSwitchDefault"/>
         <module name="RedundantThrows"/>
         <module name="SimplifyBooleanExpression"/>
@@ -158,7 +176,9 @@
 
         <!-- Checks for class design                         -->
         <!-- See http://checkstyle.sf.net/config_design.html -->
-        <module name="DesignForExtension"/>
+	<!-- ONOS produces many warnings of this type.
+	Fixing all of these is outside the scope of the current cleanup. -->
+        <!-- <module name="DesignForExtension"/> -->
         <module name="FinalClass"/>
         <module name="HideUtilityClassConstructor"/>
         <module name="InterfaceIsType"/>
@@ -168,8 +188,11 @@
         <!-- Miscellaneous other checks.                   -->
         <!-- See http://checkstyle.sf.net/config_misc.html -->
         <module name="ArrayTypeStyle"/>
-        <module name="FinalParameters"/>
-        <module name="TodoComment"/>
+	<!--  Many violations of this rule currently, too many to fix
+	in the current cleanup. -->
+        <!-- <module name="FinalParameters"/> -->
+	<!-- ONOS allows TODO markers in checked in source code -->
+        <!-- <module name="TodoComment"/> -->
         <module name="UpperEll"/>
 
     </module>
diff --git a/conf/findbugs/exclude.xml b/conf/findbugs/exclude.xml
index b6a240a..391ae2b 100644
--- a/conf/findbugs/exclude.xml
+++ b/conf/findbugs/exclude.xml
@@ -11,4 +11,16 @@
      <Match>
        <Class name="~com.tinkerpop.blueprints.impls.ramcloud.RamCloudGraphProtos(.*)?" />
      </Match>
+     <Match>
+       <Class name="~.*com\.tinkerpop\..*"/>
+     </Match>
+     <Match>
+       <Class name="~.*edu\.stanford\..*"/>
+     </Match>
+     <Match>
+       <Class name="~.*net\.floodlightcontroller\..*"/>
+     </Match>
+     <Match>
+       <Class name="~.*org\.openflow\..*"/>
+     </Match>
 </FindBugsFilter>
diff --git a/conf/pmd/onos_ruleset.xml b/conf/pmd/onos_ruleset.xml
new file mode 100644
index 0000000..f70b8c0
--- /dev/null
+++ b/conf/pmd/onos_ruleset.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    name="ONOS Rules"
+    xmlns="http://pmd.sf.net/ruleset/1.0.0"
+    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
+    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" >
+
+    <description>ONOS PMD rules</description>
+
+    <rule ref="rulesets/java/unnecessary.xml" >
+        <exclude name="UselessParentheses" />
+    </rule>
+    <rule ref="rulesets/java/basic.xml">
+      <exclude name="EmptyCatchBlock"/>
+    </rule>
+    <rule ref="rulesets/java/basic.xml/EmptyCatchBlock">
+      <properties>
+	<property name="allowCommentedBlocks" value="true"/>
+      </properties>
+    </rule>
+    <rule ref="rulesets/java/unusedcode.xml"/>
+    <rule ref="rulesets/java/imports.xml"/>
+    <rule ref="rulesets/java/optimizations.xml">
+      <exclude name="LocalVariableCouldBeFinal" />
+      <exclude name="MethodArgumentCouldBeFinal" />
+      <exclude name="AvoidInstantiatingObjectsInLoops" />
+    </rule>
+
+    <rule ref="rulesets/java/strings.xml">
+      <exclude name="AvoidDuplicateLiterals" />
+    </rule>
+    <rule ref="rulesets/java/braces.xml"/>
+    <rule ref="rulesets/java/naming.xml">
+      <exclude name="AvoidInstantiatingObjectsInLoops" />
+      <exclude name="ShortMethodName" />
+      <exclude name="ShortVariable" />
+      <exclude name="LongVariable" />
+    </rule>
+    <rule ref="rulesets/java/clone.xml"/>
+    <rule ref="rulesets/java/strictexception.xml"/>
+    <rule ref="rulesets/java/design.xml">
+      <exclude name="GodClass" />
+    </rule>
+    <rule ref="rulesets/java/coupling.xml">
+      <exclude name="LawOfDemeter" />
+      <exclude name="ExcessiveImports" />
+    </rule>
+</ruleset>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index f3cb76a..77cadcc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,7 +46,21 @@
 	<version>${checkstyle-plugin.version}</version>
 	<configuration>
 	  <configLocation>conf/checkstyle/sun_checks.xml</configLocation>
+	  <suppressionsLocation>
+	    ${basedir}/conf/checkstyle/onos_suppressions.xml
+	  </suppressionsLocation>
+	  <failsOnError>false</failsOnError>
 	</configuration>
+	<executions>
+	  <execution>
+	    <id>validate-checkstyle</id>
+	    <phase>compile</phase>
+	    <goals>
+	      <!--  Uncomment this goal to make the build fail on Checkstyle errors -->
+	      <!--<goal>check</goal>-->
+	    </goals>
+	  </execution>
+	</executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -236,6 +250,42 @@
           <effort>${findbugs.effort}</effort>
           <excludeFilterFile>${findbugs.excludeFilterFile}</excludeFilterFile>
         </configuration>
+	<executions>
+	  <execution>
+	    <id>validate-findbugs</id>
+	    <phase>compile</phase>
+	    <goals>
+	      <!--  Uncomment this goal to make the build fail on findbugs errors -->
+	      <!--<goal>check</goal>-->
+	    </goals>
+	  </execution>
+	</executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pmd-plugin</artifactId>
+        <version>3.1</version>
+	<configuration>
+	  <excludes>
+	    <exclude>**/com/tinkerpop/**</exclude>
+	    <exclude>**/edu/stanford/**</exclude>
+	    <exclude>**/net/floodlightcontroller/**</exclude>
+	    <exclude>**/org/openflow/**</exclude>
+	  </excludes>
+	  <rulesets>
+	    <ruleset>${basedir}/conf/pmd/onos_ruleset.xml</ruleset>
+	  </rulesets>
+	</configuration>
+	<executions>
+	  <execution>
+	    <id>validate-pmd</id>
+	    <phase>compile</phase>
+	    <goals>
+	      <!--  Uncomment this goal to make the build fail on pmd errors -->
+	      <!--<goal>check</goal>-->
+	    </goals>
+	  </execution>
+	</executions>
       </plugin>
     </plugins>
     <pluginManagement>
@@ -326,6 +376,9 @@
             - maven-pmd-plugin configuration in pom.xml
           -->
           <excludes>**/RCProtos.java,**/RamCloudGraphProtos.java</excludes>
+	  <suppressionsLocation>
+             ${basedir}/conf/checkstyle/onos_suppressions.xml
+          </suppressionsLocation>
 	</configuration>
 	<reportSets>
 	  <reportSet>
@@ -365,7 +418,14 @@
           <excludes>
             <exclude>**/RCProtos.java</exclude>
             <exclude>**/RamCloudGraphProtos.java</exclude>
+	    <exclude>**/com/tinkerpop/**</exclude>
+	    <exclude>**/edu/stanford/**</exclude>
+	    <exclude>**/net/floodlightcontroller/**</exclude>
+	    <exclude>**/org/openflow/**</exclude>
           </excludes>
+	  <rulesets>
+	    <ruleset>${basedir}/conf/pmd/onos_ruleset.xml</ruleset>
+	  </rulesets>
         </configuration>
       </plugin>
       <plugin>
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphWebRoutable.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphWebRoutable.java
index e245801..af3f1e3 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphWebRoutable.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphWebRoutable.java
@@ -22,7 +22,6 @@
 
 	@Override
 	public String basePath() {
-		// TODO Auto-generated method stub
 		return "/wm/onos";
 	}
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/topology/web/OnosTopologyWebRoutable.java b/src/main/java/net/onrc/onos/ofcontroller/topology/web/OnosTopologyWebRoutable.java
index 90eed9a..987fd69 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/topology/web/OnosTopologyWebRoutable.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/topology/web/OnosTopologyWebRoutable.java
@@ -1,22 +1,22 @@
 package net.onrc.onos.ofcontroller.topology.web;
 
+import net.floodlightcontroller.restserver.RestletRoutable;
+import net.onrc.onos.graph.web.TopoDevicesResource;
+import net.onrc.onos.ofcontroller.networkgraph.web.NetworkGraphLinksResource;
+import net.onrc.onos.ofcontroller.networkgraph.web.NetworkGraphSwitchesResource;
+
 import org.restlet.Context;
 import org.restlet.Restlet;
 import org.restlet.routing.Router;
 
-import net.floodlightcontroller.restserver.RestletRoutable;
-import net.onrc.onos.graph.web.TopoDevicesResource;
-import net.onrc.onos.ofcontroller.core.web.TopoLinksResource;
-import net.onrc.onos.ofcontroller.core.web.TopoSwitchesResource;
-
 public class OnosTopologyWebRoutable implements RestletRoutable {
 
 	@Override
 	public Restlet getRestlet(Context context) {
         Router router = new Router(context);
         router.attach("/route/{src-dpid}/{src-port}/{dst-dpid}/{dst-port}/json", RouteResource.class);
-        router.attach("/switches/{filter}/json", TopoSwitchesResource.class);
-        router.attach("/links/json", TopoLinksResource.class);
+        router.attach("/switches/json", NetworkGraphSwitchesResource.class);
+        router.attach("/links/json", NetworkGraphLinksResource.class);
         router.attach("/devices/json", TopoDevicesResource.class);
 		return router;
 	}
diff --git a/web/get_network_graph.py b/web/get_network_graph.py
index 375e5ff..c4b880d 100755
--- a/web/get_network_graph.py
+++ b/web/get_network_graph.py
@@ -37,8 +37,8 @@
   if DEBUG:
     print '%s' % (txt)
 
-# @app.route("/wm/onos/ng/links/json ")
-# @app.route("/wm/onos/ng/switches/json ")
+# @app.route("/wm/onos/topology/links/json ")
+# @app.route("/wm/onos/topology/switches/json ")
 # @app.route("/wm/onos/ng/shortest-path/<src-dpid>/<dst-dpid>/json ")
 # Sample output:
 
@@ -47,7 +47,7 @@
 
 def get_network_switches():
   try:
-    command = "curl -s \"http://%s:%s/wm/onos/ng/switches/json\"" % (ControllerIP, ControllerPort)
+    command = "curl -s \"http://%s:%s/wm/onos/topology/switches/json\"" % (ControllerIP, ControllerPort)
     debug("get_network_switches %s" % command)
 
     result = os.popen(command).read()
@@ -68,7 +68,7 @@
 
 def get_network_links():
   try:
-    command = "curl -s \"http://%s:%s/wm/onos/ng/links/json\"" % (ControllerIP, ControllerPort)
+    command = "curl -s \"http://%s:%s/wm/onos/topology/links/json\"" % (ControllerIP, ControllerPort)
     debug("get_network_links %s" % command)
 
     result = os.popen(command).read()
diff --git a/web/ons-demo/js/model.js b/web/ons-demo/js/model.js
index bb1aaea..832cd99 100644
--- a/web/ons-demo/js/model.js
+++ b/web/ons-demo/js/model.js
@@ -62,7 +62,7 @@
 
 var urls = {
 	links: '/wm/onos/topology/links/json',
-	switches: '/wm/onos/topology/switches/all/json',
+	switches: '/wm/onos/topology/switches/json',
 	flows: '/wm/onos/flows/getsummary/0/0/json?proxy',
 	activeControllers: '/wm/onos/registry/controllers/json',
 	controllers: 'data/controllers.json',
@@ -82,7 +82,7 @@
 
 var proxyURLs = {
 	links: '/wm/onos/topology/links/json?proxy',
-	switches: '/wm/onos/topology/switches/all/json?proxy',
+	switches: '/wm/onos/topology/switches/json?proxy',
 	flows: '/wm/onos/flows/getsummary/0/0/json?proxy',
 	activeControllers: '/wm/onos/registry/controllers/json?proxy',
 	controllers: 'data/controllers.json',
diff --git a/web/rest-test.sh b/web/rest-test.sh
index c6c870b..0347f41 100755
--- a/web/rest-test.sh
+++ b/web/rest-test.sh
@@ -2,7 +2,7 @@
 rm -f rest.json
 touch rest.json
 
-urls="http://localhost:8080/wm/onos/topology/switches/all/json http://localhost:8080/wm/onos/linkdiscovery/links/json http://localhost:8080/wm/onos/registry/controllers/json http://localhost:8080/wm/onos/registry/switches/json"
+urls="http://localhost:8080/wm/onos/topology/switches/json http://localhost:8080/wm/onos/linkdiscovery/links/json http://localhost:8080/wm/onos/registry/controllers/json http://localhost:8080/wm/onos/registry/switches/json"
 
 for url in $urls; do
   echo "---REST CALL---" >> rest.json
diff --git a/web/restapi2.py b/web/restapi2.py
index 050d8a4..a84140b 100755
--- a/web/restapi2.py
+++ b/web/restapi2.py
@@ -57,7 +57,7 @@
 ONOS_GUI3_HOST="http://gui3.onlab.us:8080"
 ONOS_LOCAL_HOST="http://localhost:8080" ;# for Amazon EC2
 
-@app.route("/wm/onos/topology/switches/all/json")
+@app.route("/wm/onos/topology/switches/json")
 def switches():
   if request.args.get('proxy') == None:
     host = ONOS_LOCAL_HOST
@@ -65,7 +65,7 @@
     host = ONOS_GUI3_HOST
 
   try:
-    command = "curl -s %s/wm/onos/topology/switches/all/json" % (host)
+    command = "curl -s %s/wm/onos/topology/switches/json" % (host)
     print command
     result = os.popen(command).read()
   except:
diff --git a/web/topology_rest.py b/web/topology_rest.py
index 0b0ab01..6cb5726 100755
--- a/web/topology_rest.py
+++ b/web/topology_rest.py
@@ -273,14 +273,14 @@
   return "http://" + host + ":8080"
 
 ## Switch ##
-@app.route("/wm/onos/topology/switches/all/json")
+@app.route("/wm/onos/topology/switches/json")
 def switches():
   if request.args.get('proxy') == None:
     host = pick_host()
   else:
     host = ONOS_GUI3_HOST
 
-  url ="%s/wm/onos/topology/switches/all/json" % (host)
+  url ="%s/wm/onos/topology/switches/json" % (host)
   (code, result) = get_json(url)
 
   resp = Response(result, status=code, mimetype='application/json')
@@ -354,7 +354,7 @@
 @app.route('/topology', methods=['GET'])
 def topology_for_gui():
   try:
-    url="http://%s:%s/wm/onos/topology/switches/all/json" % (RestIP, RestPort)
+    url="http://%s:%s/wm/onos/topology/switches/json" % (RestIP, RestPort)
     (code, result) = get_json(url)
     parsedResult = json.loads(result)
   except:
@@ -436,7 +436,7 @@
 @app.route("/wm/floodlight/topology/toporoute/<v1>/<p1>/<v2>/<p2>/json")
 def shortest_path(v1, p1, v2, p2):
   try:
-    url = "http://%s:%s/wm/onos/topology/switches/all/json" % (RestIP, RestPort)
+    url = "http://%s:%s/wm/onos/topology/switches/json" % (RestIP, RestPort)
     (code, result) = get_json(url)
     parsedResult = json.loads(result)
   except:
@@ -519,7 +519,7 @@
 @app.route("/wm/floodlight/core/controller/switches/json")
 def query_switch():
   try:
-    url = "http://%s:%s/wm/onos/topology/switches/all/json" % (RestIP, RestPort)
+    url = "http://%s:%s/wm/onos/topology/switches/json" % (RestIP, RestPort)
     (code, result) = get_json(url)
     parsedResult = json.loads(result)
   except:
