package com.constellio.model.services.parser;
import org.apache.tika.fork.ForkParser;
import org.apache.tika.parser.AutoDetectParser;
import com.constellio.data.dao.managers.StatefulService;
public class ForkParsers implements StatefulService {
private ForkParser forkParser;
private int forkParserPoolSize;
public ForkParsers(int forkParserPoolSize) {
super();
this.forkParserPoolSize = forkParserPoolSize;
}
public synchronized ForkParser getForkParser() {
if (forkParser == null) {
forkParser = newForkParser();
forkParser.setPoolSize(forkParserPoolSize);
}
return forkParser;
}
public ForkParser newForkParser() {
AutoDetectParser parser = new AutoDetectParser();
return new ForkParser(getClass().getClassLoader(), parser);
}
@Override
public void initialize() {
}
@Override
public void close() {
if (forkParser != null) {
forkParser.close();
}
forkParser = null;
}
}