Re: Compayler 1.0
Felipe Cruz <[email protected]> Thu, 21 Aug 2014 10:08:45 -0300
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <CAEynwxvh=iu_5c4z9x=AT+zBNKEpWWzu_827F_e1=m0_D8d4eg@mail.gmail.com> |
--===============0539079597414954354== Content-Type: multipart/alternative; boundary=047d7b414260d9f29b0501236c4c --047d7b414260d9f29b0501236c4c Content-Type: text/plain; charset=UTF-8 Hello! IMO we should promote more those high level layers over prevayler. Sometimes I think prevayler looks too low level, specially for beginners.. Very cool work Christian! 2014-08-17 14:13 GMT-03:00 Christian Stein <[email protected]>: > > > > On Sun, Aug 17, 2014 at 3:15 PM, Klaus Wuestefeld <[email protected]> wrote: > >> "With the Prevayler Decorator Compiler you can achive these goals >> - Encapsulate all transactions executing on a prevalent system in one >> place, namely an interface. >> - Easily unit test the system implementation without caring for >> persistence. >> - Let the compiler do the tedious work of writing the transaction source >> code. >> - Never instantiate a transaction object by yourself, just call your >> interface methods." >> >> :) >> >> Christian, did you consider using java.lang.reflect.Proxy? >> >> > Sure. I have played with Proxy, MethodHandle and invoke dynamic [*0], > Mustache.java templates and other things. 't was fun! > But, there's already a contribution that uses reflection. So, I had to > find another way to Rome... > > (-: > > Seriously, three reasons for my annotation processor way is that you > > * do have no runtime overhead and you can > * see generated code and step through it with a debugger more easily > and... > * ...regarding the extra turn of feeding a web application with your code > and get the decorator, > you just have the tool "invisible working" at your side. > > Cheers, > Christian > > [*0 https://gist.github.com/sormuras/3570453c39f787adb832 ] > [*1 http://sourceforge.net/p/prevayler/mailman/message/31809583 ] > > > ------------------------------------------------------------------------------ > > _______________________________________________ > To unsubscribe go to the end of this page: > http://lists.sourceforge.net/lists/listinfo/prevayler-discussion > _______________________________________________ > "Databases in Memoriam" -- http://www.prevayler.org > > -- Felipe Cruz http://about.me/felipecruz --047d7b414260d9f29b0501236c4c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Hello!<div><br></div><div>IMO we should promote more those= high level layers over prevayler. Sometimes I think prevayler looks too lo= w level, specially for beginners..=C2=A0</div><div><br></div><div>Very cool= work Christian!</div> </div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">2014-08= -17 14:13 GMT-03:00 Christian Stein <span dir=3D"ltr"><<a href=3D"mailto= :[email protected]" target=3D"_blank">[email protected]</a>></span>:<b= r><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:= 1px #ccc solid;padding-left:1ex"> <div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail= _quote"><div class=3D"">On Sun, Aug 17, 2014 at 3:15 PM, Klaus Wuestefeld <= span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"_blank">ma= [email protected]</a>></span> wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-= left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p= adding-left:1ex">"With the Prevayler Decorator Compiler you can achive= these goals<br> - Encapsulate all transactions executing on a prevalent system in one<br> place, namely an interface.<br> - Easily unit test the system implementation without caring for persistence= .<br> - Let the compiler do the tedious work of writing the transaction source co= de.<br> - Never instantiate a transaction object by yourself, just call your<br> interface methods."<br> <br> :)<br> <br> Christian, did you consider using java.lang.reflect.Proxy?<br> <div><div><br></div></div></blockquote><div><br></div></div><div>Sure. I ha= ve played with Proxy, MethodHandle and invoke dynamic [*0], Mustache.java t= emplates and other things. 't was fun!</div><div>But, there's alrea= dy a contribution that uses reflection. So, I had to find another way to Ro= me...<br> </div><div><br></div><div><div>(-:</div></div><div><br></div><div>Seriously= ,=C2=A0three reasons for my annotation processor way is that you=C2=A0</div= ><div><br></div><div>=C2=A0* do have no runtime overhead and you can</div><= div>=C2=A0* see=C2=A0generated code=C2=A0and step through it with a debugge= r more easily and...</div> <div>=C2=A0* ...regarding the extra turn of feeding a web application with = your code and get the decorator,</div><div>=C2=A0 =C2=A0you just have the t= ool "invisible working" at your side.</div><div><br></div><div>Ch= eers,</div> <div>Christian</div><div><br></div><div>[*0 <a href=3D"https://gist.github.= com/sormuras/3570453c39f787adb832" target=3D"_blank">https://gist.github.co= m/sormuras/3570453c39f787adb832</a> ]</div><div>[*1=C2=A0<a href=3D"http://= sourceforge.net/p/prevayler/mailman/message/31809583" target=3D"_blank">htt= p://sourceforge.net/p/prevayler/mailman/message/31809583</a> ]</div> </div></div></div> <br>-----------------------------------------------------------------------= -------<br> <br>_______________________________________________<br> To unsubscribe go to the end of this page: <a href=3D"http://lists.sourcefo= rge.net/lists/listinfo/prevayler-discussion" target=3D"_blank">http://lists= .sourceforge.net/lists/listinfo/prevayler-discussion</a><br> _______________________________________________<br> "Databases in Memoriam" -- <a href=3D"http://www.prevayler.org" t= arget=3D"_blank">http://www.prevayler.org</a><br> <br></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br><div dir= =3D"ltr"><div>Felipe Cruz</div><a href=3D"http://about.me/felipecruz" targe= t=3D"_blank">http://about.me/felipecruz</a><br></div> </div> --047d7b414260d9f29b0501236c4c-- --===============0539079597414954354== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ --===============0539079597414954354== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion _______________________________________________ "Databases in Memoriam" -- http://www.prevayler.org --===============0539079597414954354==--