Re: Compayler 1.0
Christian Stein <[email protected]> Sun, 17 Aug 2014 19:13:16 +0200
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <CAJi8+g6sjg4EkgVOHsiV1FC3ZTxBBbvfUiwtCX6VFuH0FEDiyw@mail.gmail.com> |
--===============8374531151635434433== Content-Type: multipart/alternative; boundary=089e0160adf8c949900500d65ed4 --089e0160adf8c949900500d65ed4 Content-Type: text/plain; charset=UTF-8 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 ] --089e0160adf8c949900500d65ed4 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail= _quote">On Sun, Aug 17, 2014 at 3:15 PM, Klaus Wuestefeld <span dir=3D"ltr"= ><<a href=3D"mailto:[email protected]" target=3D"_blank">[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 class=3D"h5"><br></div></div></blockquote><div><br></div><div>Sur= e. I have played with Proxy, MethodHandle and invoke dynamic [*0], Mustache= .java templates and other things. 't was fun!</div><div>But, there'= s already a contribution that uses reflection. So, I had to find another wa= y to Rome...<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">https://gist.github.com/sormuras/3570453= c39f787adb832</a> ]</div><div>[*1=C2=A0<a href=3D"http://sourceforge.net/p/= prevayler/mailman/message/31809583">http://sourceforge.net/p/prevayler/mail= man/message/31809583</a> ]</div> </div></div></div> --089e0160adf8c949900500d65ed4-- --===============8374531151635434433== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ --===============8374531151635434433== 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 --===============8374531151635434433==--