Search in sources :

Example 11 with SimpleProblemCollector

use of org.apache.maven.model.building.SimpleProblemCollector in project maven by apache.

the class StringSearchModelInterpolatorTest method testConcurrentInterpolation.

@Test
public void testConcurrentInterpolation() throws Exception {
    final Model model = new Model();
    final Properties p = new Properties();
    p.setProperty("key", "value");
    p.setProperty("key2", "value2");
    p.setProperty("key3", "value3");
    p.setProperty("key4", "value4");
    p.setProperty("key5", "value5");
    final StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
    int numItems = 100;
    final CountDownLatch countDownLatch = new CountDownLatch(1);
    List<Future<SimpleProblemCollector>> futures = new ArrayList<>();
    for (int i = 0; i < numItems; i++) {
        Callable<SimpleProblemCollector> future = () -> {
            final ObjectWithMixedProtection obj = getValueList();
            final ModelBuildingRequest config = createModelBuildingRequest(p);
            countDownLatch.await();
            final SimpleProblemCollector collector = new SimpleProblemCollector();
            interpolator.interpolateObject(obj, model, new File("."), config, collector);
            return collector;
        };
        FutureTask<SimpleProblemCollector> task = new FutureTask<>(future);
        futures.add(task);
        new Thread(task).start();
    }
    // Start all the threads
    countDownLatch.countDown();
    for (Future<SimpleProblemCollector> result : futures) {
        // ArrayIndexOutOfBoundsException are typical indication of threading issues
        SimpleProblemCollector problemCollector = result.get();
        assertProblemFree(problemCollector);
    }
}
Also used : SimpleProblemCollector(org.apache.maven.model.building.SimpleProblemCollector) ModelBuildingRequest(org.apache.maven.model.building.ModelBuildingRequest) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) ArrayList(java.util.ArrayList) Properties(java.util.Properties) CountDownLatch(java.util.concurrent.CountDownLatch) FutureTask(java.util.concurrent.FutureTask) Model(org.apache.maven.model.Model) Future(java.util.concurrent.Future) File(java.io.File) Test(org.junit.jupiter.api.Test)

Example 12 with SimpleProblemCollector

use of org.apache.maven.model.building.SimpleProblemCollector in project maven by apache.

the class StringSearchModelInterpolatorTest method testInterpolateObjectWithStringListFieldAndOneLiteralValue.

@Test
public void testInterpolateObjectWithStringListFieldAndOneLiteralValue() {
    Model model = new Model();
    Properties p = new Properties();
    p.setProperty("key", "value");
    p.setProperty("key2", "value2");
    List<String> values = new ArrayList<>();
    values.add("key");
    values.add("${key2}");
    ObjectWithListField obj = new ObjectWithListField(values);
    StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
    ModelBuildingRequest config = createModelBuildingRequest(p);
    final SimpleProblemCollector collector = new SimpleProblemCollector();
    interpolator.interpolateObject(obj, model, new File("."), config, collector);
    assertProblemFree(collector);
    assertEquals("key", obj.values.get(0));
    assertEquals("value2", obj.values.get(1));
}
Also used : SimpleProblemCollector(org.apache.maven.model.building.SimpleProblemCollector) ModelBuildingRequest(org.apache.maven.model.building.ModelBuildingRequest) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) Model(org.apache.maven.model.Model) ArrayList(java.util.ArrayList) Properties(java.util.Properties) File(java.io.File) Test(org.junit.jupiter.api.Test)

Example 13 with SimpleProblemCollector

use of org.apache.maven.model.building.SimpleProblemCollector in project maven by apache.

the class StringSearchModelInterpolatorTest method testInterpolateObjectWithStringToStringMapField.

@Test
public void testInterpolateObjectWithStringToStringMapField() {
    Model model = new Model();
    Properties p = new Properties();
    p.setProperty("key", "value");
    p.setProperty("key2", "value2");
    Map<String, String> values = new HashMap<>();
    values.put("key", "${key}");
    values.put("key2", "${key2}");
    ObjectWithMapField obj = new ObjectWithMapField(values);
    StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
    ModelBuildingRequest config = createModelBuildingRequest(p);
    final SimpleProblemCollector collector = new SimpleProblemCollector();
    interpolator.interpolateObject(obj, model, new File("."), config, collector);
    assertProblemFree(collector);
    assertEquals("value", obj.values.get("key"));
    assertEquals("value2", obj.values.get("key2"));
}
Also used : SimpleProblemCollector(org.apache.maven.model.building.SimpleProblemCollector) ModelBuildingRequest(org.apache.maven.model.building.ModelBuildingRequest) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) HashMap(java.util.HashMap) Model(org.apache.maven.model.Model) Properties(java.util.Properties) File(java.io.File) Test(org.junit.jupiter.api.Test)

