OK, here it is:

http://reviewboard.liftweb.net/r/18/

Derek

On Tue, Sep 29, 2009 at 10:10 AM, Derek Chen-Becker
<dchenbec...@gmail.com>wrote:

> I'll take a stab at it. I'm familiar with Dynamic Proxies but I've never
> implemented one before, so this would be a good experience. The only
> drawback is that I think I'm going to have to use reflection on the wrapped
> Statement/PreparedStatement since we won't know ahead of time which JDBC
> version the person is going to want to use. It's going to have ugly guts,
> but hopefully it will remain clean to the user other than the performance
> impact of double dynamic dispatch.
>
> Derek
>
>
> On Tue, Sep 29, 2009 at 9:57 AM, David Pollak <
> feeder.of.the.be...@gmail.com> wrote:
>
>>
>>
>> On Tue, Sep 29, 2009 at 8:32 AM, Naftoli Gugenheim 
>> <naftoli...@gmail.com>wrote:
>>
>>>
>>> Exactly. Thanks.
>>> Is that an opton?
>>>
>>
>> I think DynamicProxy is the way to go.
>>
>> Derek -- if you want, I can take a crack at getting to code working.
>>
>>
>>>
>>> -------------------------------------
>>> Viktor Klang<viktor.kl...@gmail.com> wrote:
>>>
>>> On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim <naftoli...@gmail.com
>>> >wrote:
>>>
>>> >
>>> > Another option: Java has a way to dynamically implement an interface. I
>>> > forgot what the classes are called. You supply a delegate and you can
>>> > pattern match on which method is being invoked. In Java 5 the
>>> nonexistent
>>> > method will simply never be invoked, but it won't break code.
>>> >
>>>
>>> Dynamic proxy?
>>>
>>>
>>> >
>>> > -------------------------------------
>>> > Viktor Klang<viktor.kl...@gmail.com> wrote:
>>> >
>>> > On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker <
>>> dchenbec...@gmail.com
>>> > >wrote:
>>> >
>>> > > Can you elaborate on what you mean? I was actually going to look at
>>> how
>>> > > log4jdbc does it and see if I could replicate it.
>>> > >
>>> >
>>> > I haven't really tried this, but if you do:
>>> >
>>> > if you implement methods with the correct signatures in the
>>> LoggedStatement
>>> > and LoggedPreparedStatement, then wrap the invocations to the wrapped
>>> > instances in a try->catch, and if there's an NoSuchMethodException,
>>> return
>>> > some default value?
>>> >
>>> >
>>> >
>>> > >
>>> > > Derek
>>> > >
>>> > > On Tue, Sep 29, 2009 at 5:22 AM, Viktor Klang <
>>> viktor.kl...@gmail.com
>>> > >wrote:
>>> > >
>>> > >> Is it possible to have a  bridge trait for the Statement interface?
>>> > >>
>>> > >>
>>> > >> On Tue, Sep 29, 2009 at 12:16 AM, Derek Chen-Becker <
>>> > >> dchenbec...@gmail.com> wrote:
>>> > >>
>>> > >>> No. I hadn't foreseen this issue, but I understand the importance
>>> of
>>> > have
>>> > >>> Java 5 support. I'm fine with writing and maintaining multiple
>>> versions
>>> > of
>>> > >>> the impls for the various versions, but I wonder if there's any
>>> clean
>>> > way to
>>> > >>> manage this with Maven.
>>> > >>>
>>> > >>> Derek
>>> > >>>
>>> > >>>
>>> > >>> On Mon, Sep 28, 2009 at 4:00 PM, David Pollak <
>>> > >>> feeder.of.the.be...@gmail.com> wrote:
>>> > >>>
>>> > >>>> Crud.  This just isn't going to be easy, is it?
>>> > >>>>
>>> > >>>>
>>> > >>>> On Mon, Sep 28, 2009 at 2:04 PM, Derek Chen-Becker <
>>> > >>>> dchenbec...@gmail.com> wrote:
>>> > >>>>
>>> > >>>>> Another issue, which may be more problematic, is that in my case
>>> I'm
>>> > >>>>> compiling against the java.sql.Statement interface. If I remove
>>> the
>>> > >>>>> troublesome methods so that it compiles for 1.5, it no longer
>>> > compiles for
>>> > >>>>> 1.6 because of the missing methods:
>>> > >>>>>
>>> > >>>>> [WARNING]
>>> > >>>>>
>>> >
>>> /home/software/liftweb/lift-mapper/src/main/scala/net/liftweb/mapper/LoggingStatementWrappers.scala:70:
>>> > >>>>> error: class LoggedStatement needs to be abstract, since method
>>> > isPoolable
>>> > >>>>> in trait Statement of type ()Boolean is not defined
>>> > >>>>> [WARNING] class LoggedStatement(underlying : Statement) extends
>>> > >>>>> Statement with DBLog {
>>> > >>>>> [WARNING]       ^
>>> > >>>>> [WARNING]
>>> > >>>>>
>>> >
>>> /home/software/liftweb/lift-mapper/src/main/scala/net/liftweb/mapper/LoggingStatementWrappers.scala:267:
>>> > >>>>> error: class LoggedPreparedStatement needs to be abstract, since
>>> > method
>>> > >>>>> setNClob in trait PreparedStatement of type
>>> (Int,java.io.Reader)Unit
>>> > is not
>>> > >>>>> defined
>>> > >>>>> [WARNING] class LoggedPreparedStatement (stmt : String,
>>> underlying :
>>> > >>>>> PreparedStatement) extends LoggedStatement(underlying) with
>>> > >>>>> PreparedStatement {
>>> > >>>>> [WARNING]       ^
>>> > >>>>>
>>> > >>>>>
>>> > >>>>> Derek
>>> > >>>>>
>>> > >>>>>
>>> > >>>>> On Mon, Sep 28, 2009 at 2:29 PM, David Pollak <
>>> > >>>>> feeder.of.the.be...@gmail.com> wrote:
>>> > >>>>>
>>> > >>>>>>
>>> > >>>>>>
>>> > >>>>>> On Mon, Sep 28, 2009 at 1:19 PM, Derek Chen-Becker <
>>> > >>>>>> dchenbec...@gmail.com> wrote:
>>> > >>>>>>
>>> > >>>>>>> The issue (and I may be overthinking this) is that we need 1.5
>>> > class
>>> > >>>>>>> libraries to compile against if we want to be able to verify
>>> that
>>> > the code
>>> > >>>>>>> compiles under 1.5. If I, say, delete my JDK 5 install and
>>> decide
>>> > to
>>> > >>>>>>> reinstall it down the road, it's not going to be available
>>> without
>>> > a
>>> > >>>>>>> purchased license.
>>> > >>>>>>>
>>> > >>>>>>
>>> > >>>>>> I can stash away a bunch of different copies of the JDK and give
>>> > them
>>> > >>>>>> to you when you need them.
>>> > >>>>>>
>>> > >>>>>> A 32 bit Linux JDK 1.5 should be enough to at least do smoke
>>> test
>>> > >>>>>> builds with.
>>> > >>>>>>
>>> > >>>>>>
>>> > >>>>>>>
>>> > >>>>>>> Derek
>>> > >>>>>>>
>>> > >>>>>>>
>>> > >>>>>>>
>>> > >>>>>>> On Mon, Sep 28, 2009 at 1:33 PM, David Pollak <
>>> > >>>>>>> feeder.of.the.be...@gmail.com> wrote:
>>> > >>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>> On Mon, Sep 28, 2009 at 11:51 AM, Derek Chen-Becker <
>>> > >>>>>>>> dchenbec...@gmail.com> wrote:
>>> > >>>>>>>>
>>> > >>>>>>>>> My main concern is that after October 30, Java 5 costs money
>>> (I'm
>>> > >>>>>>>>> guessing not a trivial amount, either). I can get the JDK
>>> right
>>> > now, but if
>>> > >>>>>>>>> some bug in the Java libraries pops up that would prevent
>>> things
>>> > from
>>> > >>>>>>>>> working, I don't know how we'll work around that.
>>> > >>>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>> I don't see the condition under which that could happen.  When
>>> we
>>> > >>>>>>>> compile against Java 1.5, we are simply defining the contract
>>> > between our
>>> > >>>>>>>> classes and the library classes.  None of the library "seeps"
>>> into
>>> > our code
>>> > >>>>>>>> (this is not true of Scala traits).  So, as long as the
>>> running
>>> > library has
>>> > >>>>>>>> the classes/methods that we are calling, we're fine.
>>>  Compiling
>>> > against 1.5
>>> > >>>>>>>> simply means that we have fewer calls that we can make.  If
>>> there
>>> > is an
>>> > >>>>>>>> issue in 1.5 that a user is experiencing, that is the user's
>>> > issue, not
>>> > >>>>>>>> ours.  If the code compiles (and runs tests) against 1.5 and
>>> does
>>> > not
>>> > >>>>>>>> generate the particular issue that the user is seeing under
>>> 1.6,
>>> > then that
>>> > >>>>>>>> use has to contact Sun, not us.
>>> > >>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>>>
>>> > >>>>>>>>> Derek
>>> > >>>>>>>>>
>>> > >>>>>>>>> On Mon, Sep 28, 2009 at 12:29 PM, David Pollak <
>>> > >>>>>>>>> feeder.of.the.be...@gmail.com> wrote:
>>> > >>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>> On Mon, Sep 28, 2009 at 11:14 AM, Derek Chen-Becker <
>>> > >>>>>>>>>> dchenbec...@gmail.com> wrote:
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>> I was just about to work on issue #67 (build breaks on Java
>>> 5),
>>> > >>>>>>>>>>> but when I went to get a Java 5 JDK to compile/test with,
>>> Sun
>>> > says that it's
>>> > >>>>>>>>>>> EOL as of October 30, 2009. I don't have a problem fixing
>>> > things to work
>>> > >>>>>>>>>>> with Java 5, but I don't want to do work that's going to be
>>> > tossed out in a
>>> > >>>>>>>>>>> month.
>>> > >>>>>>>>>>>
>>> > >>>>>>>>>>>
>>> > >>>>>>>>>> Lift will be JDK 1.5 compatible for at least 1 year (and
>>> > probably
>>> > >>>>>>>>>> longer).  LinkedIn and SAP are both 1.5 shops.  There are
>>> tons
>>> > of other Bay
>>> > >>>>>>>>>> Area companies (Wells Fargo, Kaiser, etc.) that are also 1.5
>>> > shops.  For the
>>> > >>>>>>>>>> next 2-3 years, OS X 10.5 will be common and 10.5 + old
>>> MacBooks
>>> > == 1.5.
>>> > >>>>>>>>>>
>>> > >>>>>>>>>> It will not be lost work.
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>> Derek
>>> > >>>>>>>>>>>
>>> > >>>>>>>>>>>
>>> > >>>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>> --
>>> > >>>>>>>>>> Lift, the simply functional web framework
>>> http://liftweb.net
>>> > >>>>>>>>>> Beginning Scala http://www.apress.com/book/view/1430219890
>>> > >>>>>>>>>> Follow me: http://twitter.com/dpp
>>> > >>>>>>>>>> Surf the harmonics
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>>
>>> > >>>>>>>>>
>>> > >>>>>>>>>
>>> > >>>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>> --
>>> > >>>>>>>> Lift, the simply functional web framework http://liftweb.net
>>> > >>>>>>>> Beginning Scala http://www.apress.com/book/view/1430219890
>>> > >>>>>>>> Follow me: http://twitter.com/dpp
>>> > >>>>>>>> Surf the harmonics
>>> > >>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>>
>>> > >>>>>>>
>>> > >>>>>>>
>>> > >>>>>>>
>>> > >>>>>>
>>> > >>>>>>
>>> > >>>>>> --
>>> > >>>>>> Lift, the simply functional web framework http://liftweb.net
>>> > >>>>>> Beginning Scala http://www.apress.com/book/view/1430219890
>>> > >>>>>> Follow me: http://twitter.com/dpp
>>> > >>>>>> Surf the harmonics
>>> > >>>>>>
>>> > >>>>>>
>>> > >>>>>>
>>> > >>>>>
>>> > >>>>>
>>> > >>>>>
>>> > >>>>
>>> > >>>>
>>> > >>>> --
>>> > >>>> Lift, the simply functional web framework http://liftweb.net
>>> > >>>> Beginning Scala http://www.apress.com/book/view/1430219890
>>> > >>>> Follow me: http://twitter.com/dpp
>>> > >>>> Surf the harmonics
>>> > >>>>
>>> > >>>>
>>> > >>>>
>>> > >>>
>>> > >>>
>>> > >>>
>>> > >>
>>> > >>
>>> > >> --
>>> > >> Viktor Klang
>>> > >>
>>> > >> Blog: klangism.blogspot.com
>>> > >> Twttr: viktorklang
>>> > >>
>>> > >> Lift Committer - liftweb.com
>>> > >> AKKA Committer - akkasource.org
>>> > >> Cassidy - github.com/viktorklang/Cassidy.git
>>> > >> SoftPub founder: http://groups.google.com/group/softpub
>>> > >>
>>> > >>
>>> > >>
>>> > >>
>>> > >
>>> > > >
>>> > >
>>> >
>>> >
>>> > --
>>> > Viktor Klang
>>> >
>>> > Blog: klangism.blogspot.com
>>> > Twttr: viktorklang
>>> >
>>> > Lift Committer - liftweb.com
>>> > AKKA Committer - akkasource.org
>>> > Cassidy - github.com/viktorklang/Cassidy.git
>>> > SoftPub founder: http://groups.google.com/group/softpub
>>> >
>>> >
>>> >
>>> > >
>>> >
>>>
>>>
>>> --
>>> Viktor Klang
>>>
>>> Blog: klangism.blogspot.com
>>> Twttr: viktorklang
>>>
>>> Lift Committer - liftweb.com
>>> AKKA Committer - akkasource.org
>>> Cassidy - github.com/viktorklang/Cassidy.git
>>> SoftPub founder: http://groups.google.com/group/softpub
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Lift, the simply functional web framework http://liftweb.net
>> Beginning Scala http://www.apress.com/book/view/1430219890
>> Follow me: http://twitter.com/dpp
>> Surf the harmonics
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to