<?xml version="1.0" encoding="ISO-8859-1"?> | |
<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" xmlns:util="jelly:util" xmlns:maven="jelly:maven"> | |
<goal name="directory:init"> | |
<!-- Dir for generated source files --> | |
<j:set var="targetDir" value="${maven.ldap.server.schema.target.dir}"/> | |
<j:set var="schemaDir" value="${maven.ldap.server.schema.dir}"/> | |
<j:set var="schemas" value="${maven.ldap.server.schemas}"/> | |
</goal> | |
<goal name="directory:prepare-filesystem"> | |
<j:if test="${!targetDir.equals('MAVEN_EVE_TARGET_DIR_NOT_SET')}"> | |
<ant:mkdir dir="${maven.build.dir}/schema"/> | |
</j:if> | |
</goal> | |
<goal name="directory:generate" | |
prereqs="directory:prepare-filesystem"> | |
<j:if test="${!targetDir.equals('MAVEN_EVE_TARGET_DIR_NOT_SET')}"> | |
<ant:path id="maven.ldap.server.schema.compile.src.set" | |
location="${maven.build.dir}/schema"/> | |
<maven:addPath id="maven.compile.src.set" | |
refid="maven.ldap.server.schema.compile.src.set"/> | |
<!-- TODO: use this for src.dir, but smarter for individual schemas --> | |
<!-- TODO: it seems that if target exists but the flagfile doesn't, it doesn't compile? --> | |
<ant:uptodate property="maven.ldap.server.schema.buildNotRequired" targetfile="${maven.build.dir}/schema/.flagfile"> | |
<ant:srcfiles | |
dir = "${maven.ldap.server.schema.dir}" | |
includes = "*.schema"/> | |
</ant:uptodate> | |
<j:set var="schemaBuildNotRequired" value="${maven.ldap.server.schema.buildNotRequired}" /> | |
<j:if test="${schemaBuildNotRequired == null}"> | |
<j:if test="${!schemas.equals('MAVEN_EVE_SCHEMAS_NOT_SET')}"> | |
<util:tokenize var="schemas" delim=","> | |
${maven.ldap.server.schemas} | |
</util:tokenize> | |
<j:forEach var="schema" items="${schemas.iterator()}"> | |
<j:set var="ownerProp" value="maven.ldap.server.schema.owner.${schema}"/> | |
<j:set var="owner" value="${context.getVariable(ownerProp)}" | |
defaultValue="${maven.ldap.server.schema.ownerDefault}"/> | |
<j:set var="packageProp" value="maven.ldap.server.schema.package.${schema}"/> | |
<j:set var="package" value="${context.getVariable(packageProp)}" | |
defaultValue="${maven.ldap.server.schema.packageDefault}"/> | |
<j:set var="depsProp" value="maven.ldap.server.schema.deps.${schema}"/> | |
<j:set var="deps" value="${context.getVariable(depsProp)}"/> | |
<!-- Basedir sysprop not set when not forking --> | |
<j:set var="noop" value="${systemScope.setProperty('basedir', basedir)}"/> | |
<j:useBean var="task" class="org.apache.ldap.server.tools.schema.DirectorySchemaToolTask" | |
name="${schema}" owner="${owner}" package="${package}" dependencies="${deps}"/> | |
<j:expr value="${task.execute()}"/> | |
<j:if test="${task.hasFaulted()}"> | |
<fail message="${task.getLastFault().getMessage()}"/> | |
</j:if> | |
<echo>Generated schema producer classes for ${schema}.schema</echo> | |
</j:forEach> | |
</j:if> | |
<ant:touch file="${maven.build.dir}/schema/.flagfile" /> | |
</j:if> | |
</j:if> | |
</goal> | |
<!-- | |
<preGoal name="java:compile"> | |
<j:if test="${!schemaDir.equals('MAVEN_EVE_SCHEMA_DIR_NOT_SET')}"> | |
<attainGoal name="directory:schema"/> | |
</j:if> | |
</preGoal> | |
--> | |
<goal name="directory:schema"> | |
<attainGoal name="directory:init"/> | |
<attainGoal name="directory:generate"/> | |
</goal> | |
</project> | |