Example 14 with SimpleProblemCollector

use of org.apache.maven.model.building.SimpleProblemCollector in project maven by apache.

the class StringSearchModelInterpolatorTest method testInterpolateObjectWithStringArrayField.

@Test
public void testInterpolateObjectWithStringArrayField() {
    Model model = new Model();
    Properties p = new Properties();
    p.setProperty("key", "value");
    p.setProperty("key2", "value2");
    String[] values = { "${key}", "${key2}" };
    ObjectWithStringArrayField obj = new ObjectWithStringArrayField(values);
    StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
    ModelBuildingRequest config = createModelBuildingRequest(p);
    final SimpleProblemCollector collector = new SimpleProblemCollector();
    interpolator.interpolateObject(obj, model, new File("."), config, collector);
    assertProblemFree(collector);
    assertEquals("value", obj.values[0]);
    assertEquals("value2", obj.values[1]);
}
Also used : SimpleProblemCollector(org.apache.maven.model.building.SimpleProblemCollector) ModelBuildingRequest(org.apache.maven.model.building.ModelBuildingRequest) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) Model(org.apache.maven.model.Model) Properties(java.util.Properties) File(java.io.File) Test(org.junit.jupiter.api.Test)

Example 15 with SimpleProblemCollector

use of org.apache.maven.model.building.SimpleProblemCollector in project maven by apache.

the class StringSearchModelInterpolatorTest method testInterpolateObjectWithStringArrayListField.

@Test
public void testInterpolateObjectWithStringArrayListField() {
    Model model = new Model();
    Properties p = new Properties();
    p.setProperty("key", "value");
    p.setProperty("key2", "value2");
    p.setProperty("key3", "value3");
    p.setProperty("key4", "value4");
    List<String[]> values = new ArrayList<>();
    values.add(new String[] { "${key}", "${key2}" });
    values.add(new String[] { "${key3}", "${key4}" });
    ObjectWithListField obj = new ObjectWithListField(values);
    StringSearchModelInterpolator interpolator = (StringSearchModelInterpolator) createInterpolator();
    ModelBuildingRequest config = createModelBuildingRequest(p);
    final SimpleProblemCollector collector = new SimpleProblemCollector();
    interpolator.interpolateObject(obj, model, new File("."), config, collector);
    assertProblemFree(collector);
    assertEquals("value", ((String[]) obj.values.get(0))[0]);
    assertEquals("value2", ((String[]) obj.values.get(0))[1]);
    assertEquals("value3", ((String[]) obj.values.get(1))[0]);
    assertEquals("value4", ((String[]) obj.values.get(1))[1]);
}
Also used : SimpleProblemCollector(org.apache.maven.model.building.SimpleProblemCollector) ModelBuildingRequest(org.apache.maven.model.building.ModelBuildingRequest) DefaultModelBuildingRequest(org.apache.maven.model.building.DefaultModelBuildingRequest) Model(org.apache.maven.model.Model) ArrayList(java.util.ArrayList) Properties(java.util.Properties) File(java.io.File) Test(org.junit.jupiter.api.Test)

Aggregations

SimpleProblemCollector (org.apache.maven.model.building.SimpleProblemCollector)102 Test (org.junit.jupiter.api.Test)97 Model (org.apache.maven.model.Model)37 File (java.io.File)26 Properties (java.util.Properties)21 DefaultModelBuildingRequest (org.apache.maven.model.building.DefaultModelBuildingRequest)20 ModelBuildingRequest (org.apache.maven.model.building.ModelBuildingRequest)16 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 Dependency (org.apache.maven.model.Dependency)4 Scm (org.apache.maven.model.Scm)3 Organization (org.apache.maven.model.Organization)2 Repository (org.apache.maven.model.Repository)2 CountDownLatch (java.util.concurrent.CountDownLatch)1 Future (java.util.concurrent.Future)1 FutureTask (java.util.concurrent.FutureTask)1 Build (org.apache.maven.model.Build)1 InputLocation (org.apache.maven.model.InputLocation)1 InputSource (org.apache.maven.model.InputSource)1 Resource (org.apache.maven.model.Resource)1