001package org.nuxeo.ecm.platform.importer.executor.jaxrs; 002 003import javax.ws.rs.GET; 004import javax.ws.rs.Path; 005import javax.ws.rs.Produces; 006import javax.ws.rs.QueryParam; 007 008import org.apache.commons.logging.Log; 009import org.apache.commons.logging.LogFactory; 010import org.nuxeo.ecm.platform.importer.base.GenericMultiThreadedImporter; 011import org.nuxeo.ecm.platform.importer.base.ImporterRunner; 012import org.nuxeo.ecm.platform.importer.base.ImporterRunnerConfiguration; 013import org.nuxeo.ecm.platform.importer.filter.EventServiceConfiguratorFilter; 014import org.nuxeo.ecm.platform.importer.filter.ImporterFilter; 015import org.nuxeo.ecm.platform.importer.source.RandomTextSourceNode; 016import org.nuxeo.ecm.platform.importer.source.SourceNode; 017 018@Path("randomImporter") 019public class RandomImporterExecutor extends AbstractJaxRSImporterExecutor { 020 021 private static final Log log = LogFactory.getLog(RandomImporterExecutor.class); 022 023 @Override 024 protected Log getJavaLogger() { 025 return log; 026 } 027 028 @GET 029 @Path("run") 030 @Produces("text/plain; charset=UTF-8") 031 public String run(@QueryParam("targetPath") String targetPath, 032 @QueryParam("skipRootContainerCreation") Boolean skipRootContainerCreation, 033 @QueryParam("batchSize") Integer batchSize, @QueryParam("nbThreads") Integer nbThreads, 034 @QueryParam("interactive") Boolean interactive, @QueryParam("nbNodes") Integer nbNodes, 035 @QueryParam("fileSizeKB") Integer fileSizeKB, @QueryParam("onlyText") Boolean onlyText, 036 @QueryParam("blockSyncPostCommitProcessing") Boolean blockSyncPostCommitProcessing, 037 @QueryParam("blockAsyncProcessing") Boolean blockAsyncProcessing, @QueryParam("bulkMode") Boolean bulkMode) { 038 039 if (onlyText == null) { 040 onlyText = true; 041 } 042 043 if (bulkMode == null) { 044 bulkMode = true; 045 } 046 047 getLogger().info("Init Random text generator"); 048 SourceNode source = RandomTextSourceNode.init(nbNodes, fileSizeKB, onlyText); 049 getLogger().info("Random text generator initialized"); 050 051 ImporterRunnerConfiguration configuration = new ImporterRunnerConfiguration.Builder(source, targetPath, 052 getLogger()).skipRootContainerCreation(skipRootContainerCreation).batchSize(batchSize).nbThreads( 053 nbThreads).build(); 054 GenericMultiThreadedImporter runner = new GenericMultiThreadedImporter(configuration); 055 056 ImporterFilter filter = new EventServiceConfiguratorFilter(blockSyncPostCommitProcessing, blockAsyncProcessing, 057 !onlyText, bulkMode); 058 runner.addFilter(filter); 059 060 String res = run(runner, interactive); 061 return res; 062 } 063 064 @Override 065 public String run(ImporterRunner runner, Boolean interactive) { 066 return doRun(runner, interactive); 067 } 068 069}