<?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">
	<parent>
		<artifactId>onos-drivers-general</artifactId>
		<groupId>org.onosproject</groupId>
		<version>1.14.0-b1</version>
		<relativePath>../../pom.xml</relativePath>
	</parent>
	<modelVersion>4.0.0</modelVersion>

	<artifactId>onos-drivers-ciena-c5170</artifactId>
	<packaging>bundle</packaging>

	<description>Ciena 5170 device drivers</description>

	<properties>
		<onos.app.name>org.onosproject.drivers.ciena.c5170</onos.app.name>
		<onos.app.origin>ONOS Community</onos.app.origin>
		<onos.app.title>Ciena 5170 Device Drivers</onos.app.title>
		<onos.app.category>Drivers</onos.app.category>
		<onos.app.url>http://onosproject.org</onos.app.url>
		<onos.app.requires>
			org.onosproject.netconf
		</onos.app.requires>
		<jinjava.version>2.4.0</jinjava.version>
		<jsoup.version>1.8.1</jsoup.version>
		<juel.version>2.2.7</juel.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.onosproject</groupId>
			<artifactId>onos-drivers-utilities</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.onosproject</groupId>
			<artifactId>onos-protocols-netconf-api</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.onosproject</groupId>
			<artifactId>onos-drivers-netconf</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.onosproject</groupId>
			<artifactId>onos-drivers-netconf</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
			<classifier>tests</classifier>
		</dependency>
	</dependencies>

</project>
