public void migrate(RulesRepository repo) throws RepositoryException { log.info("AUTO MIGRATION: Performing drools.package migration..."); ModuleIterator pkgs = repo.listModules(); boolean performed = false; while(pkgs.hasNext()) { performed = true; ModuleItem pkg = (ModuleItem) pkgs.next(); migratePackage(pkg); String[] snaps = repo.listModuleSnapshots(pkg.getName()); if (snaps != null) { for (int i = 0; i < snaps.length; i++) { ModuleItem snap = repo.loadModuleSnapshot(pkg.getName(), snaps[i]); migratePackage(snap); } } } if (performed) { repo.getSession().getRootNode().getNode(RulesRepository.RULES_REPOSITORY_NAME).addNode("drools.package.migrated", "nt:folder"); repo.save(); log.info("AUTO MIGRATION: drools.package migration completed."); } }
public void migrate(RulesRepository repo) throws RepositoryException { log.info("AUTO MIGRATION: Performing drools.package migration..."); ModuleIterator pkgs = repo.listModules(); boolean performed = false; while(pkgs.hasNext()) { performed = true; ModuleItem pkg = (ModuleItem) pkgs.next(); migratePackage(pkg); String[] snaps = repo.listModuleSnapshots(pkg.getName()); if (snaps != null) { for (int i = 0; i < snaps.length; i++) { ModuleItem snap = repo.loadModuleSnapshot(pkg.getName(), snaps[i]); migratePackage(snap); } } } if (performed) { repo.getSession().getRootNode().getNode(RulesRepository.RULES_REPOSITORY_NAME).addNode("drools.package.migrated", "nt:folder"); repo.save(); log.info("AUTO MIGRATION: drools.package migration completed."); } }
@Test public void testMigrate() throws Exception { RulesRepository repo = getRepo(); Session sess = repo.getSession(); sess.getRootNode().getNode(RulesRepository.RULES_REPOSITORY_NAME).getNode("drools.package.migrated").remove(); sess.save(); MigrateDroolsPackage mig = new MigrateDroolsPackage(); ModuleItem pkg = repo.createModule("testMigratePackage", ""); pkg.updateStringProperty("some header", ModuleItem.HEADER_PROPERTY_NAME); sess.save(); repo.createModuleSnapshot("testMigratePackage", "SNAP1"); repo.createModuleSnapshot("testMigratePackage", "SNAP2"); assertTrue(mig.needsMigration(repo)); mig.migrate(repo); assertFalse(repo.getSession().hasPendingChanges()); assertFalse(mig.needsMigration(repo)); pkg = repo.loadModule("testMigratePackage"); assertTrue(pkg.containsAsset("drools")); AssetItem as = pkg.loadAsset("drools"); assertEquals("some header", as.getContent()); pkg = repo.loadModuleSnapshot("testMigratePackage", "SNAP1"); assertTrue(pkg.containsAsset("drools")); as = pkg.loadAsset("drools"); assertEquals("some header", as.getContent()); pkg = repo.loadModuleSnapshot("testMigratePackage", "SNAP2"); assertTrue(pkg.containsAsset("drools")); as = pkg.loadAsset("drools"); assertEquals("some header", as.getContent()); }
ModuleItem pkgLoaded = repo.loadModuleSnapshot( "testPackageSnapshot", "PROD 2.0" ); assertTrue(pkgLoaded.isSnapshot()); assertEquals("PROD 2.0", pkgLoaded.getSnapshotName()); ModuleItem pkg2 = repo.loadModuleSnapshot( "testPackageSnapshot", "PROD 2.0" ); assertNotNull(pkg2); List snapAssets = iteratorToList( pkg2.getAssets() );
@Test public void testGetPackageItemHistorical() throws Exception { RulesRepository repo = getRepo(); ModuleItem pkg = repo.createModule("testGetPackageItemHistorical", ""); AssetItem asset = pkg.addAsset("whee", ""); asset.checkin(""); assertNotNull(asset.getModule()); repo.createModuleSnapshot(pkg.getName(), "SNAP"); ModuleItem pkg_ = repo.loadModuleSnapshot(pkg.getName(), "SNAP"); AssetItem asset_ = pkg_.loadAsset("whee"); ModuleItem pkg__ = asset_.getModule(); assertTrue(pkg__.isSnapshot()); assertTrue(pkg_.isSnapshot()); assertFalse(pkg.isSnapshot()); assertEquals(pkg.getName(), pkg__.getName()); asset.updateDescription("yeah !"); asset.checkin("new"); asset = pkg.loadAsset("whee"); assertNotNull(asset.getModule()); AssetHistoryIterator it = asset.getHistory(); while(it.hasNext()) { AssetItem as = it.next(); if (as.getVersionNumber() > 0) { System.err.println(as.getVersionNumber()); System.err.println(as.getModuleName()); assertNotNull(as.getModule()); assertEquals(pkg.getName(), as.getModule().getName()); } } }
getRepo().createModuleSnapshot(getDefaultPackage().getName(), "SNAP"); ModuleItem pkgSnap = getRepo().loadModuleSnapshot(getDefaultPackage().getName(), "SNAP"); AssetItem assetSnap = pkgSnap.loadAsset("testGetPackageItemHistoricalForShareableAsset"); ModuleItem pkgSnap1 = assetSnap.getModule();