<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-parent</artifactId>
    <version>2.0-M1</version>
  </parent>

  <artifactId>camel-xsddoc</artifactId>
  <name>Camel :: XSD Doc</name>
  <description>Camel XSD Doc</description>

  <build>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>site</id>
            <phase>site</phase>
            <configuration>
              <tasks>
                <echo>Running the XSDDoc task</echo>
                <mkdir dir="${basedir}/target/site/xsddoc"/>

                <!--
                                <path id="cp">
                                  <path refid="maven.plugin.classpath"/>
                                  <path refid="maven.test.classpath"/>
                                  <path refid="maven.compile.classpath"/>
                                  <path refid="maven.dependency.classpath"/>
                                </path>
                -->
                <taskdef name="xsddoc" classname="net.sf.xframe.xsddoc.Task">
                  <classpath refid="maven.plugin.classpath"/>
                </taskdef>

                <xsddoc file="${basedir}/../../components/camel-spring/target/schema/camel-spring.xsd"
                        out="${basedir}/target/site/xsddoc"
                        doctitle="Apache Camel XML Schema Reference"
                        header="&lt;a href='http://activemq.apache.org/camel/'&gt;Apache Camel&lt;/a&gt;"
                        footer="Copyright 2008 (c) the &lt;a href='http://www.apache.org/'&gt;Apache Software Foundation&lt;/a&gt;"
                        verbose="false"/>
                <!--
                        css="${basedir}/../etc/css/stylesheet.css"
                -->
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>xsddoc</groupId>
            <artifactId>maven-xsddoc-plugin</artifactId>
            <version>1.0</version>
          </dependency>
          <dependency>
            <groupId>xsddoc</groupId>
            <artifactId>xsddoc</artifactId>
            <version>1.0</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>

  </build>
</project>
