private boolean assetHasHistory(AssetItem asset) { AssetHistoryIterator it = asset.getHistory(); while ( it.hasNext() ) { VersionableItem historical = (VersionableItem) it.next(); long versionNumber = historical.getVersionNumber(); if ( versionNumber != 0) { //Version 0 is not a real version. It is the root version return true; } } return false; } /**
private boolean assetHasHistory(AssetItem asset) { AssetHistoryIterator it = asset.getHistory(); while ( it.hasNext() ) { VersionableItem historical = (VersionableItem) it.next(); long versionNumber = historical.getVersionNumber(); if ( versionNumber != 0) { //Version 0 is not a real version. It is the root version return true; } } return false; } /**
for (Iterator<AssetItem> iter = head.getHistory(); iter.hasNext(); ) { AssetItem element = iter.next(); if (!(element.getVersionNumber() == 0)) {
for (Iterator<AssetItem> iter = head.getHistory(); iter.hasNext(); ) { AssetItem element = iter.next(); if (!(element.getVersionNumber() == 0)) {
/** * Load a specific asset by name. */ public AssetItem loadAsset(String name, long versionNumber) { AssetItem asset = loadAsset(name); AssetHistoryIterator it = asset.getHistory(); while (it.hasNext()) { AssetItem historical = it.next(); long version = historical.getVersionNumber(); if (version == versionNumber) { return historical; } } throw new RulesRepositoryException( "Unable to load asset [" + name + "] with version[" + versionNumber + "]"); }
/** * Load a specific asset by name. */ public AssetItem loadAsset(String name, long versionNumber) { AssetItem asset = loadAsset(name); AssetHistoryIterator it = asset.getHistory(); while (it.hasNext()) { AssetItem historical = it.next(); long version = historical.getVersionNumber(); if (version == versionNumber) { return historical; } } throw new RulesRepositoryException( "Unable to load asset [" + name + "] with version[" + versionNumber + "]"); }
AssetHistoryIterator it = assetItem.getHistory(); while (it.hasNext()) { AssetItem historical = (AssetItem) it.next();
AssetHistoryIterator it = assetItem.getHistory(); while (it.hasNext()) { AssetItem historical = (AssetItem) it.next();
@Test public void testHistoryIterator() throws Exception { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testHistoryIterator", "test description"); ruleItem1.checkin( "version0" ); ruleItem1 = getRepo().loadAssetByUUID( ruleItem1.getUUID() ); ruleItem1.updateContent( "wo" ); ruleItem1.checkin( "version1" ); ruleItem1 = getRepo().loadAssetByUUID( ruleItem1.getUUID() ); ruleItem1.updateContent( "ya" ); ruleItem1.checkin( "version2" ); Iterator it = ruleItem1.getHistory(); for ( int i = 0; i < 2; i++ ) { assertTrue(it.hasNext()); it.next(); } }
/** * This is showing how to copy a package with standard JCR */ @Test public void testPackageCopy() throws Exception { RulesRepository repo = getRepo(); ModuleItem pkg = repo.createModule( "testPackageCopy", "this is something" ); AssetItem it1 = pkg.addAsset( "testPackageCopy1", "la" ); AssetItem it2 = pkg.addAsset( "testPackageCopy2", "la" ); it1.updateContent( "new content" ); it2.updateContent( "more content" ); it1.checkin( "c" ); it2.checkin( "c" ); it1 = pkg.loadAsset( "testPackageCopy1" ); List hist1 = iteratorToList( it1.getHistory() ); System.out.println(hist1.size()); repo.getSession().getWorkspace().copy( pkg.getNode().getPath(), pkg.getNode().getPath() + "_"); ModuleItem pkg2 = repo.loadModule( "testPackageCopy_" ); assertNotNull(pkg2); assertEquals(2, iteratorToList( pkg2.getAssets() ).size() ); AssetItem it1_ = pkg2.loadAsset( "testPackageCopy1" ); it1.updateContent( "new content2" ); it1.checkin( "la" ); it1_ = pkg2.loadAsset( "testPackageCopy1" ); assertEquals("new content", it1_.getContent()); }
@Test public void testHistoryIteratorForShareableAsset() throws Exception { AssetItem asset = getRepo().loadGlobalArea().addAsset("testHistoryIteratorForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset = getRepo().loadAssetByUUID(linkedAsset.getUUID()); linkedAsset.updateContent("wo"); linkedAsset.checkin("version2"); asset = getRepo().loadAssetByUUID(asset.getUUID()); asset.updateContent("ya"); asset.checkin("version3"); Iterator it = asset.getHistory(); for (int i = 0; i < 3; i++) { assertTrue(it.hasNext()); it.next(); } }
assertNotNull(linkedAsset.getModule()); AssetHistoryIterator linkedIt = linkedAsset.getHistory(); assertEquals(4, iteratorToList(linkedIt).size()); AssetHistoryIterator it = asset.getHistory(); assertEquals(4, iteratorToList(it).size());
@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()); } } }