Merge branch 'master' of ssh://gerrit.onlab.us:29418/onos-next
diff --git a/of/drivers/pom.xml b/of/drivers/pom.xml
new file mode 100644
index 0000000..7538f10
--- /dev/null
+++ b/of/drivers/pom.xml
@@ -0,0 +1,36 @@
+<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-of-drivers</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS OpenFlow switch drivers & factory</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+<!--
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ </plugins>
+-->
+ </build>
+
+</project>
diff --git a/of/drivers/src/main/java/org/onlab/onos/of/drivers/DeleteMe.java b/of/drivers/src/main/java/org/onlab/onos/of/drivers/DeleteMe.java
new file mode 100644
index 0000000..6b9c662
--- /dev/null
+++ b/of/drivers/src/main/java/org/onlab/onos/of/drivers/DeleteMe.java
@@ -0,0 +1,7 @@
+package org.onlab.onos.of.drivers;
+
+/**
+ * Created by tom on 9/2/14.
+ */
+public class DeleteMe {
+}
diff --git a/of/pom.xml b/of/pom.xml
index 465440d..5a030f4 100644
--- a/of/pom.xml
+++ b/of/pom.xml
@@ -19,6 +19,7 @@
<modules>
<module>api</module>
<module>ctl</module>
+ <module>drivers</module>
</modules>
<build>
diff --git a/pom.xml b/pom.xml
index ca10782..4f0dd3c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -256,6 +256,32 @@
</plugin>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.2</version>
+ <configuration>
+ <excludes>
+ <exclude>**/datastore/serializers/**</exclude>
+ <exclude>**/edu/stanford/**</exclude>
+ <exclude>**/net/floodlightcontroller/**</exclude>
+ </excludes>
+ <rulesets>
+ <ruleset>onos/pmd.xml</ruleset>
+ </rulesets>
+ </configuration>
+ <executions>
+ <execution>
+ <id>validate-pmd</id>
+ <phase>verify</phase>
+ <goals>
+ <!-- Uncomment this goal to make the build fail on pmd errors -->
+ <!--<goal>check</goal>-->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
@@ -332,6 +358,23 @@
<configLocation>onos/checkstyle.xml</configLocation>
</configuration>
</plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.2</version>
+ <configuration>
+ <excludes>
+ <exclude>**/datastore/serializers/**</exclude>
+ <exclude>**/edu/stanford/**</exclude>
+ <exclude>**/net/floodlightcontroller/**</exclude>
+ </excludes>
+ <rulesets>
+ <ruleset>onos/pmd.xml</ruleset>
+ </rulesets>
+ </configuration>
+ </plugin>
+
</plugins>
</reporting>
diff --git a/tools/build/conf/src/main/resources/onos/pmd.xml b/tools/build/conf/src/main/resources/onos/pmd.xml
new file mode 100644
index 0000000..7c862a3
--- /dev/null
+++ b/tools/build/conf/src/main/resources/onos/pmd.xml
@@ -0,0 +1,62 @@
+<?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">
+ <!-- Explicit public keyword in interface methods is acceptable -->
+ <exclude name="UnusedModifier" />
+ </rule>
+ <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="ShortClassName" />
+ <exclude name="ShortMethodName" />
+ <exclude name="ShortVariable" />
+ <exclude name="LongVariable" />
+ </rule>
+ <rule ref="rulesets/java/naming.xml/VariableNamingConventions">
+ <properties>
+ <!-- ONOS allows the name "log" for static final Loggers -->
+ <property name="violationSuppressRegex" value=".*'log'.*"/>
+ </properties>
+ </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" />
+ <!-- Suppress Removed misconfigured rule warning -->
+ <exclude name="LoosePackageCoupling" />
+ </rule>
+</ruleset>
+