[Releng] Support specifying the testing timeout.
diff --git a/plugins/org.eclipse.oomph.setup.installer/src/org/eclipse/oomph/setup/internal/installer/MarketplaceCatalogGenerator.java b/plugins/org.eclipse.oomph.setup.installer/src/org/eclipse/oomph/setup/internal/installer/MarketplaceCatalogGenerator.java
index 273eb40..57b94f9 100644
--- a/plugins/org.eclipse.oomph.setup.installer/src/org/eclipse/oomph/setup/internal/installer/MarketplaceCatalogGenerator.java
+++ b/plugins/org.eclipse.oomph.setup.installer/src/org/eclipse/oomph/setup/internal/installer/MarketplaceCatalogGenerator.java
@@ -144,6 +144,8 @@
private IMetadataRepositoryManager manager;
+ private long await = 60;
+
@SuppressWarnings("restriction")
public Object start(IApplicationContext context) throws Exception
{
@@ -168,6 +170,10 @@
{
nodeURIs.put("", URI.createURI(arguments[++i]));
}
+ if ("-await".equals(option))
+ {
+ await = Integer.parseInt(arguments[++i]);
+ }
}
}
@@ -795,6 +801,7 @@
long startTesting = System.currentTimeMillis();
System.out.println("Loaded repositories : " + (startTesting - startRepositoryLoads) / 1000 + " seconds");
+ System.out.println("Start testing for at most " + await + " minutes");
test();
long finishTesting = System.currentTimeMillis();
System.out.println("Testing : " + (finishTesting - startTesting) / 1000 + " seconds");
@@ -833,8 +840,12 @@
private void generateMinimizedResult()
{
+ System.out.println("Generating minimized result from:" + getResolvedResourceURI());
+
Resource resource = resourceSet.getResource(getResolvedResourceURI(), true);
+ System.out.println("Loaded result from:" + getResolvedResourceURI());
+
Set<EObject> objectsToDelete = new HashSet<EObject>();
for (Iterator<EObject> it = resource.getAllContents(); it.hasNext();)
{
@@ -871,6 +882,7 @@
try
{
+ System.out.println("Saving to :" + getResolvedMinimizedResourceURI());
resource.save(Collections.singletonMap(XMLResource.OPTION_LINE_WIDTH, Integer.MAX_VALUE));
}
catch (IOException ex)
@@ -1084,7 +1096,15 @@
}
executor.shutdown();
- executor.awaitTermination(1, TimeUnit.HOURS);
+ boolean terminated = executor.awaitTermination(await, TimeUnit.MINUTES);
+ if (terminated)
+ {
+ System.out.println("Testing normally.");
+ }
+ else
+ {
+ System.out.println("Testing terminated with a timeout after " + await + " minutes");
+ }
try
{