DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=29051>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=29051 <ant inheritRefs="true" inheritAll="true" ...> passes through <patternset id="pattern.id"> but cannot use in <patternset refid="pattern.id"> in sub build Summary: <ant inheritRefs="true" inheritAll="true" ...> passes through <patternset id="pattern.id"> but cannot use in <patternset refid="pattern.id"> in sub build Product: Ant Version: 1.6.1 Platform: Sun OS/Version: Solaris Status: NEW Severity: Normal Priority: Other Component: Core AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Also present in 1.5 and 1.5.4. We have a three level build system: build.xml builds the entire project sub_build.xml builds a subsystem within the project common.xml encapsulates common targets that do actual work eg <javac ...> In build.xml we have <!-- Want to use top.filter.id to parameterise build.xml for different projects using the same subsystem, to exclude parts of subsystems that are not required. --> <!-- Problem happens even if patternset is nested in target below. --> <patternset id="top.filter.id"> <exclude name="**/unwanted/directory/**" ... </patternset> <target name="subsysname" depends="..."> <ant antfile="path/to/sub_build.xml" target="${subtarget}" inheritAll="true" inheritRefs="true"> <!-- Problem happens even if we add an explicit reference, with or without torefid to a new id for the sub_build.xml to use, and even with inheritRefs="false" and an explicit reference. --> <reference refid="top.filter.id"/> </ant> </target> The value of subtarget above defaults to 'all', and there is a set of standard targets that must be available in all sub_build.xml files. Varying the value of subtarget property varies which target runs in sub_build. In sub_build.xml we have targets which are driven by the standard targets, eg 'all', to do work. To standardize how that work is defined, we have common.xml <patternset id="sub.filter.id"> <!-- HERE IS THE PROBLEM --> <!-- ant reports Reference top.filter.id not found, so part one of the workaround is to comment this out and 'hack' my common.xml . --> <patternset refid="top.filter.id"/> <!-- HERE ENDS THE PROBLEM --> <exclude name="**/unwanted/directory/**" ... </patternset> <target name="compile_main"> <ant antfile="path/to/common.xml" target="compile_main" inheritAll="true" inheritRefs="true"> <property name="subname" value="sub-build-name"/> <property name="subdir" value="sub/build/dir"/> </ant> </target> In common.xml we have <target name="compile_main"> ... <javac taskname="${subname}.javac" destdir="${main.classes}" deprecation="${main.deprecation}" listfiles="${main.listfiles}"> <classpath refid="main.classpath"/> <!-- inherited property --> <src path="${src}"/> <include name="${subdir}/**/*.java"/> <patternset refid="sub.filter.id"/> <!-- inherited reference --> <!-- WORKAROUND is to use top.filter.id directly in common.xml <patternset refid="top.filter.id"/> --> </javac> </target> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]