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 void createPackageSnapshot( String packageName, String snapshotName, boolean replaceExisting, String comment) { log.info( "USER:"******" CREATING PACKAGE SNAPSHOT for package: [" + packageName + "] snapshot name: [" + snapshotName); if (replaceExisting) { rulesRepository.removePackageSnapshot(packageName, snapshotName); } rulesRepository.createPackageSnapshot(packageName, snapshotName); PackageItem item = rulesRepository.loadPackageSnapshot(packageName, snapshotName); item.updateCheckinComment(comment); rulesRepository.save(); }