package com.example; import org.apache.tapestry5.ioc.OrderedConfiguration; import org.apache.tapestry5.ioc.annotations.Startup; import java.util.List; public class ExtraRunnableModule { static class InvokeCounts { static int startupInvokeCount = 0; static int contributionInvokeCount = 0; static void reset() { startupInvokeCount = 0; } } @Startup public void doStartup() { InvokeCounts.startupInvokeCount++; } public ExtraRunnable buildExtraRunnable(final List<Runnable> configuration) { return new ExtraRunnable() { @Override public void runOrThrow() throws Exception { run(); } @Override public void run() { for (Runnable r : configuration) { r.run(); } } }; } public void contributeExtraRunnable(OrderedConfiguration<Runnable> configuration) { configuration.add("Solo", new Runnable() { @Override public void run() { InvokeCounts.contributionInvokeCount++; } }); } }