package jetbrick.template;
import java.io.StringWriter;
import java.util.Map;
import java.util.Properties;
import jetbrick.template.utils.StringUtils;
import org.junit.Assert;
import org.junit.Test;
public class ConcurrentCompiledTestCase {
@Test
public void compile() throws Exception {
Properties config = new Properties();
//config.put(JetConfig.COMPILE_TOOL, JdtCompiler.class.getName());
config.put(JetConfig.COMPILE_DEBUG, "true");
final JetEngine engine = JetEngine.create(config);
final String source = StringUtils.repeat("abc${'123'.asString().asInt().asDefault(0)}", 200);
ThreadGroup g = new ThreadGroup("a");
for (int i = 0; i < 10; i++) {
new Thread(g, "t-" + i) {
@Override
public void run() {
JetTemplate template = engine.createTemplate(source);
StringWriter out = new StringWriter();
template.render((Map<String, Object>) null, out);
Assert.assertEquals(StringUtils.repeat("abc123", 200), out.toString());
}
}.start();
}
while (g.activeCount() > 0) {
Thread.sleep(100);
}
}
}