<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2014 Open Networking Laboratory
  ~
  ~ 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <prerequisites>
        <maven>3.0.0</maven>
    </prerequisites>

    <parent>
        <groupId>org.onosproject</groupId>
        <artifactId>onos</artifactId>
        <version>1.2.0-rc1</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>onos-docs</artifactId>
    <packaging>pom</packaging>

    <description>ONOS Java API documentation</description>

    <modules>
        <module>..</module>
    </modules>

    <url>http://onosproject.org/</url>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.1</version>
                <configuration>
                    <show>package</show>
                    <docfilessubdirs>true</docfilessubdirs>
                    <doctitle>ONOS Java API (1.2.0-rc1)</doctitle>
                    <groups>
                        <group>
                            <title>Network Model &amp; Services</title>
                            <packages>
                                org.onosproject:org.onosproject.*:org.onosproject.rest
                            </packages>
                        </group>
                        <group>
                            <title>Incubator for Network Model &amp; Services</title>
                            <packages>
                                org.onosproject.exp:org.onosproject.incubator.*
                            </packages>
                        </group>
                        <group>
                            <title>Core Subsystems</title>
                            <packages>
                                org.onosproject.impl:org.onosproject.core.impl:org.onosproject.cluster.impl:org.onosproject.net.device.impl:org.onosproject.net.link.impl:org.onosproject.net.host.impl:org.onosproject.net.topology.impl:org.onosproject.net.packet.impl:org.onosproject.net.flow.impl:org.onosproject.net.*.impl:org.onosproject.event.impl:org.onosproject.net.intent.impl*:org.onosproject.net.proxyarp.impl:org.onosproject.mastership.impl:org.onosproject.net.resource.impl:org.onosproject.json:org.onosproject.json.*:org.onosproject.provider.host.impl:org.onosproject.provider.lldp.impl:org.onosproject.net.statistic.impl:org.onosproject.app.impl:org.onosproject.common.*:org.onosproject.net.group.impl:org.onosproject.cfg.impl:org.onosproject.net.driver.impl:org.onosproject.net.flowobjective.impl:org.onosproject.net.flowext.impl:org.onosproject.net.tunnel.impl:org.onosproject.security*
                            </packages>
                        </group>
                        <group>
                            <title>Distributed Stores</title>
                            <packages>
                                org.onosproject.store.*
                            </packages>
                        </group>
                        <group>
                            <title>Incubator for Core Subsystems &amp; Distributed Stores</title>
                            <packages>
                                org.onosproject.incubator.net.impl:org.onosproject.incubator.store.impl:org.onosproject.incubator.net.resource.label.impl:org.onosproject.incubator.store.resource.impl:org.onosproject.incubator.net.tunnel.impl:org.onosproject.incubator.store.tunnel.impl
                            </packages>
                        </group>
                        <group>
                            <title>OpenFlow Providers &amp; Controller</title>
                            <packages>
                                org.onosproject.provider.of.*:org.onosproject.openflow.*
                            </packages>
                        </group>
                        <group>
                            <title>NetConf Providers</title>
                            <packages>
                                org.onosproject.provider.netconf:org.onosproject.provider.netconf*
                            </packages>
                        </group>
                        <group>
                            <title>Null Providers</title>
                            <packages>
                                org.onosproject.provider.nil:org.onosproject.provider.nil.*
                            </packages>
                        </group>
                        <group>
                            <title>Built-in Device Drivers</title>
                            <packages>
                                org.onosproject.driver:org.onosproject.driver.*
                            </packages>
                        </group>
                        <group>
                            <title>Utilities</title>
                            <packages>
                                org.onlab.*
                            </packages>
                        </group>
                        <group>
                            <title>GUI, REST &amp; Command-Line</title>
                            <packages>
                                org.onosproject.ui.impl*:org.onosproject.rest*:org.onosproject.cli:org.onosproject.rest.*:org.onosproject.cli.*:org.onosproject.codec.impl
                            </packages>
                        </group>
                        <group>
                            <title>Sample Applications</title>
                            <packages>
                                org.onosproject.tvue:org.onosproject.fwd:org.onosproject.ifwd:org.onosproject.mobility:org.onosproject.proxyarp:org.onosproject.foo:org.onosproject.calendar:org.onosproject.optical:org.onosproject.optical.*:org.onosproject.sdnip:org.onosproject.sdnip.*:org.onosproject.config:org.onosproject.routing:org.onosproject.routing*:org.onosproject.bgprouter:org.onosproject.intentperf:org.onosproject.segmentrouting:org.onosproject.segmentrouting.*:org.onosproject.reactive.routing*:org.onosproject.messagingperf:org.onosproject.virtualbng:org.onosproject.demo*:org.onosproject.election*:org.onosproject.distributedprimitives*:org.onosproject.cordfabric*:org.onosproject.xosintegration*
                            </packages>
                        </group>
                        <group>
                            <title>Test Instrumentation</title>
                            <packages>
                                org.onosproject.metrics.*
                            </packages>
                        </group>
                    </groups>
                    <excludePackageNames>org.onlab.thirdparty:org.onosproject.oecfg:org.onosproject.maven:org.onlab.jdvue*</excludePackageNames>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
