The build processes use to take from 45min to 2:21h.

On Sat, Feb 18, 2017 at 12:47 PM, Tibor Digana <tibor.dig...@googlemail.com>
wrote:

> I am waiting for Michael's "go on".
> There are 58 TestNG ITs and this is not nice fix, however it is god but
> the rootcause is that surefire-integration-tests POM has testng default
> version 5.7 and that is the roortcause of system prop duplicates. I need to
> find someone who will update 58 tests after we and Michael says that the
> build is passed.
> Let's see what Stephan's build on Mac says.
> Fixing 58 test can be done later, does not block Maven.
>
>
> On Sat, Feb 18, 2017 at 12:25 PM, Hervé BOUTEMY <herve.bout...@free.fr>
> wrote:
>
>> IIUC, this one is a good enhancement to integrate, since it makes
>> Surefire more
>> reliable (not relying on the way multiple "-Dmyprop=" is handled)
>>
>> Then there should just be a Jira issue created, and this fix integrated to
>> Surefire master without waiting, isn't it?
>>
>> Or do you fear that this change can have unexpected impact?
>>
>> Regards,
>>
>> Hervé
>>
>> Le jeudi 16 février 2017, 17:42:07 CET tibordig...@apache.org a écrit :
>> > Repository: maven-surefire
>> > Updated Branches:
>> >   refs/heads/SUREFIRE_SYSPROP_DUPLICATES [created] ef5b0f460
>> >
>> >
>> > SUREFIRE_SYSPROP_DUPLICATES
>> >
>> >
>> > Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
>> > Commit:
>> > http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/ef5b0f46
>> Tree:
>> > http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/ef5b0f46
>> Diff:
>> > http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/ef5b0f46
>> >
>> > Branch: refs/heads/SUREFIRE_SYSPROP_DUPLICATES
>> > Commit: ef5b0f460021ad6f827d75cde38f888f37a54415
>> > Parents: 179abbf
>> > Author: Tibor17 <tibo...@lycos.com>
>> > Authored: Thu Feb 16 18:40:45 2017 +0100
>> > Committer: Tibor17 <tibo...@lycos.com>
>> > Committed: Thu Feb 16 18:40:45 2017 +0100
>> >
>> > ----------------------------------------------------------------------
>> >  .../surefire/its/fixture/MavenLauncher.java     | 45
>> ++++++++++++++++---
>> >  .../surefire/its/fixture/MavenLauncherTest.java | 47
>> ++++++++++++++++++++
>> >  .../surefire/its/fixture/SurefireLauncher.java  |  6 +--
>> >  3 files changed, 88 insertions(+), 10 deletions(-)
>> > ----------------------------------------------------------------------
>> >
>> >
>> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e
>> f5b0f46/surefire
>> > -integration-tests/src/test/java/org/apache/maven/surefire/
>> its/fixture/Maven
>> > Launcher.java
>> > ----------------------------------------------------------------------
>> diff
>> > --git
>> > a/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncher.java
>> > b/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncher.java index 1198fcb..0945068 100755
>> > ---
>> > a/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncher.java +++
>> > b/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncher.java @@ -19,18 +19,22 @@ package
>> > org.apache.maven.surefire.its.fixture; * under the License.
>> >   */
>> >
>> > +import org.apache.commons.lang.text.StrSubstitutor;
>> > +import org.apache.maven.it.VerificationException;
>> > +import org.apache.maven.it.Verifier;
>> > +import org.apache.maven.it.util.ResourceExtractor;
>> > +import org.apache.maven.shared.utils.io.FileUtils;
>> > +
>> >  import java.io.File;
>> >  import java.io.IOException;
>> >  import java.net.URL;
>> >  import java.util.ArrayList;
>> >  import java.util.HashMap;
>> >  import java.util.List;
>> > +import java.util.ListIterator;
>> >  import java.util.Map;
>> > -import org.apache.commons.lang.text.StrSubstitutor;
>> > -import org.apache.maven.it.VerificationException;
>> > -import org.apache.maven.it.Verifier;
>> > -import org.apache.maven.it.util.ResourceExtractor;
>> > -import org.apache.maven.shared.utils.io.FileUtils;
>> > +
>> > +import static java.util.Collections.unmodifiableList;
>> >
>> >  /**
>> >   * Encapsulate all needed features to start a maven run
>> > @@ -203,13 +207,13 @@ public class MavenLauncher
>> >
>> >      public MavenLauncher skipClean()
>> >      {
>> > -        goals.add( "-Dclean.skip=true" );
>> > +        writeGoal( "-Dclean.skip=true" );
>> >          return this;
>> >      }
>> >
>> >      public MavenLauncher addGoal( String goal )
>> >      {
>> > -        goals.add( goal );
>> > +        writeGoal( goal );
>> >          return this;
>> >      }
>> >
>> > @@ -223,6 +227,33 @@ public class MavenLauncher
>> >          return conditionalExec( "test" );
>> >      }
>> >
>> > +    List<String> getGoals()
>> > +    {
>> > +        return unmodifiableList( goals );
>> > +    }
>> > +
>> > +    private void writeGoal( String newGoal )
>> > +    {
>> > +        if ( newGoal != null && newGoal.startsWith( "-D" ) )
>> > +        {
>> > +            final String sysPropKey =
>> > +                    newGoal.contains( "=" ) ? newGoal.substring( 0,
>> > newGoal.indexOf( '=' ) ) : newGoal; +
>> > +            final String sysPropStarter = sysPropKey + "=";
>> > +
>> > +            for ( ListIterator<String> it = goals.listIterator();
>> > it.hasNext(); ) +            {
>> > +                String goal = it.next();
>> > +                if ( goal.equals( sysPropKey ) || goal.startsWith(
>> > sysPropStarter ) ) +                {
>> > +                    it.set( newGoal );
>> > +                    return;
>> > +                }
>> > +            }
>> > +        }
>> > +        goals.add( newGoal );
>> > +    }
>> > +
>> >      private OutputValidator conditionalExec(String goal)
>> >      {
>> >          OutputValidator verify;
>> >
>> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e
>> f5b0f46/surefire
>> > -integration-tests/src/test/java/org/apache/maven/surefire/
>> its/fixture/Maven
>> > LauncherTest.java
>> > ----------------------------------------------------------------------
>> diff
>> > --git
>> > a/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncherTest.java
>> > b/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncherTest.java new file mode 100644
>> > index 0000000..4a638b6
>> > --- /dev/null
>> > +++
>> > b/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/MavenLauncherTest.java @@ -0,0 +1,47 @@
>> > +package org.apache.maven.surefire.its.fixture;
>> > +
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements.  See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership.  The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License.  You may obtain a copy of the License at
>> > + *
>> > + *     http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied.  See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +import org.junit.Test;
>> > +
>> > +import static org.hamcrest.CoreMatchers.is;
>> > +import static org.junit.Assert.assertThat;
>> > +import static org.hamcrest.CoreMatchers.hasItems;
>> > +
>> > +/**
>> > + * @author <a href="mailto:tibordig...@apache.org";>Tibor Digana
>> > (tibor17)</a> + * @since 2.19.2
>> > + */
>> > +public class MavenLauncherTest
>> > +{
>> > +    @Test
>> > +    public void shouldNotDuplicateSystemProperties()
>> > +    {
>> > +        MavenLauncher launcher = new MavenLauncher( getClass(), "", ""
>> )
>> > +                                         .addGoal( "-DskipTests" )
>> > +                                         .addGoal( "-Dx=a" )
>> > +                                         .addGoal( "-DskipTests" )
>> > +                                         .addGoal( "-Dx=b" );
>> > +
>> > +        assertThat( launcher.getGoals(), hasItems( "-Dx=b",
>> "-DskipTests" )
>> > ); +
>> > +        assertThat( launcher.getGoals().size(), is( 2 ) );
>> > +    }
>> > +}
>> >
>> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e
>> f5b0f46/surefire
>> > -integration-tests/src/test/java/org/apache/maven/surefire/
>> its/fixture/Suref
>> > ireLauncher.java
>> > ----------------------------------------------------------------------
>> diff
>> > --git
>> > a/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/SurefireLauncher.java
>> > b/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/SurefireLauncher.java index 23a09b0..1c78680 100755
>> > ---
>> > a/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/SurefireLauncher.java +++
>> > b/surefire-integration-tests/src/test/java/org/apache/maven/
>> surefire/its/fi
>> > xture/SurefireLauncher.java @@ -42,7 +42,7 @@ public class
>> SurefireLauncher
>> >
>> >      private final MavenLauncher mavenLauncher;
>> >
>> > -    private final String testNgVersion = System.getProperty(
>> > "testng.version" ); +    private final String testNgVersion =
>> > System.getProperty( "testng.version" );//todo
>> >
>> >      private final String surefireVersion = System.getProperty(
>> > "surefire.version" );
>> >
>> > @@ -129,14 +129,14 @@ public class SurefireLauncher
>> >
>> >          if ( this.testNgVersion != null )
>> >          {
>> > -            goals1.add( "-DtestNgVersion=" + testNgVersion );
>> > +            goals1.add( "-DtestNgVersion=" + testNgVersion );//todo
>> >
>> >              ArtifactVersion v = new DefaultArtifactVersion(
>> testNgVersion
>> > ); try
>> >              {
>> >                  if ( VersionRange.createFromVersionSpec( "(,5.12.1)"
>> > ).containsVersion( v ) ) {
>> > -                    goals1.add( "-DtestNgClassifier=jdk15" );
>> > +                    goals1.add( "-DtestNgClassifier=jdk15" );//todo
>> >                  }
>> >              }
>> >              catch ( InvalidVersionSpecificationException e )
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
>>
>
>
> --
> Cheers
> Tibor
>



-- 
Cheers
Tibor

Reply via email to