Actually, this is a bit more complicated than I expected.
While removing all the JDK8 dependency does not cause any problem,
I forgot about the JDK7 ones, mainly the new NIO api
using Path and Channels.

Is your requirement really JDK6 or could your upgrade to JDK7 ?

Guillaume

2016-03-23 8:30 GMT+01:00 Guillaume Nodet <[email protected]>:

>
>
> 2016-03-22 22:18 GMT+01:00 David Jencks <[email protected]>:
>
>> For my usage of gogo, the new behavior would be a good thing, but
>> maintaining compatibility with java 6 for the main parts of gogo is really
>> needed.
>
>
> Ok.
>
>
>> Do I understand from what you said below that this is practical, and that
>> the new line module is not required for use of gogo?
>
>
> For the gogo-runtime module, yes, it's mostly practical.  The gogo-shell
> module has not been modified at all.
>
> The new gogo-jline module is similar the same as the gogo-shell one.  The
> main difference is that it uses jline instead of very basic line reading
> (see Console#getLine in gogo-shell).
> Jline provides cursor movement, history, completion, syntax highlighting,
> multi-line reading, ...
> This module relies on JLine 3.0 and require Java 8.
>
>
>>  If so would you have time to do this?  It would be a really good
>> exercise for me to learn a little java 8 by removing its’ use, but I may
>> not have time soon :-)
>>
>
> Yes.  I'll work on it.
>
>
>>
>> In any case one or more jira items explaining what has changed would be
>> really really great.
>>
>
> Got it, I'll create a few JIRA.
>
>
>>
>> thanks
>> david jencks
>>
>> > On Mar 21, 2016, at 1:17 PM, Guillaume Nodet <[email protected]> wrote:
>> >
>> > 2016-03-21 20:31 GMT+01:00 David Jencks <[email protected]
>> <mailto:[email protected]>>:
>> >
>> >> No matter how much or little mailing list discussion there is I prefer
>> >> that there be a jira item tracking actual commits, and that the jira
>> item
>> >> should explain the work actually done.
>> >>
>> >> Reading the user list discussion you pointed to it seemed rather
>> >> incidental that you are requiring java 8.
>> >>
>> >> How much of the work actually really requires java 8?  I’m all for
>> >> improving gogo but my usage needs to support java 6 for a few more
>> years I
>> >> fear.  I’d like to understand better the implications of what you are
>> doing
>> >> before coming to any conclusions.
>> >>
>> >
>> > For the runtime, a few things have been introduced such as a Path for
>> the
>> > CommandSession#currentDir() which would have to be changed to a File, a
>> few
>> > static interface methods that would have to be moved to utility classes,
>> > lots of <> operators and a few usage of the stream api and lambdas.  But
>> > there's no real need for java 8, it's mostly implementation details and
>> > syntactic sugar.
>> >
>> > That would be different for the jline module which depends on jline
>> > 3.0-SNAPSHOT which heavily depends on JDK 8, so there's no point in even
>> > trying to switch that module back to JDK 6.
>> >
>> > However, the runtime has a few incompatibilities, even if the tests have
>> > been mostly unchanged.
>> > It's because additional syntax have been added, so old commands may be
>> > parsed / interpreted differently now, because of those new features.
>> > For example, the following command now leads to a "bar" file containing
>> > "foo":
>> >    echo foo > bar
>> > Clearly, the behaviour is different from the previous one.
>> >
>> > So this is really a new major version of gogo runtime, even if the API
>> > itself is fully compatible afaik.
>> > So a possibility would be to keep both the previous and new versions of
>> > gogo in trunk so that we can maintain both, which may be easier than
>> using
>> > a branch in svn.
>> >
>> >
>> >
>> >>
>> >> thanks
>> >> david jencks
>> >>
>> >>> On Mar 21, 2016, at 12:08 PM, Guillaume Nodet <[email protected]>
>> wrote:
>> >>>
>> >>> 2016-03-21 19:56 GMT+01:00 David Jencks
>> <[email protected]
>> >> <mailto:[email protected]>>:
>> >>>
>> >>>> So have you made gogo trunk java 8 only?
>> >>>>
>> >>>> I’m rather unhappy that there don’t appear to be any jira items
>> >> explaining
>> >>>> this work.
>> >>>>
>> >>>
>> >>> Yeah, again, I thought this has been somewhat discussed months ago on
>> the
>> >>> dev list.
>> >>> I'd be happy to revert and restart the discussion from scratch if you
>> >> want.
>> >>>
>> >>>
>> >>>>
>> >>>> thanks
>> >>>> david jencks
>> >>>>
>> >>>>> On Mar 21, 2016, at 11:38 AM, Guillaume Nodet <[email protected]>
>> >> wrote:
>> >>>>>
>> >>>>> All those commits are basically related to two things that have been
>> >>>>> partially covered in this thread:
>> >>>>> http://www.mail-archive.com/users%40felix.apache.org/msg16883.html
>> >>>>> Given nobody reacted or opposed to the work, I decided to commit it.
>> >>>>> Though I now realised it was on user@ and not @dev
>> >>>>>
>> >>>>> It basically comes down to:
>> >>>>> * a jline based shell
>> >>>>> * enhancements to the gogo runtime to provide better parsing, job
>> >>>>> control, redirections, parameter expansion
>> >>>>>
>> >>>>> Cheers,
>> >>>>> Guillaume Nodet
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> 2016-03-21 19:02 GMT+01:00 David Jencks
>> <[email protected]
>> >>>>> :
>> >>>>>
>> >>>>>> Are there jira work items covering this really long sequence of
>> >> commits?
>> >>>>>> I really like some pointer to a description of what’s going on with
>> >>>> commits.
>> >>>>>>
>> >>>>>> thanks
>> >>>>>> david jencks
>> >>>>>>
>> >>>>>>> On Mar 21, 2016, at 10:00 AM, [email protected] wrote:
>> >>>>>>>
>> >>>>>>> Author: gnodet
>> >>>>>>> Date: Mon Mar 21 17:00:11 2016
>> >>>>>>> New Revision: 1736059
>> >>>>>>>
>> >>>>>>> URL: http://svn.apache.org/viewvc?rev=1736059&view=rev
>> >>>>>>> Log:
>> >>>>>>> Remove dependency on SSH
>> >>>>>>>
>> >>>>>>> Modified:
>> >>>>>>>
>> >>>>>>
>> >>>>
>> >>
>> felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
>> >>>>>>>
>> >>>>>>> Modified:
>> >>>>>>
>> >>>>
>> >>
>> felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
>> >>>>>>> URL:
>> >>>>>>
>> >>>>
>> >>
>> http://svn.apache.org/viewvc/felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java?rev=1736059&r1=1736058&r2=1736059&view=diff
>> >>>>>>>
>> >>>>>>
>> >>>>
>> >>
>> ==============================================================================
>> >>>>>>> ---
>> >>>>>>
>> >>>>
>> >>
>> felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
>> >>>>>> (original)
>> >>>>>>> +++
>> >>>>>>
>> >>>>
>> >>
>> felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
>> >>>>>> Mon Mar 21 17:00:11 2016
>> >>>>>>> @@ -75,7 +75,6 @@ import org.apache.felix.gogo.api.Process
>> >>>>>>> import org.apache.felix.gogo.jline.Shell.Context;
>> >>>>>>> import org.apache.felix.service.command.CommandProcessor;
>> >>>>>>> import org.apache.felix.service.command.CommandSession;
>> >>>>>>> -import org.apache.sshd.common.util.OsUtils;
>> >>>>>>> import org.jline.builtins.Commands;
>> >>>>>>> import org.jline.builtins.Less;
>> >>>>>>> import org.jline.builtins.Nano;
>> >>>>>>> @@ -89,6 +88,7 @@ import org.jline.utils.AttributedString;
>> >>>>>>> import org.jline.utils.AttributedStringBuilder;
>> >>>>>>> import org.jline.utils.AttributedStyle;
>> >>>>>>> import org.jline.utils.InfoCmp.Capability;
>> >>>>>>> +import org.jline.utils.OSUtils;
>> >>>>>>>
>> >>>>>>> /**
>> >>>>>>> * Posix-like utilities.
>> >>>>>>> @@ -1924,7 +1924,7 @@ public class Posix {
>> >>>>>>>          perms.add(PosixFilePermission.OTHERS_WRITE);
>> >>>>>>>      }
>> >>>>>>>
>> >>>>>>> -        if (f.canExecute() || (OsUtils.isWin32() &&
>> >>>>>> isWindowsExecutable(f.getName()))) {
>> >>>>>>> +        if (f.canExecute() || (OSUtils.IS_WINDOWS &&
>> >>>>>> isWindowsExecutable(f.getName()))) {
>> >>>>>>>          perms.add(PosixFilePermission.OWNER_EXECUTE);
>> >>>>>>>          perms.add(PosixFilePermission.GROUP_EXECUTE);
>> >>>>>>>          perms.add(PosixFilePermission.OTHERS_EXECUTE);
>> >>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>> --
>> >>>>> ------------------------
>> >>>>> Guillaume Nodet
>> >>>>> ------------------------
>> >>>>> Red Hat, Open Source Integration
>> >>>>>
>> >>>>> Email: [email protected]
>> >>>>> Web: http://fusesource.com
>> >>>>> Blog: http://gnodet.blogspot.com/
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>> --
>> >>> ------------------------
>> >>> Guillaume Nodet
>> >>> ------------------------
>> >>> Red Hat, Open Source Integration
>> >>>
>> >>> Email: [email protected] <mailto:[email protected]>
>> >>> Web: http://fusesource.com <http://fusesource.com/>
>> >>> Blog: http://gnodet.blogspot.com/ <http://gnodet.blogspot.com/>
>> >>
>> >
>> >
>> >
>> > --
>> > ------------------------
>> > Guillaume Nodet
>> > ------------------------
>> > Red Hat, Open Source Integration
>> >
>> > Email: [email protected] <mailto:[email protected]>
>> > Web: http://fusesource.com <http://fusesource.com/>
>> > Blog: http://gnodet.blogspot.com/ <http://gnodet.blogspot.com/>
>>
>
>
>
> --
> ------------------------
> Guillaume Nodet
> ------------------------
> Red Hat, Open Source Integration
>
> Email: [email protected]
> Web: http://fusesource.com
> Blog: http://gnodet.blogspot.com/
>
>


-- 
------------------------
Guillaume Nodet
------------------------
Red Hat, Open Source Integration

Email: [email protected]
Web: http://fusesource.com
Blog: http://gnodet.blogspot.com/

Reply via email to