in src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java [161:196]
public void activate(BundleContext context,
Config conf) {
String[] nodeFilters = SettingsUtils.removeEmptyEntries(conf.package_filters());
String[] propertyFilters = SettingsUtils.removeEmptyEntries(conf.property_filters());
String persistenceType = conf.type();
String tempFsFolder = SettingsUtils.removeEmptyEntry(conf.tempFsFolder());
String digestAlgorithm = conf.digestAlgorithm();
long cleanupDelay = conf.cleanupDelay();
if (DEFAULT_DIGEST_ALGORITHM.equals(digestAlgorithm)) {
digestAlgorithm = null;
}
DistributionPackageBuilder wrapped;
if ("file".equals(persistenceType)) {
wrapped = new FileDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, digestAlgorithm, nodeFilters, propertyFilters);
} else if ("inmemory".equals(persistenceType)) {
wrapped = new InMemoryDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, nodeFilters, propertyFilters);
} else {
final int fileThreshold = conf.fileThreshold();
String memoryUnitName = conf.memoryUnit();
final MemoryUnit memoryUnit = MemoryUnit.valueOf(memoryUnitName);
final boolean useOffHeapMemory = conf.useOffHeapMemory();
ResourceDistributionPackageBuilder resourceDistributionPackageBuilder = new ResourceDistributionPackageBuilder(contentSerializer.getName(), contentSerializer, tempFsFolder, fileThreshold, memoryUnit, useOffHeapMemory, digestAlgorithm, nodeFilters, propertyFilters);
Runnable cleanup = new ResourceDistributionPackageCleanup(resolverFactory, resourceDistributionPackageBuilder);
Dictionary<String, Object> props = new Hashtable<String, Object>();
props.put(Scheduler.PROPERTY_SCHEDULER_CONCURRENT, false);
props.put(Scheduler.PROPERTY_SCHEDULER_PERIOD, cleanupDelay);
props.put(Scheduler.PROPERTY_SCHEDULER_THREAD_POOL, "content-distribution");
packageCleanup = context.registerService(Runnable.class, cleanup, props);
wrapped = resourceDistributionPackageBuilder;
}
int monitoringQueueSize = conf.monitoringQueueSize();
packageBuilder = new MonitoringDistributionPackageBuilder(monitoringQueueSize, wrapped, context);
}