git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@526982 13f79535-47bb-0310-9956-ffa450edef68
238 lines
10 KiB
XML
238 lines
10 KiB
XML
<?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
|
|
xmlns:j="jelly:core"
|
|
xmlns:define="jelly:define"
|
|
xmlns:maven="jelly:maven"
|
|
xmlns:x="jelly:xml"
|
|
xmlns:util="jelly:util"
|
|
xmlns:assert="assert"
|
|
xmlns:ant="jelly:ant"
|
|
xmlns:doc="doc"
|
|
xmlns:modello="modello">
|
|
|
|
<define:taglib uri="modello">
|
|
<define:jellybean name="generate" method="generate" className="org.apache.maven.plugins.modello.ModelloCliWrapper" />
|
|
</define:taglib>
|
|
|
|
<goal name="modello" prereqs="modello:modello" />
|
|
|
|
<goal name="modello:modello" description="Code generation based on the property maven.modello.plugins">
|
|
<maven:paramCheck value="${maven.modello.plugins}" fail="true">The property "maven.modello.plugins" must be defined.</maven:paramCheck>
|
|
<j:set var="modelloPlugins" value="${maven.modello.plugins}"/>
|
|
<j:forEach var="modelloPlugin" items="${modelloPlugins}">
|
|
<attainGoal name="modello:${modelloPlugin}"/>
|
|
</j:forEach>
|
|
</goal>
|
|
|
|
<!-- INTERNAL - Checks that required settings are set -->
|
|
<goal name="modello:check-settings">
|
|
<maven:paramCheck value="${maven.modello.model}" fail="true">The property "maven.modello.model" must be defined.</maven:paramCheck>
|
|
<assert:assertFileExists file="${maven.modello.model}"/>
|
|
<util:file var="modelFile" name="${maven.modello.model}"/>
|
|
<x:parse var="modelDoc" xml="${modelFile}"/>
|
|
<x:set var="modelId" select="string($modelDoc/model/id)"/>
|
|
<j:set var="maven_modello_model_id" value="${modelId}" scope="parent"/>
|
|
<maven:paramCheck value="${maven.modello.packageWithVersion}" fail="true">The property "maven.modello.packageWithVersion" must be defined.</maven:paramCheck>
|
|
<maven:paramCheck value="${maven.modello.version}" fail="true">The property "maven.modello.version" must be defined.</maven:paramCheck>
|
|
</goal>
|
|
|
|
<!-- Java Model -->
|
|
|
|
<goal name="modello:java" prereqs="modello:check-settings" description="Generates Java Pojos of the DataModel.">
|
|
<maven:paramCheck value="${maven.modello.java.targetDirectory}" fail="true">The property "maven.modello.java.targetDirectory" must be defined.</maven:paramCheck>
|
|
<ant:mkdir dir="${maven.modello.java.targetDirectory}"/>
|
|
<ant:path id="modello.sources" location="${maven.modello.java.targetDirectory}" />
|
|
<maven:addPath id="maven.compile.src.set" refid="modello.sources" />
|
|
<j:set var="sourcesPresent" value="true" scope="parent"/>
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="java"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- XPP3 Reader/Writer -->
|
|
|
|
<goal name="modello:xpp3" prereqs="modello:xpp3-reader, modello:xpp3-writer" description="Generates classes to read/write the model from/into a xml file using Xpp3."/>
|
|
|
|
<goal name="modello:xpp3-reader" prereqs="modello:java" description="Generates the class to read the model from a xml file using Xpp3.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="xpp3-reader"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<goal name="modello:xpp3-writer" prereqs="modello:java" description="Generates the class to write the model into a xml file using Xpp3.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="xpp3-writer"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- STAX Reader/Writer -->
|
|
|
|
<goal name="modello:stax" prereqs="modello:stax-reader, modello:stax-writer" description="Generates classes to read/write the model from/into a xml file using Stax."/>
|
|
|
|
<goal name="modello:stax-reader" prereqs="modello:java" description="Generates the class to read the model from a xml file using Stax.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="stax-reader"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<goal name="modello:stax-writer" prereqs="modello:java" description="Generates the class to write the model into a xml file using Stax.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="stax-writer"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- DOM4J Reader/Writer -->
|
|
|
|
<goal name="modello:dom4j" prereqs="modello:dom4j-reader, modello:dom4j-writer" description="Generates classes to read/write the model from/into a xml file using Dom4j."/>
|
|
|
|
<goal name="modello:dom4j-reader" prereqs="modello:java" description="Generates the class to read the model from a xml file using Dom4j.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="dom4j-reader"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<goal name="modello:dom4j-writer" prereqs="modello:java" description="Generates the class to write the model into a xml file using Dom4j.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="dom4j-writer"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- JDOM Writer -->
|
|
|
|
<goal name="modello:jdom" prereqs="modello:jdom-writer" description="Generates classes to write the model into a xml file using JDom."/>
|
|
|
|
<goal name="modello:jdom-writer" prereqs="modello:java" description="Generates classes to write the model into a xml file using JDom.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="jdom-writer"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- JPOX Storage -->
|
|
|
|
<goal name="modello:jpox" prereqs="modello:jpox-store, modello:jpox-jdo-mapping, modello:jpox-metadata-class" description="Generates classes to read/store the model in a database using JPox."/>
|
|
|
|
<goal name="modello:jpox-store" description="Generates the persistence mechanism using JPOX.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="jpox-store"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<goal name="modello:jpox-jdo-mapping" description="Generates the JDO mapping for JPOX.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="jpox-jdo-mapping"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<goal name="modello:jpox-metadata-class" description="Generates MetaData class for jpox.">
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="jpox-metadata-class"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.java.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- XSD generation -->
|
|
|
|
<goal name="modello:xsd" prereqs="modello:check-settings" description="Generates an XML Schema for the xml file used to store the model.">
|
|
<maven:paramCheck value="${maven.modello.xsd.targetDirectory}" fail="true">The property "maven.modello.xsd.targetDirectory" must be defined.</maven:paramCheck>
|
|
<ant:mkdir dir="${maven.modello.xsd.targetDirectory}"/>
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="xsd"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.xsd.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- XDOC generation -->
|
|
|
|
<goal name="modello:xdoc" prereqs="modello:check-settings" description="Generates a xdoc file to document the model.">
|
|
<maven:paramCheck value="${maven.modello.xdoc.targetDirectory}" fail="true">The property "maven.modello.xdoc.targetDirectory" must be defined.</maven:paramCheck>
|
|
<ant:mkdir dir="${maven.modello.xdoc.targetDirectory}"/>
|
|
<modello:generate
|
|
model="${maven.modello.model}"
|
|
type="xdoc"
|
|
packageWithVersion="${maven.modello.packageWithVersion}"
|
|
version="${maven.modello.version}"
|
|
targetDirectory="${maven.modello.xdoc.targetDirectory}" />
|
|
</goal>
|
|
|
|
<!-- Site report (XDOC + XSD) -->
|
|
|
|
<goal name="maven-modello-plugin:register" description="Register the model documentation." prereqs="modello:check-settings">
|
|
<doc:registerReport
|
|
name="Model documentation"
|
|
pluginName="maven-modello-plugin-xdoc"
|
|
link="${maven_modello_model_id}"
|
|
description="Documentation of the model."/>
|
|
<doc:registerReport
|
|
name="Model schema"
|
|
pluginName="maven-modello-plugin-xsd"
|
|
link="${maven_modello_model_id}-${maven.modello.version}"
|
|
target="_blank"
|
|
fileSuffix=".xsd"
|
|
description="Schema for the xml model."/>
|
|
</goal>
|
|
|
|
<goal name="maven-modello-plugin:deregister" description="Deregister the model documentation.">
|
|
<doc:deregisterReport name="Model documentation"/>
|
|
<doc:deregisterReport name="Model schema"/>
|
|
</goal>
|
|
|
|
<goal name="maven-modello-plugin-xdoc:report" description="Called by site to generate the model documentation." prereqs="modello:xdoc"/>
|
|
|
|
<goal name="maven-modello-plugin-xsd:report" description="Called by site to generate the model schema." prereqs="modello:xsd"/>
|
|
|
|
</project>
|