Author: jhm Date: Mon Jul 2 01:26:22 2007 New Revision: 552429 URL: http://svn.apache.org/viewvc?view=rev&rev=552429 Log: Buildfile for making a new AntLib. Are all "common-features" present?
Added: ant/sandbox/antlibs/build.xml Added: ant/sandbox/antlibs/build.xml URL: http://svn.apache.org/viewvc/ant/sandbox/antlibs/build.xml?view=auto&rev=552429 ============================================================================== --- ant/sandbox/antlibs/build.xml (added) +++ ant/sandbox/antlibs/build.xml Mon Jul 2 01:26:22 2007 @@ -0,0 +1,298 @@ +<?xml version="1.0"?> +<!-- + 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 default="manually-todo"> + + <description> + This buildfile generates the directory layout for a new AntLib. + </description> + + + + <target name="read-properties" unless="antlib.shortname"> + <input addproperty="antlib.shortname" + message="Please enter the short name (for root directory and package) of your AntLib" + /> + <input addproperty="antlib.fullname" + message="Please enter the full name of you AntLib" + defaultvalue="${antlib.shortname}" + /> + <input addproperty="name.first" + message="Please enter your first name" + /> + <input addproperty="name.last" + message="Please enter your last name" + /> + </target> + + + + <target name="setup-properties" depends="read-properties"> + <property name="antlib.trunk" value="${antlib.shortname}/trunk"/> + <tstamp> + <format property="tstamp.year" pattern="yyyy"/> + </tstamp> + <property name="antlib.src.root" value="${antlib.trunk}/src/main/org/apache/ant/${antlib.shortname}"/> + <property name="manual.dir" value="${antlib.trunk}/docs"/> + </target> + + + + <target name="make-dir-layout" depends="setup-properties"> + <!-- Subversion directory layout --> + <mkdir dir="${antlib.shortname}/tags"/> + <mkdir dir="${antlib.shortname}/branches"/> + <mkdir dir="${antlib.trunk}"/> + <!-- Common AntLib directory layout --> + <mkdir dir="${antlib.trunk}/src/main"/> + <mkdir dir="${antlib.trunk}/src/test/junit"/> + <mkdir dir="${antlib.trunk}/src/test/antunit"/> + <mkdir dir="${manual.dir}"/> + <!-- the root package for the antlib --> + <mkdir dir="${antlib.src.root}"/> + </target> + + + + <target name="create-artifacts" depends="make-dir-layout,changes,antlib.xml,contributors.xml,build.xml,manual"> + <copy file="http/trunk/common/NOTICE.template" tofile="${antlib.trunk}/NOTICE"> + <filterset begintoken="[" endtoken="]"> + <filter token="PRODUCT_NAME" value="${antlib.fullname}"/> + <filter token="yyyy" value="${tstamp.year}"/> + </filterset> + </copy> + <echo + file="${antlib.trunk}/version.properties" + message="#artifact.version=1.0alpha" + /> + </target> + + + + <target name="changes" depends="make-dir-layout"> + <echo file="${antlib.trunk}/changes.xml"><?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE document +[ +<!ELEMENT document (properties?, release+)> +<!ELEMENT properties (title)> +<!ELEMENT title (#PCDATA)> +<!ELEMENT release (action*)> +<!ELEMENT action (#PCDATA)> +<!ATTLIST release + version CDATA #REQUIRED + date CDATA #REQUIRED + description CDATA #IMPLIED> +<!ATTLIST action + issue CDATA #IMPLIED + type (add|fix|remove|update) #REQUIRED + breaks-bwc (true|false) #IMPLIED> +] +> +<document> + <properties> + <title>Apache AntLib ${antlib.fullname}</title> + </properties> + + <release version="SVN trunk" date="unpublished"> + <action type="add"> + Initial import of ${antlib.fullname} + </action> + </release> + +</document> + </echo> + </target> + + + + <target name="antlib.xml" depends="make-dir-layout"> + <echo file="${antlib.trunk}/src/main/org/apache/ant/${antlib.shortname}/antlib.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. +--> +<antlib> + <!-- + <taskdef + name="" + classname="org.apache.ant.${antlib.shortname}." + /> + <macrodef name=""> + <attribute name="" default=""/> + <element name="" optional="yes"/> + <text name="text" optional="yes" trim="true"/> + <sequential> + <echo/> + </sequential> + </macrodef> + <presetdef name=""> + </presetdef> + --> +</antlib> + </echo> + </target> + + + + <target name="contributors.xml" depends="make-dir-layout"> + <echo file="${antlib.trunk}/changes.xml"><?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE contributors +[ +<!ELEMENT name (first?, middle?, last)> +<!ELEMENT contributors (introduction, name+)> +<!ELEMENT first (#PCDATA)> +<!ELEMENT introduction (#PCDATA)> +<!ELEMENT middle (#PCDATA)> +<!ELEMENT last (#PCDATA)> +] +> +<contributors> + <introduction> + These are some of the many people who have helped with this Ant Library. + </introduction> + + <name> + <first>${name.first}</first> + <last>${name.last}</last> + </name> +</contributors> + </echo> + </target> + + + + <target name="manual" depends="make-dir-layout"> + <copy file="${ant.home}/docs/favicon.ico" todir="${manual.dir}"/> + <echoxml file="${manual.dir}/index.html"> +<html> +<head> + <meta http-equiv="Content-Language" content="en-us"/> + <link rel="stylesheet" type="text/css" href="style.css"/> + <title>User Manual - ${antlib.fullname}</title> +</head> +<frameset cols="26%,74%"> + <frame src="toc.html" name="navFrame"/> + <frame src="cover.html" name="mainFrame"/> +</frameset> +<noframes> + <H2>User Manual - ${antlib.fullname}</H2> + <a href="toc.html">User Manual - ${antlib.fullname}</a> +</noframes> +</html> + </echoxml> + <echoxml file="${manual.dir}/toc.html"> +<html> +<head> + <meta http-equiv="Content-Language" content="en-us"/> + <link rel="stylesheet" type="text/css" href="style.css"/> + <title>${antlib.fullname}</title> + <base target="mainFrame"/> +</head> +<body> + <a href="cover.html">Overview</a><br/> + <h2>Tasks</h2> + <a href="task.html">task</a><br/> +</body> +</html> + </echoxml> + <echoxml file="${manual.dir}/cover.html"> +<html> +<head> + <meta http-equiv="Content-Language" content="en-us"/> + <link rel="stylesheet" type="text/css" href="style.css"/> + <title>${antlib.fullname}</title> +</head> +<body> + <h2>${antlib.fullname}</h2> + <p> TODO: something about this antlib </p> + <h3>What's this?</h3> + <h3>Building</h3> + <p>dependencies on Ant <i>version?</i>, external libs and tools</p> + <h3>Using</h3> +</body> +</html> + </echoxml> + </target> + + + + <target name="build.xml" depends="make-dir-layout"> + <echo file="${antlib.trunk}/build.xml"><?xml version="1.0"?> +<!-- + 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 default="compile" name="${antlib.shortname}"> + + <!-- easy way to override properties --> + <property file="build.properties"/> + + <import file="common/build.xml"/> + +</project> + </echo> + </target> + + + + <target name="manually-todo" depends="create-artifacts"> + <echo> + The AntLib directory layout and initial artifacts are created. + Your next steps are: + - maybe add your middle name to contributors.xml + - maybe add others to contributors.xml + - say something in the manuals cover.html about this AntLib + - add the files to svn + - modify the svn-properties of trunk-directory and add svn:externals + common http://svn.apache.org/repos/asf/ant/antlibs/common/trunk + - update from svn for getting the common directory + - implement the AntLib + - implement testcases (hopefully using AntUnit) + - document the AntLib + </echo> + </target> + + +</project> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]