private void updatePackageBinaries(PackageItem item, PackageAssembler packageAssembler) throws DetailedSerializationException { try { ByteArrayOutputStream bout = new ByteArrayOutputStream(); ObjectOutput out = new DroolsObjectOutputStream(bout); out.writeObject(packageAssembler.getBinaryPackage()); item.updateCompiledPackage(new ByteArrayInputStream(bout.toByteArray())); out.flush(); out.close(); item.updateBinaryUpToDate(true); RuleBase ruleBase = RuleBaseFactory.newRuleBase(new RuleBaseConfiguration(getClassLoaders(packageAssembler))); ruleBase.addPackage(packageAssembler.getBinaryPackage()); rulesRepository.save(); } catch (Exception e) { e.printStackTrace(); log.error( "An error occurred building the package [" + item.getName() + "]: " + e.getMessage()); throw new DetailedSerializationException( "An error occurred building the package.", e.getMessage()); } }
protected void removePackage(String uuid) { try { PackageItem item = rulesRepository.loadPackageByUUID(uuid); log.info("USER:"******" REMOVEING package [" + item.getName() + "]"); item.remove(); rulesRepository.save(); } catch (RulesRepositoryException e) { log.error("Unable to remove package.", e); throw e; } }
protected String copyPackage(String sourcePackageName, String destPackageName) throws SerializationException { try { log.info( "USER:"******" COPYING package [" + sourcePackageName + "] to package [" + destPackageName + "]"); return rulesRepository.copyPackage(sourcePackageName, destPackageName); } catch (RulesRepositoryException e) { log.error("Unable to copy package.", e); throw e; } }
protected String[] listRulesInPackage(String packageName) throws SerializationException { // load package PackageItem item = rulesRepository.loadPackage(packageName); PackageDRLAssembler assembler = createPackageDRLAssembler(item); List<String> result = new ArrayList<String>(); try { String drl = assembler.getDRL(); if (drl == null || "".equals(drl)) { return new String[0]; } else { parseRulesToPackageList(assembler, result); } return result.toArray(new String[result.size()]); } catch (DroolsParserException e) { log.error("Unable to list rules in package", e); return new String[0]; } }