<!--
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 xmlns:modello="modello" xmlns:ant="jelly:ant" xmlns:maven="jelly:maven" xmlns:j="jelly:core">
  <preGoal name="java:compile">
    <ant:path id="modello.sources" location="target/generated-sources" />
    <maven:addPath id="maven.compile.src.set" refid="modello.sources" />
    <j:set var="sourcesPresent" value="true" />

    <modello:generate model="${maven.modello.model}" type="java" packageWithVersion="false" version="3.0.0" targetDirectory="target/generated-sources" />
    <modello:generate model="${maven.modello.model}" type="xpp3-reader" packageWithVersion="false" version="3.0.0" targetDirectory="target/generated-sources" />
    <modello:generate model="${maven.modello.model}" type="xpp3-writer" packageWithVersion="false" version="3.0.0" targetDirectory="target/generated-sources" />

    <!-- Need the original package as well -->
    <ant:copy tofile="target/maven.mdo.m1" file="${maven.modello.model}" />
    <ant:replace file="target/maven.mdo.m1" token="org.apache.maven.model" value="org.apache.maven.project" />

    <modello:generate model="target/maven.mdo.m1" type="java" packageWithVersion="false" version="3.0.0" targetDirectory="target/generated-sources" />
    <modello:generate model="target/maven.mdo.m1" type="xpp3-reader" packageWithVersion="false" version="3.0.0" targetDirectory="target/generated-sources" />
    <modello:generate model="target/maven.mdo.m1" type="xpp3-writer" packageWithVersion="false" version="3.0.0" targetDirectory="target/generated-sources" />
  </preGoal>
</project>

