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);
}
}
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));
}
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"));
}
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]);
}
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]);
}
Aggregations