| <!-- |
| - |
| - 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 name="Qpid Common Protocol Versions" default="generate"> |
| |
| <property name="saxon.jar" value="lib/saxon/saxon8.jar"/> |
| <!-- temporarily hard-wired XML spec version for build avoidance --> |
| <property name="amqp.xml" value="${specs.dir}/amqp-8.0.xml"/> |
| |
| <macrodef name="saxon"> |
| <attribute name="out"/> |
| <attribute name="src"/> |
| <attribute name="xsl"/> |
| <element name="args" implicit="true" optional="true"/> |
| <sequential> |
| <java jar="${saxon.jar}" fork="true"> |
| <arg value="-o"/> |
| <arg value="@{out}"/> |
| <arg value="@{src}"/> |
| <arg value="@{xsl}"/> |
| <args/> |
| </java> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="amqp"> |
| <attribute name="ver"/> |
| <sequential> |
| <!-- Check for the existence of the AMQP specification file --> |
| <property name="amqpspecfile-@{ver}" value="${specs.dir}/amqp-@{ver}.xml"/> |
| <available file="${specs.dir}/amqp-@{ver}.xml" |
| property="amqpspecfile.present-@{ver}"/> |
| <fail unless="amqpspecfile.present-@{ver}" |
| message="ERROR: AMQP specification file ${specs.dir}/amqp-@{ver}.xml not found."/> |
| |
| <!-- Read in the file as a set of properties; extract the amqp version --> |
| <xmlproperty prefix="@{ver}" file="${specs.dir}/amqp-@{ver}.xml"/> |
| <echo>Found AMQP specification file "${specs.dir}/amqp-@{ver}.xml"; major=${@{ver}.amqp(major)} minor=${@{ver}.amqp(minor)}</echo> |
| |
| <!-- Add the version to the ProtocolVersionList.java file --> |
| <replaceregexp file="${proto_version}" match=" // !VER!" |
| replace=",${line.separator} {${@{ver}.amqp(major)}, ${@{ver}.amqp(minor)}} // !VER!" |
| flags="s" byline="true"/> |
| <replaceregexp file="${proto_version}" match=" // !VER1!" |
| replace="{${@{ver}.amqp(major)}, ${@{ver}.amqp(minor)}} // !VER!" |
| flags="s" byline="true"/> |
| |
| <!-- Create directory; generate from specification file --> |
| <saxon out="${generated.dir}/results.out" |
| src="${specs.dir}/amqp-@{ver}.xml" |
| xsl="${spec.stylesheet}"> |
| <arg value="major=${@{ver}.amqp(major)}"/> |
| <arg value="minor=${@{ver}.amqp(minor)}"/> |
| <arg value="registry_name=MainRegistry"/> |
| </saxon> |
| <!-- --> |
| <saxon out="${generated.dir}/cluster.out" |
| src="${cluster.asl}" |
| xsl="${spec.stylesheet}"> |
| <arg value="major=${@{ver}.amqp(major)}"/> |
| <arg value="minor=${@{ver}.amqp(minor)}"/> |
| <arg value="registry_name=ClusterRegistry"/> |
| </saxon> |
| <saxon out="${generated.dir}/registry.out" |
| src="${registry.template}" |
| xsl="${registry.stylesheet}"> |
| <arg value="major=${@{ver}.amqp(major)}"/> |
| <arg value="minor=${@{ver}.amqp(minor)}"/> |
| </saxon> |
| </sequential> |
| </macrodef> |
| |
| <uptodate property="generated" targetfile="${generated.dir}/results.out" |
| srcfile="${amqp.xml}"/> |
| |
| <target name="generate" unless="generated"> |
| <mkdir dir="${generated.dir}"/> |
| <copy file="src/main/versions/ProtocolVersionList.java.tmpl" tofile="${proto_version}" |
| overwrite="true"/> |
| <!-- |
| NOTE: Set the AMQP version numbers to be supported in this build here. |
| The last version in this list will be the version returned when a protocol |
| ProtocolInitiation NAK frame is returned by the broker. Usually this is the |
| highest or most recent version. |
| --> |
| <!-- <amqp ver="0.8"/> |
| <amqp ver="0.9"/> |
| <amqp ver="0.10"/> --> |
| <amqp ver="8.0"/> |
| |
| <!-- <saxon out="${generated.dir}/results.out" src="${amqp.xml}" |
| xsl="${stylesheet}"> |
| <arg value="asl_base=${asl.base}"/> |
| <arg value="registry_name=MainRegistry"/> |
| </saxon> |
| <saxon out="${generated.dir}/cluster.out" src="${cluster.asl}" |
| xsl="${stylesheet}"> |
| <arg value="registry_name=ClusterRegistry"/> |
| </saxon> |
| <saxon out="${generated.dir}/registry.out" src="${registry_template}" |
| xsl="${registry_stylesheet}"/> --> |
| </target> |
| |
| <target name="precompile" depends="generate"/> |
| |
| </project> |