[Lift] Re: Java 5 support?

2009-09-30 Thread Derek Chen-Becker
OK, here it is:

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

Derek

On Tue, Sep 29, 2009 at 10:10 AM, Derek Chen-Becker
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 
>> 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 wrote:
>>>
>>> On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim >> >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 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 

[Lift] Re: Java 5 support?

2009-09-29 Thread Derek Chen-Becker
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  wrote:

>
>
> On Tue, Sep 29, 2009 at 8:32 AM, Naftoli Gugenheim 
> 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 wrote:
>>
>> On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim > >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 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 > > >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
>>

[Lift] Re: Java 5 support?

2009-09-29 Thread David Pollak
On Tue, Sep 29, 2009 at 8:32 AM, Naftoli Gugenheim 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 wrote:
>
> On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim  >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 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  > >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
> > > so

[Lift] Re: Java 5 support?

2009-09-29 Thread Naftoli Gugenheim

Exactly. Thanks.
Is that an opton?

-
Viktor Klang wrote:

On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim 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 wrote:
>
> On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker  >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  >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
>  t

[Lift] Re: Java 5 support?

2009-09-29 Thread Kevin Wright

On Tue, Sep 29, 2009 at 3:46 PM, Viktor Klang  wrote:
>
>
> On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim 
> 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?
>

Sounds like it to me :)

>>
>> -
>> Viktor Klang wrote:
>>
>> On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker
>> 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
>> > 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 

[Lift] Re: Java 5 support?

2009-09-29 Thread Naftoli Gugenheim

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. 

-
Viktor Klang wrote:

On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker 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 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 

[Lift] Re: Java 5 support?

2009-09-29 Thread Viktor Klang
On Tue, Sep 29, 2009 at 4:44 PM, Naftoli Gugenheim 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 wrote:
>
> On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker  >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  >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 m

[Lift] Re: Java 5 support?

2009-09-29 Thread Viktor Klang
On Tue, Sep 29, 2009 at 3:47 PM, Derek Chen-Becker 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 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

[Lift] Re: Java 5 support?

2009-09-29 Thread Derek Chen-Becker
Argh. log4jdbc has two source trees, one for JDK 1.4 and one for JDK 6 :(

On Tue, Sep 29, 2009 at 7:47 AM, Derek Chen-Becker 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.
>
> Derek
>
>
> On Tue, Sep 29, 2009 at 5:22 AM, Viktor Klang 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

[Lift] Re: Java 5 support?

2009-09-29 Thread Derek Chen-Becker
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.

Derek

On Tue, Sep 29, 2009 at 5:22 AM, Viktor Klang 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  > 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 pro

[Lift] Re: Java 5 support?

2009-09-29 Thread Viktor Klang
Is it possible to have a  bridge trait for the Statement interface?

On Tue, Sep 29, 2009 at 12:16 AM, Derek Chen-Becker
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 > > 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] Re: Java 5 support?

2009-09-28 Thread Derek Chen-Becker
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  wrote:

> Crud.  This just isn't going to be easy, is it?
>
>
> On Mon, Sep 28, 2009 at 2:04 PM, Derek Chen-Becker 
> 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] Re: Java 5 support?

2009-09-28 Thread Ross Mellgren
In some code we have at work that has to support Java 1.6 and down for  
certain things, we had to resort to having multiple versions and  
dynamically Class.forName the right one in at runtime. I would be  
overjoyed to hear of a better solution :-/

-Ross

On Sep 28, 2009, at 6:00 PM, David Pollak wrote:

> Crud.  This just isn't going to be easy, is it?
>
> On Mon, Sep 28, 2009 at 2:04 PM, Derek Chen-Becker  > 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  > wrote:
>
>
> On Mon, Sep 28, 2009 at 1:19 PM, Derek Chen-Becker  > 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  > wrote:
>
>
> On Mon, Sep 28, 2009 at 11:51 AM, Derek Chen-Becker  > 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  > wrote:
>
>
> On Mon, Sep 28, 2009 at 11:14 AM, Derek Chen-Becker  > 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
>
> >


--~--~-~--~~~---

[Lift] Re: Java 5 support?

2009-09-28 Thread David Pollak
Crud.  This just isn't going to be easy, is it?

On Mon, Sep 28, 2009 at 2:04 PM, Derek Chen-Becker 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 > > 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:/

[Lift] Re: Java 5 support?

2009-09-28 Thread Derek Chen-Becker
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  wrote:

>
>
> On Mon, Sep 28, 2009 at 1:19 PM, Derek Chen-Becker 
> 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
>
> >
>

--~--~-~--~~~---~--~~
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
-~--~--

[Lift] Re: Java 5 support?

2009-09-28 Thread David Pollak
On Mon, Sep 28, 2009 at 1:19 PM, Derek Chen-Becker 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

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Java 5 support?

2009-09-28 Thread Derek Chen-Becker
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.

Derek


On Mon, Sep 28, 2009 at 1:33 PM, David Pollak  wrote:

>
>
> On Mon, Sep 28, 2009 at 11:51 AM, Derek Chen-Becker  > 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
>
> >
>

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Java 5 support?

2009-09-28 Thread David Pollak
On Mon, Sep 28, 2009 at 11:51 AM, Derek Chen-Becker
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

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Java 5 support?

2009-09-28 Thread Viktor Klang
On Mon, Sep 28, 2009 at 8:51 PM, Derek Chen-Becker 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.
>

It's rather simple, supply and demand, if there's a demand for us to keep
Java5 compatibility, we'll need to see what we can do to fulfill that need,
and if that costs money, then the demandees will need to open the wallets.


>
> 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
>>
>>
>>
>>
>
> >
>


-- 
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

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Java 5 support?

2009-09-28 Thread Derek Chen-Becker
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.

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  > 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
>
>
> >
>

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Java 5 support?

2009-09-28 Thread David Pollak
On Mon, Sep 28, 2009 at 11:14 AM, Derek Chen-Becker
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

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Java 5 support?

2009-09-28 Thread Timothy Perrett

Hmm - had this problem the other day. The only real downside of not  
letting it build on 1.5 from my position is that people on Mac will  
need to tweak the PATH because the default JDK is 5, not 6 (which is  
installed too, oddly)

Might be some others, but I cant think of them.

Cheers, Tim

On 28 Sep 2009, at 19:14, Derek Chen-Becker 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.
>
> Derek
>
> >


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---