@Override public void deploy(DeploymentUnit unit) { super.deploy(unit); if (!(unit instanceof VFSDeploymentUnit)) { throw new IllegalArgumentException("Invalid deployment unit provided - " + unit.getClass().getName()); } DeployedUnitImpl deployedUnit = new DeployedUnitImpl(unit); VFSDeploymentUnit vfsUnit = (VFSDeploymentUnit) unit; // Create Runtime Manager Based on the Reference RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.getDefault() .entityManagerFactory(getEmf()); AuditEventBuilder auditLoggerBuilder = setupAuditLogger(identityProvider, vfsUnit.getIdentifier()); if (beanManager != null) { builder.registerableItemsFactory(InjectableRegisterableItemsFactory.getFactory(beanManager, auditLoggerBuilder)); } loadProcesses(vfsUnit, builder, deployedUnit); loadRules(vfsUnit, builder, deployedUnit); commonDeploy(vfsUnit, deployedUnit, builder.get(), (KieContainer)builder.get().getEnvironment().get("kieContainer") ); }
protected void loadRules(VFSDeploymentUnit vfsUnit, RuntimeEnvironmentBuilder builder, DeployedUnitImpl deployedUnit) { Iterable<Path> loadRuleFiles = null; try { Path rulesFolder = getFs().getPath(vfsUnit.getRepository() + vfsUnit.getRepositoryFolder()); loadRuleFiles = getFs().loadFilesByType(rulesFolder, ".+drl"); } catch (FileException ex) { logger.error("Error while loading rule files", ex); } for (Path p : loadRuleFiles) { String ruleString = ""; try { ruleString = new String(getFs().loadFile(p)); builder.addAsset(ResourceFactory.newByteArrayResource(ruleString.getBytes()), ResourceType.DRL); } catch (Exception ex) { logger.error("Error while reading rule files", ex); } } }
protected void loadProcesses(VFSDeploymentUnit vfsUnit, RuntimeEnvironmentBuilder builder, DeployedUnitImpl deployedUnit) { Iterable<Path> loadProcessFiles = null; try { Path processFolder = getFs().getPath(vfsUnit.getRepository() + vfsUnit.getRepositoryFolder()); loadProcessFiles = getFs().loadFilesByType(processFolder, ".+bpmn[2]?$"); } catch (FileException ex) { logger.error("Error while loading process files", ex); } for (Path p : loadProcessFiles) { String processString = ""; try { processString = new String(getFs().loadFile(p)); builder.addAsset(ResourceFactory.newByteArrayResource(processString.getBytes()), ResourceType.BPMN2); ProcessAssetDesc process = (ProcessAssetDesc) bpmn2Service.buildProcessDefinition("unknown", processString, null, false); process.setOriginalPath(p.toUri().toString()); process.setDeploymentId(vfsUnit.getIdentifier()); deployedUnit.addAssetLocation(process.getId(), process); } catch (Exception ex) { logger.error("Error while reading process files", ex); } } }