<!--
    Copyright (c) 2017 Huawei Technologies Co., Ltd (http://www.huawei.com)
    Huawei Base, Bantian,Longgang District ,Shenzhen ,Guangdong ,China
   
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/
   
    Initial Contributors:
        Seven Ganlu : Developer
   
    New contributors :
 -->


<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>
  <artifactId>org.eclipse.om2m.ipe.dal</artifactId>
  <packaging>eclipse-plugin</packaging>
  <name>org.eclipse.om2m :: ipe dal</name>
  <description>org.eclipse.om2m :: ipe dal</description>
  <parent>
    <groupId>org.eclipse.om2m</groupId>
    <artifactId>org.eclipse.om2m</artifactId>
    <version>1.1.0-SNAPSHOT</version>
  </parent>
</project>