| <?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> | |