/** {@inheritDoc} */
 @Override
 public void init(QName qname, BPMComponentImplementationModel model) {
   _processId = model.getProcessId();
   _messageContentInName = model.getMessageContentInName();
   if (_messageContentInName == null) {
     _messageContentInName = MESSAGE_CONTENT_IN;
   }
   _messageContentOutName = model.getMessageContentOutName();
   if (_messageContentOutName == null) {
     _messageContentOutName = MESSAGE_CONTENT_OUT;
   }
   ComponentModel cm = model.getComponent();
   _targetNamespace = cm != null ? cm.getTargetNamespace() : null;
   _taskHandlerModels.addAll(model.getTaskHandlers());
   ClassLoader loader = Classes.getClassLoader(getClass());
   ResourceType.install(loader);
   ComponentImplementationConfig cic = new ComponentImplementationConfig(model, loader);
   Map<String, Object> env = new HashMap<String, Object>();
   // env.put(EnvironmentName.ENTITY_MANAGER_FACTORY,
   // Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"));
   // env.put(EnvironmentName.TRANSACTION_MANAGER,
   // AS7TransactionManagerLookup.getTransactionManager());
   cic.setEnvironmentOverrides(env);
   Properties props = new Properties();
   // props.setProperty("drools.processInstanceManagerFactory",
   // JPAProcessInstanceManagerFactory.class.getName());
   // props.setProperty("drools.processSignalManagerFactory",
   // JPASignalManagerFactory.class.getName());
   cic.setPropertiesOverrides(props);
   Resource procDef = model.getProcessDefinition();
   if (procDef.getType() == null) {
     procDef = new SimpleResource(procDef.getLocation(), "BPMN2");
   }
   if (model.isAgent()) {
     _kagent = Agents.newAgent(cic, procDef);
     _kbase = _kagent.getKnowledgeBase();
   } else {
     _kbase = Bases.newBase(cic, procDef);
   }
   _ksessionConfig = Configs.getSessionConfiguration(cic);
   _environment = Environments.getEnvironment(cic);
   _audit = model.getAudit();
   for (ProcessActionModel pam : model.getProcessActions()) {
     _actionModels.put(pam.getName(), pam);
   }
 }