felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Bosschaert <david.bosscha...@gmail.com>
Subject Re: svn commit: r1736059 - /felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
Date Wed, 23 Mar 2016 11:00:45 GMT
FWIW I think this is a really good addition to the Gogo shell. It will
hugely improve the usability and I remember the discussions on the list
about it before.

Personally I don't see an issue with using Java7. Java6 was end of life in
2013. Nearly everyone should be at least on Java7 at this stage. If people
absolutely require old Java support they can still use older releases...

Thanks Guillaume for doing this work!

Cheers,

David

On 23 March 2016 at 09:22, Guillaume Nodet <gnodet@apache.org> wrote:

> 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 <gnodet@apache.org>:
>
> >
> >
> > 2016-03-22 22:18 GMT+01:00 David Jencks <david_jencks@yahoo.com.invalid
> >:
> >
> >> 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 <gnodet@apache.org>
> wrote:
> >> >
> >> > 2016-03-21 20:31 GMT+01:00 David Jencks
> <david_jencks@yahoo.com.invalid
> >> <mailto:david_jencks@yahoo.com.invalid>>:
> >> >
> >> >> 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 <gnodet@apache.org>
> >> wrote:
> >> >>>
> >> >>> 2016-03-21 19:56 GMT+01:00 David Jencks
> >> <david_jencks@yahoo.com.invalid
> >> >> <mailto:david_jencks@yahoo.com.invalid>>:
> >> >>>
> >> >>>> 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 <gnodet@apache.org>
> >> >> 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
> >> <david_jencks@yahoo.com.invalid
> >> >>>>> :
> >> >>>>>
> >> >>>>>> 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, gnodet@apache.org
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: gnodet@redhat.com
> >> >>>>> Web: http://fusesource.com
> >> >>>>> Blog: http://gnodet.blogspot.com/
> >> >>>>
> >> >>>>
> >> >>>
> >> >>>
> >> >>> --
> >> >>> ------------------------
> >> >>> Guillaume Nodet
> >> >>> ------------------------
> >> >>> Red Hat, Open Source Integration
> >> >>>
> >> >>> Email: gnodet@redhat.com <mailto:gnodet@redhat.com>
> >> >>> Web: http://fusesource.com <http://fusesource.com/>
> >> >>> Blog: http://gnodet.blogspot.com/ <http://gnodet.blogspot.com/>
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > ------------------------
> >> > Guillaume Nodet
> >> > ------------------------
> >> > Red Hat, Open Source Integration
> >> >
> >> > Email: gnodet@redhat.com <mailto:gnodet@redhat.com>
> >> > Web: http://fusesource.com <http://fusesource.com/>
> >> > Blog: http://gnodet.blogspot.com/ <http://gnodet.blogspot.com/>
> >>
> >
> >
> >
> > --
> > ------------------------
> > Guillaume Nodet
> > ------------------------
> > Red Hat, Open Source Integration
> >
> > Email: gnodet@redhat.com
> > Web: http://fusesource.com
> > Blog: http://gnodet.blogspot.com/
> >
> >
>
>
> --
> ------------------------
> Guillaume Nodet
> ------------------------
> Red Hat, Open Source Integration
>
> Email: gnodet@redhat.com
> Web: http://fusesource.com
> Blog: http://gnodet.blogspot.com/
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message