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