int threadPoolSize = getIntProperty(serviceInfo.properties, "threadPoolSize", 30);
if (threadPoolSize <= 0) throw new IllegalArgumentException("threadPoolSizes <= 0: " + threadPoolSize);
Executor threadPool = Executors.newFixedThreadPool(threadPoolSize, new ResourceAdapterThreadFactory(serviceInfo.id));
// create a work manager which the resource adapter can use to dispatch messages or perform tasks
WorkManager workManager = new GeronimoWorkManager(threadPool, threadPool, threadPool, geronimoTransactionManager);
// wrap the work mananger and transaction manager in a bootstrap context (connector spec thing)
BootstrapContext bootstrapContext = new GeronimoBootstrapContext(workManager, geronimoTransactionManager);
// start the resource adapter