public void savePackage(PackageConfigData data) throws SerializationException { log.info("USER:"******" SAVING package [" + data.getName() + "]"); PackageItem item = rulesRepository.loadPackage(data.getName()); // If package is being unarchived. boolean unarchived = (!data.isArchived() && item.isArchived()); Calendar packageLastModified = item.getLastModified(); DroolsHeader.updateDroolsHeader(data.getHeader(), item); updateCategoryRules(data, item); item.updateExternalURI(data.getExternalURI()); item.updateDescription(data.getDescription()); item.archiveItem(data.isArchived()); item.updateBinaryUpToDate(false); if (!data.getFormat().equals("")) { item.updateFormat(data.getFormat()); } RuleBaseCache.getInstance().remove(data.getUuid()); item.checkin(data.getDescription()); // If package is archived, archive all the assets under it if (data.isArchived()) { handleArchivedForSavePackage(data, item); } else if (unarchived) { handleUnarchivedForSavePackage(data, item, packageLastModified); } }
private void handleIteratePackages( boolean archive, String workspace, RepositoryFilter filter, List<PackageConfigData> result, PackageIterator pkgs) { pkgs.setArchivedIterator(archive); while (pkgs.hasNext()) { PackageItem packageItem = pkgs.next(); PackageConfigData data = new PackageConfigData(); data.setUuid(packageItem.getUUID()); data.setName(packageItem.getName()); data.setArchived(packageItem.isArchived()); data.setWorkspaces(packageItem.getWorkspaces()); handleIsPackagesListed(archive, workspace, filter, result, data); data.subPackages = listSubPackages(packageItem, archive, null, filter); } }