<?xml version="1.0"?>
<!--
/*
 * Copyright 2001-2004 The Apache Software 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>
  <extend>../../../project.xml</extend>
  <id>axis2-xml-om</id>
  <name>OM Framework</name>
  <package>axis2.xml.om.*</package>
  <description>OM project.</description>
  <shortDescription>OM project</shortDescription>

  <dependencies>
    <!--dependency>
        <groupId>axis2</groupId>
        <artifactId>libaxis2-xml-guththila-nar</artifactId>
        <version>0.0</version>
        <type>nar</type>
        </dependency-->
  </dependencies>

</project>
