Isolate IETF models in OpenConfig to own bundle
Change-Id: I15fff358582dd7b361d015c2d30c981a703fd1be
diff --git a/models/common/src/main/yang/TODO b/models/common/src/main/yang/TODO
new file mode 100644
index 0000000..6ab16df
--- /dev/null
+++ b/models/common/src/main/yang/TODO
@@ -0,0 +1 @@
+move out standard compliant IETF yangs to IETF bundle
diff --git a/models/ietf/BUCK b/models/ietf/BUCK
new file mode 100644
index 0000000..6cc9d15
--- /dev/null
+++ b/models/ietf/BUCK
@@ -0,0 +1,7 @@
+
+yang_model (
+ app_name = 'org.onosproject.models.ietf',
+ title = 'IETF YANG Models',
+ custom_registrator = False,
+ deps = [ '//lib:CORE_DEPS' ]
+)
diff --git a/models/ietf/pom.xml b/models/ietf/pom.xml
new file mode 100644
index 0000000..db77247
--- /dev/null
+++ b/models/ietf/pom.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2018-present Open Networking Foundation
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the 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">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-models</artifactId>
+ <version>1.14.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-models-ietf</artifactId>
+ <packaging>bundle</packaging>
+
+ <properties>
+ <onos.app.name>org.onosproject.models.ietf</onos.app.name>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-yang-model</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-apps-yang</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions combine.children="append">
+ <Include-Resource>yang/resources/YangMetaData.ser=target/classes/yang/resources/YangMetaData.ser</Include-Resource>
+ </instructions>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-yang-compiler-maven-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-maven-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>${project.build.directory}/generated-sources</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>3.0.0</version>
+ <executions>
+ <execution>
+ <id>onos-yang-plugin-workaround</id>
+ <!-- yang plugin cannot handle non-clean compilation -->
+ <phase>initialize</phase>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ <configuration>
+ <excludeDefaultDirectories>true</excludeDefaultDirectories>
+ <filesets>
+ <fileset>
+ <directory>target/generated-sources</directory>
+ </fileset>
+ </filesets>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- FIXME: YANG tool generates problematic code -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgs>
+ <arg>-XepDisableAllChecks</arg>
+ <arg>-Xep:BetaApi:OFF</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.apache.maven.plugins
+ </groupId>
+ <artifactId>
+ maven-clean-plugin
+ </artifactId>
+ <versionRange>
+ [3.0.0,)
+ </versionRange>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+</project>
diff --git a/models/openconfig/src/main/yang/comm/ietf-inet-types@2013-07-15.yang b/models/ietf/src/main/yang/ietf-inet-types@2013-07-15.yang
similarity index 100%
rename from models/openconfig/src/main/yang/comm/ietf-inet-types@2013-07-15.yang
rename to models/ietf/src/main/yang/ietf-inet-types@2013-07-15.yang
diff --git a/models/openconfig/src/main/yang/comm/ietf-interfaces@2014-05-08.yang b/models/ietf/src/main/yang/ietf-interfaces@2014-05-08.yang
similarity index 100%
rename from models/openconfig/src/main/yang/comm/ietf-interfaces@2014-05-08.yang
rename to models/ietf/src/main/yang/ietf-interfaces@2014-05-08.yang
diff --git a/models/openconfig/src/main/yang/comm/ietf-yang-types@2013-07-15.yang b/models/ietf/src/main/yang/ietf-yang-types@2013-07-15.yang
similarity index 100%
rename from models/openconfig/src/main/yang/comm/ietf-yang-types@2013-07-15.yang
rename to models/ietf/src/main/yang/ietf-yang-types@2013-07-15.yang
diff --git a/models/openconfig/BUCK b/models/openconfig/BUCK
index 60f7572..5905528 100644
--- a/models/openconfig/BUCK
+++ b/models/openconfig/BUCK
@@ -1,5 +1,10 @@
COMPILE_DEPS = [
'//lib:CORE_DEPS',
+ '//models/ietf:onos-models-ietf',
+]
+
+APPS = [
+ 'org.onosproject.models.ietf',
]
yang_model(
@@ -7,4 +12,5 @@
title = 'OpenConfig YANG Models',
custom_registrator = True,
deps = COMPILE_DEPS,
+ required_apps = APPS,
)
diff --git a/models/openconfig/pom.xml b/models/openconfig/pom.xml
index d81422b..cfa6354 100644
--- a/models/openconfig/pom.xml
+++ b/models/openconfig/pom.xml
@@ -47,6 +47,12 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-models-ietf</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
</dependencies>
<build>
diff --git a/models/pom.xml b/models/pom.xml
index f8d7535..5b56d95 100644
--- a/models/pom.xml
+++ b/models/pom.xml
@@ -30,6 +30,7 @@
<description>ONOS YANG models</description>
<modules>
+ <module>ietf</module>
<module>common</module>
<module>microsemi</module>
<module>openconfig</module>
diff --git a/modules.defs b/modules.defs
index bd785ba..37cb04b 100644
--- a/modules.defs
+++ b/modules.defs
@@ -261,6 +261,7 @@
]
MODELS = [
+ '//models/ietf:onos-models-ietf-oar',
'//models/common:onos-models-common-oar',
'//models/huawei:onos-models-huawei-oar',
'//models/openconfig:onos-models-openconfig-oar',