Awesome, thanks. I'm ok with this change:

-                moduleLocations.removeIf(file -> !match((String) modules,
file));
-
+                for (final Iterator<File> i = moduleLocations.iterator();
i.hasNext(); ) {
+                    final File file = i.next();
+                    if (!match((String) modules, file)) {
+                        i.remove();
+                    }
+                }

I don't think anyone else has expressed an opinion one way or another, so
I'd leave your for-loop as it is.

Jon

On Mon, Dec 31, 2018 at 2:07 PM Gurkan Erdogdu <[email protected]> wrote:

> Hi Jon
> I will update my patch to update wildcard import, loop and diamond <>
> operator.
> Regards
> Gurkan
>
> On Mon, Dec 31, 2018 at 2:38 PM Jonathan Gallimore <
> [email protected]> wrote:
>
> > Is there any particular reason for flipping the imports to wildcards? We
> > tend to import the individual classes elsewhere in the codebase. My
> > personal preference would be to leave those as individual imports. It
> > doesn't make the import list that much longer, and I find its clearer
> what
> > is being imported and used. IDEs tend to fold those away unless you're
> > specifically looking at them too.
> >
> > I think like the other changes, and do think it looks neater and easier
> to
> > read.
> >
> > I personally prefer
> >
> > map = new HashMap<>();
> >
> > over
> >
> > map = new HashMap<Object, Object>();
> >
> > but I don't think that's a big deal.
> >
> > I also note this change:
> >
> > -                moduleLocations.removeIf(file -> !match((String)
> modules,
> > file));
> > -
> > +                for (final Iterator<File> i =
> moduleLocations.iterator();
> > i.hasNext(); ) {
> > +                    final File file = i.next();
> > +                    if (!match((String) modules, file)) {
> > +                        i.remove();
> > +                    }
> > +                }
> >
> > Which is changing from a lambda to a loop. I'd probably have done it like
> > this, but the effect is the same:
> >
> >                 final Iterator<File> iterator =
> moduleLocations.iterator();
> >                 while (iterator.hasNext()) {
> >                     final File file = iterator.next();
> >                     if (!match((String) modules, file)) {
> >                         iterator.remove();
> >                     }
> >                 }
> >
> > IntelliJ is definitely preferring the moduleLocations.removeIf, and will
> > refactor both of those loops to it with one keystroke. I have the what is
> > probably an unpopular opinion which is that I actually prefer the loop
> over
> > the lambda. The reasons are:
> >
> > 1. Backporting changes is much harder when you have to work around
> language
> > changes like this
> > 2. I personally find lots of things crammed into one line harder to read,
> > and in this particular case, there's a cast and a negation (so a double
> > negative) in the removeIf.
> >
> > Jon
> >
> > On Mon, Dec 31, 2018 at 10:21 AM Jonathan Gallimore <
> > [email protected]> wrote:
> >
> > > Yep, I'll take a look. Thanks for the PR.
> > >
> > > Jon
> > >
> > > On Mon, Dec 31, 2018 at 9:10 AM Gurkan Erdogdu <[email protected]>
> > > wrote:
> > >
> > >> Hi
> > >> I have created a PR (https://github.com/apache/tomee/pull/332) for
> > >> (TOMEE-2435)
> > >> Simplify the Code in org.apache.openejb.OpenEjbContainer$Provider
> > >> <https://issues.apache.org/jira/browse/TOMEE-2435>
> > >>
> > >> If anybody can check and merge, it is appreciated :)
> > >> Regards.
> > >> Gurkan
> > >>
> > >
> >
>

Reply via email to