The extension I added to Xpp3Reader is simple and is not coupled to any kind of specific external code and is just a general purpose extension point.
Swizzle looks cool. I'm not entirely convinced interpolation at the stream level will be entirely without a round of gotchas, various forms of xml related escaping being the first that come to mind. Certainly if someone wants to give it a shot and iron out the interesting bugs that will arise I'l be more than happy to try it. Field-level interpolation is safe. (And technically, extracting the interpolator enough to inject it in the proper place is the most significant change for the code base. Injecting "differently" is a minor change if it should ever come around) Kristian 2014-12-08 22:12 GMT+01:00 Jason van Zyl <ja...@takari.io>: > Wouldn't it be easier to add interpolation with something like: > > Model model = MavenXpp3Reader.read(new MyFilterInputStream(inputStream)); > > Instead of adding interpolation into Modello? > > Swizzle has lots of nice filtering implementations: > > http://svn.codehaus.org/swizzle/trunk/swizzle-stream/src/main/java/org/codehaus/swizzle/stream/ > > On Dec 8, 2014, at 12:35 PM, Kristian Rosenvold > <kristian.rosenv...@gmail.com> wrote: > >> I fixed interpolation in modello for Xpp3reader. >> http://jira.codehaus.org/browse/MODELLO-290. Build 1.8.3-SNAPSHOT from >> git if you want to test it. >> >> I'll play around with base class generation for a day or two before >> releasing 1.8.3 (maybe 1.9) >> >> K >> >> >> 2014-12-07 12:22 GMT+01:00 Hervé BOUTEMY <herve.bout...@free.fr>: >>>> Do you think this is feasible ? >>> we maintain the generator, so anything is feasible if it's valid java :) >>> >>> one hard part is to demonstrate the code you intend to generate before >>> hacking >>> the generator, because hacking the generator is always hard >>> And I didn't really get the idea yet. >>> >>> >>>> There is still the issue of the "boolean" datatype. >>> notice the issue is in fact for any data type that is not String: >>> interpolation requires to happen on String, and data type conversion has to >>> to >>> be done after interpolation >>> >>> >>> which takes us to the demo before hacking the generator >>> >>> IMHO, we should create a little demo project with interpolation, let the >>> code >>> generate and hack generated code to show how interpolation support can be >>> added >>> >>> Regards, >>> >>> Hervé >>> >>> Le samedi 6 décembre 2014 19:29:09 Kristian Rosenvold a écrit : >>>> I have been thinking about adding a "generateSuperclasses" option to >>>> modello that would actually put the generated classes in a subpackage >>>> "generated" and let the actual implementation be up to the client (so >>>> in this case I would implement the class >>>> org.apache.maven.plugin.assembly.model.Assembly which would extend the >>>> class org.apache.maven.plugin.assembly.model.generated.Assembly >>>> generated by modello. AssemblyXpp3Reader would instantiate >>>> org.apache.maven.plugin.assembly.model.Assembly). So I would have >>>> custom code in org.apache.maven.plugin.assembly.model.Assembly that >>>> could extend the generated code >>>> >>>> Do you think this is feasible ? >>>> >>>> There is still the issue of the "boolean" datatype. Changing 30 >>>> booleans to strings leads to a huge and undesirable footprint in the >>>> code. Using custom-written subclasses could solve some of this (and a >>>> few other problems of code generation too!) >>>> >>>> If we were able to make modello classes extend regular classes, I >>>> think it would be easy to make a *Xpp3Reader that supports >>>> interpolation. Is there any way we could do this ? (Maybe make a >>>> modello-client module that can contain modello base classes ?) >>>> >>>> Kristian >>>> >>>> 2014-12-06 17:11 GMT+01:00 Hervé BOUTEMY <herve.bout...@free.fr>: >>>>> I don't think this is a good idea: in general, a modello generated model >>>>> doesn't support interpolation. >>>>> >>>>> but you're right: something should be done in case of a model with >>>>> interpolation support >>>>> >>>>> Regards, >>>>> >>>>> Hervé >>>>> >>>>> Le samedi 6 décembre 2014 12:28:20 Kristian Rosenvold a écrit : >>>>>> Reading my own suggestion: I was suggesting to change modello to >>>>>> always back boolean fields with strings. >>>>>> >>>>>> 2014-12-06 12:21 GMT+01:00 Kristian Rosenvold >>>>> >>>>> <kristian.rosenv...@gmail.com>: >>>>>>> Looking at the implications of changing all the 30+ boolean fields of >>>>>>> the assembly plugin to String, I really start thinking "what is the >>>>>>> point of code generation". It looks to me like we should at least just >>>>>>> globally change the backing datatype of "boolean" to String, and >>>>>>> generate overloads setXXX(String stringValue), setXXX(boolean >>>>>>> booleanValue), String getXXX() and boolean isXXX(). That should work, >>>>>>> or not ? >>>>>>> >>>>>>> It's no secret I dislike code generation, but then again I have not >>>>>>> made a commitment to love everything in our code base :) >>>>>>> Alternately I think this would be a suitable point in time to just >>>>>>> sever the entire modello binding and move the generated classes to >>>>>>> src/main. >>>>>>> >>>>>>> Kristan >>>>>>> >>>>>>> 2014-12-05 21:48 GMT+01:00 Hervé BOUTEMY <herve.bout...@free.fr>: >>>>>>>> Robert beat me at it :) >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> Hervé >>>>>>>> >>>>>>>> Le vendredi 5 décembre 2014 18:55:55 Robert Scholte a écrit : >>>>>>>>> Hi Kristian, >>>>>>>>> >>>>>>>>> AFIAK this is indeed the only way to solve this. >>>>>>>>> Visit http://maven.apache.org/ref/3.2.3/maven-model/maven.html and >>>>>>>>> search >>>>>>>>> for "Boolean". You'll find elements which are actually a Boolean, but >>>>>>>>> are >>>>>>>>> a String for technical reasons. e.g. make it possible to interpolate >>>>>>>>> them. >>>>>>>>> >>>>>>>>> Robert >>>>>>>>> >>>>>>>>> Op Fri, 05 Dec 2014 16:36:46 +0100 schreef Kristian Rosenvold >>>>>>>>> >>>>>>>>> <kristian.rosenv...@zenior.no>: >>>>>>>>>> You should create an issue at >>>>>>>>>> http://jira.codehaus.org/browse/MASSEMBLY >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Hervé/Others: >>>>>>>>>> >>>>>>>>>> Since the attachement made it through, I took a quick look. The >>>>>>>>>> problem is that the modello-generated assembly descriptor has a >>>>>>>>>> "boolean" type for this value. Since the assembly descriptor >>>>>>>>>> interpolation happens "after" the AssemblyXpp3Reader has done its >>>>>>>>>> job, >>>>>>>>>> the only solution I can think of is to change the datatype of this >>>>>>>>>> field to "string"; which would preserve the original expression >>>>>>>>>> long >>>>>>>>>> enough for the interpolator to get hold of it. Is there any other >>>>>>>>>> way >>>>>>>>>> ? >>>>>>>>>> >>>>>>>>>> (Hmm. I could interpolate the assembly descriptor as an xml string >>>>>>>>>> *before* feeding it to AssemblyXpp3Reader, does that make sense ?) >>>>>>>>>> >>>>>>>>>> Kristian >>>>>>>>>> >>>>>>>>>> 2014-12-05 15:46 GMT+01:00 Jean-Eric Cuendet <j...@jesc.ch>: >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> It's the first time I post a bug on a maven plugin. If that's the >>>>>>>>>>> wrong >>>>>>>>>>> way, >>>>>>>>>>> please let me know where to do it. I found the issue tracker but >>>>>>>>>>> I'm >>>>>>>>>>> unable >>>>>>>>>>> to create new issue. >>>>>>>>>>> >>>>>>>>>>> My problem: >>>>>>>>>>> I use the assembly plugin, with the <includeBaseDirectory> tag in >>>>>>>>>>> the >>>>>>>>>>> assembly.xml file. If I put a variable >>>>>>>>>>> (${mine.includeBaseDirectory}) >>>>>>>>>>> in the >>>>>>>>>>> tag, it's not taken into account. >>>>>>>>>>> But if I use true or false, that fine. >>>>>>>>>>> >>>>>>>>>>> I have created a small project that shows the problem. It's >>>>>>>>>>> attached. >>>>>>>>>>> >>>>>>>>>>> To reproduce: >>>>>>>>>>> - unzip the attachment >>>>>>>>>>> - cd maven-assembly-bug/ >>>>>>>>>>> - mvn clean install assembly:single >>>>>>>>>>> The file maven-assembly-bug-1.0.0-SNAPSHOT.tar.gz doesn't contain >>>>>>>>>>> the >>>>>>>>>>> baseDir, while the variable used is set to true >>>>>>>>>>> >>>>>>>>>>> If you change the value in assembly.xml to true or false (instead >>>>>>>>>>> of >>>>>>>>>>> using >>>>>>>>>>> the variable), that's worting fine. >>>>>>>>>>> >>>>>>>>>>> Any idea? >>>>>>>>>>> Thanks a lot. >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Jean-Eric Cuendet >>>>>>>>>>> Le Pré des Buis 1 >>>>>>>>>>> CH - 1315 La Sarraz >>>>>>>>>>> >>>>>>>>>>> Blog: http://jesc.ch >>>>>>>>>>> LinkedIn: http://www.linkedin.com/profile/view?id=1456133 >>>>>>>>>>> FB: http://www.facebook.com/profile.php?id=100002135244701 >>>>>>>>>>> Mobile: +41 76 222 3343 >>>>>>>>>> >>>>>>>>>> ------------------------------------------------------------------- >>>>>>>>>> -- >>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>>>>>> >>>>>>>>> --------------------------------------------------------------------- >>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>> For additional commands, e-mail: dev-h...@maven.apache.org >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>> For additional commands, e-mail: dev-h...@maven.apache.org >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> For additional commands, e-mail: dev-h...@maven.apache.org >> > > Thanks, > > Jason > > ---------------------------------------------------------- > Jason van Zyl > Founder, Apache Maven > http://twitter.com/jvanzyl > http://twitter.com/takari_io > --------------------------------------------------------- > > > > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org