getCopyFileAreasForConfiguration method in CopyFileAreaManager returns empty list while unloading a repository workspace programmatically!
![]()
Hello Team ,
Need your suggestion in solving the problem I am facing to unload repository workspace programmatically(as described below). And i want to unload repository workspace programmatically because i am developing a plugin(to create repo workspace , load it , accept changes in to workspace and to unload it) which will be integrated with Jenkins. I was successful in creating a repository workspace and loading it programmatically by using the below code : SubMonitor progress = SubMonitor.convert(monitor, 100); IWorkspaceManager wsManager = SCMPlatform.getWorkspaceManager(repo); IWorkspaceConnection workspace = wsManager.createWorkspace(repo.loggedInContributor(), workspaceName, description, stream, stream, progress.newChild(90)); workspace.setOwnerAndVisibility(IScmService.NOOP_OWNER, scope, progress.newChild(3)); addTemplateFlows(workspace, stream, progress.newChild(7)); and code to load a repository workspace : this.sandbox = new Sandbox(repoLocation); lrFileReader = getReaderForLRFileonDisk(); ILoadRule2 loadRule = ILoadRuleFactory.loadRuleFactory.getLoadRule(wconn, lrFileReader, monitor); ILoadOperation loadoperator = loadRule.getLoadOp(this.sandbox, LoadDilemmaHandler.getDefault(), monitor); loadoperator.run(monitor); FileSystemCore.getSharingManager().deregister(this.sandbox, monitor); When I make an attempt to unload a repository workspace as below : SubMonitor subMonitor = SubMonitor.convert(monitor); IWorkspaceConnection iWorkspaceConnection = getWorkspaceConn(SCMPlatform.getWorkspaceManager(getItemRepository()), monitor, repository_workspace_name); List<IConfigurationDescriptor> iConfigurationDescriptorList = unloadUbkManager.getConfigurationsToUnshare(iWorkspaceConnection, iWorkspaceConnection.getComponents()); Set<ICopyFileArea> iCopyFileAreaSet = getCFAs(iConfigurationDescriptorList, subMonitor); Set<IConfigurationDescriptor> iConfigurationDescriptorSet = unloadUbkManager.getAffectedConfigurations(iConfigurationDescriptorList); Collection<Shareable> shareableCollection = unloadUbkManager.getShareablesToUnshare(iCopyFileAreaSet, iConfigurationDescriptorSet, subMonitor); unloadUbkManager.deleteDirectories((List<Shareable>) shareableCollection); publicSet<ICopyFileArea> getCFAs(finalList<IConfigurationDescriptor> configurationsToUnshare, finalSubMonitor childMonitor) throwsTeamRepositoryException { Set<ICopyFileArea> interestingCopyFileAreas = newHashSet(); ICopyFileAreaManager cfaMgr = ICopyFileAreaManager.instance; for(IConfigurationDescriptor configuration : configurationsToUnshare) { try { Collection<ICopyFileArea> copyFileAreas = cfaMgr.getCopyFileAreasForConfiguration(configuration, childMonitor.newChild(1)); interestingCopyFileAreas.addAll(copyFileAreas); } catch (FileSystemException e) { throw newTeamRepositoryException(e.getMessage()); } } return interestingCopyFileAreas; } method cfaMgr.getCopyFileAreasForConfiguration(configuration, childMonitor.newChild(1)); returns an empty list and because of which workspace is not unloaded. Could you guide me in solving this ? I decompiled CopyFileAreaManager.class to check the logic in getCopyFileAreasForConfiguration but the source code is not shared. |