From: Rob van Oostrum [mailto:[EMAIL PROTECTED]

> My master build file invokes my generic app build script passing the
> project name as a property. So the name of the property in 
> the generic app
> script is httpd.service.name.${project.name}

> So rather than have a httpd.service.name
> property, I call it httpd.service.name.[project name]. 
> Developers can then
> go into a file build.properties and override for example the
> httpd.service.name.coreapp property, without affecting their 
> builds of any other app.

Based upon what I understand of your use case, I created the
attached task.

It actually works in a reverse order, so you would have:
  ${projectname}.httpd.service.name
(etc)

What it does instead of having recursive property evaluation,
is treat the property space as a hierarchy, and allows you
to copy from one tree to another.

eg:
 You might have a project called "BitWhizz", and then you can do
      <copy-properties from="BitWhizz" to="main"/>
 and everything in the BitWhizz.* property heirarchy would then
 be duplicated as main.*

 eg BitWhizz.httpd.service.name would be copied to
    main.httpd.service.name

That should suit your use case.
The xml file attached is a buildfile, that demonstrates this.

Sorry, no docs or comments just yet.
If it does meet your requirements, then I'll look into making
it a bit more "real".


begin 600 CopyProperty.java
M+RH-"B`J(%1H92!!<&%C:&[EMAIL PROTECTED]'=A<[EMAIL PROTECTED]&[EMAIL 
PROTECTED]<VEO;B`Q
M+C$-"[EMAIL PROTECTED];W!Y<FEG:'[EMAIL PROTECTED]&,I([EMAIL 
PROTECTED]&AE($%P86-H92!3;V9T
M=V%R92!&;W5N9&%T:[EMAIL PROTECTED](')I9VAT<PT*("H@<F5S97)V960N#0H@
[EMAIL PROTECTED]("[EMAIL PROTECTED]:7-T<FEB=71I;[EMAIL 
PROTECTED]('5S92!I;B!S;[EMAIL PROTECTED](&)I
M;F%R>2!F;W)M<[EMAIL PROTECTED]:"!O<B!W:71H;[EMAIL PROTECTED];V1I9FEC871I;VXL
M(&%R92!P97)M:71T960@<')[EMAIL PROTECTED]&AA="!T:&[EMAIL PROTECTED];&]W:6YG(&-O
M;F1I=&EO;G,-"B`J(&[EMAIL PROTECTED]@T*("H@,[EMAIL PROTECTED]:7-T<FEB=71I
M;VYS(&]F('-O=7)C92!C;V1E(&UU<W0@<F5T86EN('1H92!A8F]V92!C;W!Y
M<FEG:'0-"B`J("`@(&YO=&[EMAIL PROTECTED]&AI<R!L:7-T(&]F(&-O;F1I=&EO;G,@
M86YD('1H92!F;VQL;W=I;F<@9&ES8VQA:6UE<BX-"[EMAIL PROTECTED]
M<W1R:6)U=&EO;G,@:[EMAIL PROTECTED])Y(&9O<FT@;75S="!R97!R;[EMAIL PROTECTED]&AE
M(&%B;W9E(&-O<'ER:6=H=`T*("H@("`@;F]T:6-E+"!T:&ES(&QI<W0@;V8@
M8V]N9&ET:6]N<R!A;[EMAIL PROTECTED]&AE(&9O;&QO=VEN9R!D:7-C;&%I;65R(&EN#0H@
M*B`@("!T:&[EMAIL PROTECTED]&]C=6UE;G1A=&EO;B!A;F0O;W(@;W1H97(@;6%T97)I86QS
M('!R;W9I9&5D('=I=&@@=&[EMAIL PROTECTED]@("!D:7-T<FEB=71I;[EMAIL PROTECTED]@T*
M("H@,[EMAIL PROTECTED]&AE(&5N9"UU<V5R(&1O8W5M96YT871I;VX@:6YC;'[EMAIL 
PROTECTED]
M:"!T:&4@<F5D:7-T<FEB=71I;VXL(&[EMAIL PROTECTED]@("!A;GDL(&UU<W0@:6YC
M;'5D92!T:&[EMAIL PROTECTED];&]W:6YG(&%C:[EMAIL PROTECTED]("H@("`@("`@
M(E1H:7,@<')O9'5C="!I;F-L=61E<R!S;V9T=V%R92!D979E;&[EMAIL PROTECTED]@
M=&[EMAIL PROTECTED]@("`@("[EMAIL PROTECTED](%-O9G1W87)E($9O=6YD871I;[EMAIL 
PROTECTED]&AT
M='`Z+R]W=W<N87!A8VAE+F]R9R\I+B(-"B`J("`@($%L=&5R;F%T96QY+"!T
M:&ES(&%C:VYO=VQE9V5M96YT(&UA>2!A<'!E87(@:[EMAIL PROTECTED]&AE('-O9G1W87)E
M(&ET<V5L9BP-"B`J("`@(&EF(&%N9"!W:&5R979E<B!S=6-H('1H:7)D+7!A
M<G1Y(&%C:VYO=VQE9V5M96YT<R!N;W)M86QL>2!A<'!E87([EMAIL PROTECTED]@T*("H@
M-"[EMAIL PROTECTED]&AE(&YA;65S(")4:&[EMAIL 
PROTECTED])T82!0<F]J96-T(BP@(D%N="(L(&%N
M9"`B07!A8VAE(%-O9G1W87)[EMAIL PROTECTED]@("!&;W5N9&%T:6]N(B!M=7-T(&YO
M="!B92!U<V5D('1O(&5N9&]R<V4@;W(@<')O;6]T92!P<F]D=6-T<R!D97)I
[EMAIL PROTECTED]@("!F<F]M('1H:7,@<V]F='=A<[EMAIL PROTECTED]:&]U="!P<FEO<B!W
M<FET=&5N('!E<FUI<W-I;VXN($9O<B!W<FET=&[EMAIL PROTECTED]@("!P97)M:7-S
M:6]N+"!P;&5A<[EMAIL PROTECTED]&%C="!A<&%C:&5`87!A8VAE+F]R9RX-"B`J#0H@
M*B`U+B!0<F]D=6-T<R!D97)I=F5D(&9R;[EMAIL PROTECTED]&AI<R!S;V9T=V%R92!M87D@
M;F]T(&)E(&-A;&QE9"`B07!A8VAE(@T*("H@("`@;F]R(&UA>2`B07!A8VAE
M(B!A<'!E87(@:[EMAIL PROTECTED]&AE:7(@;F%M97,@=VET:&]U="!P<FEO<B!W<FET=&5N
[EMAIL PROTECTED]@("!P97)M:7-S:6]N(&]F('1H92!!<&%C:&[EMAIL PROTECTED])[EMAIL 
PROTECTED]@T*
M("[EMAIL PROTECTED])4R!33T945T%212!)4R!04D]6241%1"[EMAIL 
PROTECTED]($E3)R<@04Y$($%.
[EMAIL PROTECTED](@24U03$E%1`T*("[EMAIL PROTECTED]@24Y#3%5$
M24Y'+"!"[EMAIL PROTECTED]($Q)[EMAIL PROTECTED](%1(12!)35!,245$(%=!4E)!3E1)
M15,-"B`J($]&($U%4D-(04Y404))[EMAIL PROTECTED]&3U(@02!0
M05)424-53$%2(%!54E!/[EMAIL PROTECTED])[EMAIL PROTECTED])[EMAIL PROTECTED]@3D\@
[EMAIL PROTECTED]@5$A%($%004-(12!33T945T%212!&3U5.1$%424].($]2
[EMAIL PROTECTED])5%,@0T].5%))0E543U)3($)%($Q)04),12!&3U(@04Y9($1)4D5#
M5"[EMAIL PROTECTED])%0U0L([EMAIL PROTECTED],+"!%6$5-4$Q!
M4EDL($]2($-/3E-%455%3E1)[EMAIL PROTECTED]'+"!"550@
[EMAIL PROTECTED],24U)5$5$(%1/+"!04D]#55)%345.5"!/1B!354)35$E4551%
M($=/3T13($]2(%-%4E9)0T53.R!,3U-3($]&[EMAIL PROTECTED]($1!5$$L($]2
M(%!23T9)5%,[($]2($)54TE.15-3($E.5$524E505$E/[EMAIL PROTECTED]
[EMAIL PROTECTED]@*B!/[EMAIL PROTECTED])9($]&($Q)04))[EMAIL PROTECTED]
M5$A%4B!)3B!#3TY44D%#5"[EMAIL PROTECTED]($Q)04))3$E462P-"B`J($]2(%1/
[EMAIL PROTECTED],24=%3D-%($]2([EMAIL PROTECTED]))4TE.
M1R!)[EMAIL PROTECTED]($]55`T*("[EMAIL PROTECTED]@5$A%(%5312!/1B!42$E3(%-/1E17
M05)%+"!%5D5.($E&([EMAIL PROTECTED]@5$A%(%!/4U-)0DE,2519($]&#0H@
M*B!354-(($1!34%'12X-"B`J(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]#0H@
[EMAIL PROTECTED]("[EMAIL 
PROTECTED]&AI<R!S;V9T=V%R92!C;VYS:7-T<R!O9B!V;VQU;G1A<[EMAIL PROTECTED]
M=')I8G5T:6]N<R!M861E(&)Y(&UA;GD-"B`J(&EN9&EV:61U86QS(&]N(&)E
M:&%L9B!O9B!T:&[EMAIL PROTECTED](%-O9G1W87)E($9O=6YD871I;VXN("!&;W(@
M;6]R90T*("H@:6YF;W)M871I;VX@;[EMAIL PROTECTED]&AE($%P86-H92!3;V9T=V%R92!&
M;W5N9&%T:6]N+"!P;&5A<V4@<[EMAIL PROTECTED]:'1T<#HO+W=W=RYA<&%C:&4N
M;W)[EMAIL PROTECTED]"@T*<&%C:V%G92!O<F<N87!A8VAE+G1O;VQS+F%N="YT
M87-K9&5F<RYO<'1I;VYA;"`[#0H-"FEM<&]R="!O<F<N87!A8VAE+G1O;VQS
M+F%N="XJ.PT*:6UP;W)T(&]R9RYA<&%C:&4N=&]O;',N86YT+G1Y<&5S+E!A
M=&@[#0II;7!O<G0@;W)G+F%P86-H92YT;V]L<RYA;G0N='EP97,N4F5F97)E
M;F-E.PT*#0II;7!O<G0@:F%V82YU=&EL+DAA<VAT86)L92`[#0II;7!O<G0@
M:F%V82YU=&EL+D5N=6UE<F%T:6]N(#L-"@[EMAIL PROTECTED]:6QL(&-O<'D@
M82!H96ER87)C:'D@;V8@<')O<&5R=&EE<R!T;R!A(&YE=R!H96ER87)C:'DN
[EMAIL PROTECTED]:6QL(&YO="!O=F5R<FED92!V86QU97,@<V5T(&)Y('1H92!C;VUM
M86YD(&QI;F4@;W(@<&%R96YT('!R;[EMAIL PROTECTED]("[EMAIL PROTECTED];"!N;W0@;W9E
M<G)I9&[EMAIL PROTECTED]<W1I;F<@<')O<&5R=&EE<RX-"[EMAIL PROTECTED]:&]R(%1I
M;2!697)N=6T@/'1P=D!S<&%M8V]P+FYE=#X-"B`J+PT*<'5B;&EC(&-L87-S
M($-O<'E0<F]P97)T>2!E>'1E;F1S(%1A<VL@>PT*#0H@("`@<')O=&5C=&5D
M(%-T<FEN9R!F<F]M.PT*("`@('!R;W1E8W1E9"!3=')I;F<@=&\[#0H@("`@
M<')O=&5C=&5D(&)O;[EMAIL PROTECTED]<E!R;W!E<G1Y([EMAIL PROTECTED]<[EMAIL 
PROTECTED]@
M("`@<'5B;&EC('9O:60@<V5T1G)O;2A3=')I;F<@9G)O;2D@>PT*("`@("`@
M("!T:&ES+F9R;VT@/2!F<F]M.PT*("`@('T-"@T*("`@('!U8FQI8R!V;VED
M('-E=%1O*%-T<FEN9R!T;RD@>PT*("`@("`@("!T:&ES+G1O([EMAIL PROTECTED]&\[#0H@
M("[EMAIL PROTECTED]@("`@<'5B;&EC('9O:60@<V5T57-E<E!R;W!E<G1Y*&)O;VQE
[EMAIL PROTECTED]<E!R;W!E<G1Y*2![#0H@("`@("`@('1H:7,N=7-E<E!R;W!E<G1Y
M([EMAIL PROTECTED]<E!R;W!E<G1Y(#L-"B`@("!]#0H-"B`@("!P=6)L:6,@=F]I9"!E
M>&5C=71E*"[EMAIL PROTECTED]&AR;W=S($)U:6QD17AC97!T:6]N('L-"@T*("`@("`@("!(
M87-H=&%B;&4@<')O<',@/2!P<F]J96-T+F=E=%!R;W!E<G1I97,H*2`[#0H@
M("`@("`@($5N=6UE<F%T:6]N(&5N=6T@/2!P<F]P<RYK97ES*"[EMAIL PROTECTED]("`@
M("`@("!(87-H=&%B;&[EMAIL PROTECTED](#T@;F5W($AA<VAT86)[EMAIL 
PROTECTED](#L-"B`@("`@
M("[EMAIL PROTECTED])4W1R:6YG(&ME>49R;VT@/2!F<F]M("L@(BXB(#L-"@E3=')I;F<@
M:V5Y5&\@/2!T;R`K("(N(B`[#0H-"B`@("`@("[EMAIL PROTECTED]@5&AE(&%D9&ET:6]N
M(&ES(&1O;F4@:[EMAIL PROTECTED]'=O('-T97!S+"!B96-A=7-E($DG;2!N;W0@<W5R92!T
M:&%T#0H@("`@("`@("`@($AA<VAT86)L92!H86YD;&5S('1H92!A9&1I=&EO
M;B!O9B!E;&5M96YT<R!W:&EL92!I="=S(&ET97)A=&EN9R`J+PT*("`@("`@
M("!W:&EL92@@96YU;2YH87--;W)E16QE;65N=',H*2`I#0H@("`@("`@('L-
M"B`@("`@("`@("`@(%-T<FEN9R!K97D@/2`H4W1R:6YG*65N=6TN;F5X=$5L
M96UE;G0H*2`[#0H@("`@("`@("`@("!/[EMAIL PROTECTED]@/2!P<F]P<RYG
M970H(&ME>2`I(#L-"@T*"2`@("!I9B@@:V5Y+G-T87)T<U=I=&@H(&ME>49R
M;[EMAIL PROTECTED]('L-"B`@("`@("`@("`@("`@("!A9&0N<'5T*"!K97E4;R`K(&ME
M>2YS=6)S=')I;F<H:V5Y1G)O;2YL96YG=&@[EMAIL PROTECTED]"!V86QU92`I(#L-"@D@
M("[EMAIL PROTECTED]"7T-"@T*"65N=6T@/2!A9&0N:V5Y<[EMAIL 
PROTECTED](#L-"B`@("`@("[EMAIL PROTECTED]
M;&4H(&5N=6TN:&%S36]R945L96UE;G1S*"[EMAIL PROTECTED]("`@("`@("![#0H@("`@
M("`@("`@("!3=')I;F<@:V5Y([EMAIL PROTECTED]<FEN9REE;G5M+FYE>'1%;&5M96YT
M*"[EMAIL PROTECTED]("`@("`@("`@("[EMAIL PROTECTED]:6YG('9A;'5E([EMAIL 
PROTECTED]<FEN9REA9&0N
M9V5T*"[EMAIL PROTECTED]"@D@("[EMAIL PROTECTED]&AI<RYA9&10<F]P97)T>2@@:V5Y+"!V
M86QU92`I(#L-"@E]#0H@("[EMAIL PROTECTED]@("`@<')O=&5C=&5D('9O:[EMAIL PROTECTED]
M4')O<&5R='DH4W1R:6YG(&XL(%-T<FEN9R!V*2![#0H@("`@("`@(&EF*"!U
M<V5R4')O<&5R='[EMAIL PROTECTED]@("`@("`@("`@("!I9B`H<')O:F5C="YG9715
M<V5R4')O<&5R='DH;BD@/3T@;G5L;"D@>PT*("`@("`@("`@("`@("`@('!R
M;VIE8W0N<V5T57-E<E!R;W!E<G1Y*&XL('8I.PT*("`@("`@("`@("[EMAIL PROTECTED]
M;'-E('L-"B`@("`@("`@("`@("`@("!L;V<H(D]V97)R:61E(&EG;F]R960@
M9F]R("(@*R!N+"!0<F]J96-T+DU31U]615)"3U-%*3L-"B`@("`@("`@("`@
M('[EMAIL PROTECTED]@("`@("`@('[EMAIL PROTECTED]@("`@("`@("`@("!I9B`H<')O:F5C
M="YG9710<F]P97)T>2AN*2`]/2!N=6QL*2![#0H@("`@("`@("`@("`@("`@
M<')O:F5C="YS9710<F]P97)T>2AN+"!V*3L-"B`@("`@("`@("`@('[EMAIL PROTECTED]
M92![#0H@("`@("`@("`@("`@("`@;&]G*")/=F5R<FED92!I9VYO<F5D(&9O
M<B`B("L@;[EMAIL PROTECTED]')O:F5C="Y-4T=?5D520D]312D[#0H@("`@("`@("`@("!]
;#0H@("`@("`@('T-"B`@("!]#0H-"GT-"@T*
`
end

begin 600 copyproperty.xml
M/#]X;[EMAIL PROTECTED]<VEO;CTB,2XP(C\^#0H-"CQP<F]J96-T(&YA;64](G!R;VIE
M8W0B(&1E9F%U;'0](FUA:6XB(&)A<V5D:7(](BXB/@T*#0H@(#QT87-K9&5F
M(&YA;64](F-O<'DM<')O<&5R=&EE<R(@8VQA<W-N86UE/2)O<F<N87!A8VAE
M+G1O;VQS+F%N="YT87-K9&5F<RYO<'1I;VYA;"Y#;W!Y4')O<&5R='DB+SX-
M"@T*("`\<')O<&5R='D@;F%M93TB86YT+G-E='1I;F<N,2(@=F%L=64](F%N
M="XQ(B\^#0H@(#QP<F]P97)T>2!N86UE/2)A;G0N<V5T=&EN9RXR(B!V86QU
M93TB86YT+C(B+SX-"B`@/'!R;W!E<G1Y(&YA;64](F%N="YS971T:6YG+C,B
M('9A;'5E/2)A;G0N,R(O/@T*("`\<')O<&5R='D@;F%M93TB86YT+G-E='1I
M;F<N-2(@=F%L=64](F%N="XU(B\^#0H-"B`@/'!R;W!E<G1Y(&YA;64](F1E
M9F%U;'0N<V5T=&EN9RXQ(B!V86QU93TB9&5F875L="XQ(B\^#0H@(#QP<F]P
M97)T>2!N86UE/2)D969A=6QT+G-E='1I;F<N,B(@=F%L=64](F1E9F%U;'0N
M,B(O/@T*("`\<')O<&5R='D@;F%M93TB9&5F875L="YS971T:6YG+C,B('9A
M;'5E/2)D969A=6QT+C,B+SX-"B`@/'!R;W!E<G1Y(&YA;64](F1E9F%U;'0N
M<V5T=&EN9RXT(B!V86QU93TB9&5F875L="XT(B\^#0H@(#QP<F]P97)T>2!N
M86UE/2)D969A=6QT+G-E='1I;F<N-2(@=F%L=64](F1E9F%U;'0N-2(O/@T*
M("`\<')O<&5R='D@;F%M93TB9&5F875L="YS971T:6YG+C8B('9A;'5E/2)D
M969A=6QT+C8B+SX-"[EMAIL PROTECTED]@(#QP<F]P97)T>2!N86UE/2)T:&ES+G!R;VIE
M8W0B('9A;'5E/2)A;G0B+SX-"@T*("`\=&%R9V5T(&YA;64](FUA:6XB/@T*
M"3QC;W!Y+7!R;W!E<G1I97,@9G)O;3TB)'MT:&ES+G!R;VIE8W1](B!T;STB
M;6%I;B(O/@T*"3QC;W!Y+7!R;W!E<G1I97,@9G)O;3TB9&5F875L="(@=&\]
M(FUA:6XB+SX-"@T*"3QE8VAO(&UE<W-A9V4](FUA:6XN,2`Z("1[;6%I;BYS
M971T:6YG+C%](B\^#0H)/&5C:&\@;65S<V%G93TB;6%I;BXR(#H@)'MM86EN
M+G-E='1I;F<N,GTB+SX-"@D\96-H;R!M97-S86=E/2)M86EN+C,@.B`D>VUA
M:6XN<V5T=&EN9RXS?2(O/@T*"3QE8VAO(&UE<W-A9V4](FUA:6XN-"`Z("1[
M;6%I;BYS971T:6YG+C1](B\^#0H)/&5C:&\@;65S<V%G93TB;6%I;BXU(#H@
M)'MM86EN+G-E='1I;F<N-7TB+SX-"@D\96-H;R!M97-S86=E/2)M86EN+C8@
M.B`D>VUA:6XN<V5T=&EN9RXV?2(O/@T*("`@/"]T87)G970^#0H-"CPO<')O
':F5C=#X-"@==
`
end

Reply via email to