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">&lt;<a href=3D"mailto=
:[email protected]" target=3D"_blank">[email protected]</a>&gt;</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">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">ma=
[email protected]</a>&gt;</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">&quot;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.&quot;<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. &#39;t was fun!</div><div>But, there&#39;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 &quot;invisible working&quot; 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>
&quot;Databases in Memoriam&quot; -- <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==--