Search in sources :

Example 11 with Folder

use of com.centurylink.mdw.plugin.designer.model.Folder in project mdw-designer by CenturyLinkCloud.

the class Discoverer method getAssetTopFolder.

public Folder getAssetTopFolder(boolean latestVersionsOnly, IProgressMonitor progressMonitor) throws DiscoveryException, IOException, InterruptedException {
    this.latestVersionsOnly = latestVersionsOnly;
    this.progressMonitor = progressMonitor;
    progressMonitor.worked(10);
    CodeTimer timer = new CodeTimer("crawl for assets");
    Folder topFolder = new Folder(MdwPlugin.getSettings().getMdwReleasesUrl());
    if (groupId != null) {
        Discover discover = new Discover(groupId, latestVersionsOnly);
        parseJsonPacakges(topFolder, discover.run(new SwtProgressMonitor(progressMonitor)).getPackages().toString());
    } else if (url != null) {
        topFolder = new Folder(url.toString());
        crawlForPackageFiles(topFolder);
        removeEmptyFolders(topFolder);
    }
    timer.stopAndLog();
    return topFolder;
}
Also used : Discover(com.centurylink.mdw.cli.Discover) Folder(com.centurylink.mdw.plugin.designer.model.Folder) CodeTimer(com.centurylink.mdw.plugin.CodeTimer)

Example 12 with Folder

use of com.centurylink.mdw.plugin.designer.model.Folder in project mdw-designer by CenturyLinkCloud.

the class WorkflowProject method findUnpackagedAssetFolders.

/**
 * Returns the folders for unpackaged archived workflow assets. Side-effect:
 * If an unpackaged version is later than any package, add to default
 * package.
 */
private List<Folder> findUnpackagedAssetFolders() {
    CodeTimer timer = new CodeTimer("findUnpackagedAssetFolders()");
    Map<String, Folder> upAssetFolders = new HashMap<>();
    Map<String, List<RuleSetVO>> nonLatestUnpackaged = new HashMap<>();
    for (RuleSetVO ruleSetVO : getDataAccess().getRuleSets(false)) {
        if (!isPackaged(ruleSetVO)) {
            // if version is later than that in any non-archived package,
            // it belongs in the top-level default package
            boolean laterThanPackaged = true;
            for (WorkflowPackage pkg : getTopLevelPackages()) {
                WorkflowAsset packaged = pkg.getAsset(ruleSetVO.getName());
                if (packaged != null && packaged.getVersion() >= ruleSetVO.getVersion()) {
                    laterThanPackaged = false;
                    break;
                }
            }
            boolean latestUnpackaged = true;
            if (laterThanPackaged) {
                WorkflowAsset defPkgAsset = getDefaultPackage().getAsset(ruleSetVO.getName());
                if (defPkgAsset != null) {
                    if (defPkgAsset.getVersion() > ruleSetVO.getVersion()) {
                        latestUnpackaged = false;
                    } else if (defPkgAsset.getVersion() < ruleSetVO.getVersion()) {
                        defPkgAsset.removeElementChangeListener(this);
                        getDefaultPackage().removeAsset(defPkgAsset);
                        WorkflowAssetFactory.deRegisterAsset(defPkgAsset);
                        List<RuleSetVO> list = nonLatestUnpackaged.get(ruleSetVO.getName());
                        if (list == null) {
                            list = new ArrayList<>();
                            nonLatestUnpackaged.put(ruleSetVO.getName(), list);
                        }
                        list.add(defPkgAsset.getRuleSetVO());
                    }
                }
            }
            if (laterThanPackaged && latestUnpackaged) {
                WorkflowAsset asset = WorkflowAssetFactory.createAsset(ruleSetVO, getDefaultPackage());
                if (asset != null) {
                    asset.addElementChangeListener(this);
                    getDefaultPackage().addAsset(asset);
                    WorkflowAssetFactory.registerAsset(asset);
                }
            } else {
                List<RuleSetVO> list = nonLatestUnpackaged.get(ruleSetVO.getName());
                if (list == null) {
                    list = new ArrayList<>();
                    nonLatestUnpackaged.put(ruleSetVO.getName(), list);
                }
                list.add(ruleSetVO);
            }
        }
    }
    for (String rsName : nonLatestUnpackaged.keySet()) {
        List<RuleSetVO> list = nonLatestUnpackaged.get(rsName);
        Collections.sort(list, new Comparator<RuleSetVO>() {

            public int compare(RuleSetVO rs1, RuleSetVO rs2) {
                return rs2.getVersion() - rs1.getVersion();
            }
        });
        for (RuleSetVO rs : list) {
            WorkflowAsset asset = WorkflowAssetFactory.createAsset(rs, archivedDefaultPackage);
            if (asset != null) {
                Folder folder = upAssetFolders.get(asset.getName());
                if (folder == null) {
                    folder = WorkflowAssetFactory.createAssetFolder(asset);
                    upAssetFolders.put(asset.getName(), folder);
                } else {
                    folder.getChildren().add(asset);
                }
            }
        }
    }
    List<Folder> folders = new ArrayList<>();
    folders.addAll(upAssetFolders.values());
    Collections.sort(folders);
    timer.stopAndLog();
    return folders;
}
Also used : WorkflowPackage(com.centurylink.mdw.plugin.designer.model.WorkflowPackage) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Folder(com.centurylink.mdw.plugin.designer.model.Folder) IVirtualFolder(org.eclipse.wst.common.componentcore.resources.IVirtualFolder) IFolder(org.eclipse.core.resources.IFolder) RuleSetVO(com.centurylink.mdw.model.value.attribute.RuleSetVO) WorkflowAsset(com.centurylink.mdw.plugin.designer.model.WorkflowAsset) ArrayList(java.util.ArrayList) List(java.util.List) CodeTimer(com.centurylink.mdw.plugin.CodeTimer)

Example 13 with Folder

use of com.centurylink.mdw.plugin.designer.model.Folder in project mdw-designer by CenturyLinkCloud.

the class ImportPackagePage method removeGitVersionedPackages.

/**
 * Not foolproof since it relies on asset XML naming convention. returns
 * emptyFolders to be pruned.
 */
private List<Folder> removeGitVersionedPackages(Folder folder) {
    List<Folder> emptyFolders = new ArrayList<>();
    Map<File, Folder> toRemove = new HashMap<>();
    for (WorkflowElement child : folder.getChildren()) {
        if (child instanceof Folder) {
            for (Folder emptyFolder : removeGitVersionedPackages((Folder) child)) {
                if (!emptyFolders.contains(emptyFolder))
                    emptyFolders.add(emptyFolder);
            }
        } else if (child instanceof File) {
            File file = (File) child;
            String pkgName = file.getName();
            if (file.getParent() instanceof Folder && pkgName.endsWith(".xml")) {
                pkgName = pkgName.substring(0, pkgName.length() - 3);
                int lastDash = pkgName.lastIndexOf('-');
                if (lastDash > 0) {
                    pkgName = pkgName.substring(0, lastDash);
                    for (WorkflowPackage gitPackage : getProject().getTopLevelPackages()) {
                        if (pkgName.equals(gitPackage.getName())) {
                            PluginMessages.log("Import excludes VCS package: " + pkgName);
                            toRemove.put(file, (Folder) file.getParent());
                        }
                    }
                }
            }
        }
    }
    if (!toRemove.isEmpty()) {
        getImportPackageWizard().getImportPackageSelectPage().setInfo("Some packages are not displayed since they exist in version control.");
        for (Map.Entry<File, Folder> file : toRemove.entrySet()) {
            Folder removeFrom = file.getValue();
            removeFrom.getChildren().remove(file.getKey());
            if (removeFrom.getChildren().isEmpty())
                emptyFolders.add(removeFrom);
        }
    }
    return emptyFolders;
}
Also used : WorkflowPackage(com.centurylink.mdw.plugin.designer.model.WorkflowPackage) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Folder(com.centurylink.mdw.plugin.designer.model.Folder) File(com.centurylink.mdw.plugin.designer.model.File) Map(java.util.Map) HashMap(java.util.HashMap) WorkflowElement(com.centurylink.mdw.plugin.designer.model.WorkflowElement)

Example 14 with Folder

use of com.centurylink.mdw.plugin.designer.model.Folder in project mdw-designer by CenturyLinkCloud.

the class ImportPackageWizard method init.

public void init(IWorkbench workbench, IStructuredSelection selection) {
    setDefaultPageImageDescriptor(MdwPlugin.getImageDescriptor("icons/mdw_wiz.png"));
    setNeedsProgressMonitor(true);
    setWindowTitle("MDW Import");
    importPackagePage = new ImportPackagePage();
    importPackageSelectPage = new ImportPackageSelectPage();
    topFolder = new Folder("assets");
    if (selection != null && selection.getFirstElement() instanceof WorkflowProject) {
        WorkflowProject workflowProject = (WorkflowProject) selection.getFirstElement();
        topFolder.setProject(workflowProject);
    } else if (selection != null && selection.getFirstElement() instanceof WorkflowPackage) {
        WorkflowPackage packageVersion = (WorkflowPackage) selection.getFirstElement();
        topFolder.setProject(packageVersion.getProject());
    } else {
        WorkflowProject workflowProject = WorkflowProjectManager.getInstance().findWorkflowProject(selection);
        if (workflowProject != null)
            topFolder.setProject(workflowProject);
    }
}
Also used : WorkflowPackage(com.centurylink.mdw.plugin.designer.model.WorkflowPackage) WorkflowProject(com.centurylink.mdw.plugin.project.model.WorkflowProject) Folder(com.centurylink.mdw.plugin.designer.model.Folder)

Aggregations

Folder (com.centurylink.mdw.plugin.designer.model.Folder)14 ArrayList (java.util.ArrayList)8 WorkflowElement (com.centurylink.mdw.plugin.designer.model.WorkflowElement)7 WorkflowPackage (com.centurylink.mdw.plugin.designer.model.WorkflowPackage)7 File (com.centurylink.mdw.plugin.designer.model.File)6 CodeTimer (com.centurylink.mdw.plugin.CodeTimer)3 AutomatedTestCase (com.centurylink.mdw.plugin.designer.model.AutomatedTestCase)3 AutomatedTestSuite (com.centurylink.mdw.plugin.designer.model.AutomatedTestSuite)3 HashMap (java.util.HashMap)3 List (java.util.List)3 PackageVO (com.centurylink.mdw.model.value.process.PackageVO)2 LegacyExpectedResults (com.centurylink.mdw.plugin.designer.model.LegacyExpectedResults)2 WorkflowProject (com.centurylink.mdw.plugin.project.model.WorkflowProject)2 URL (java.net.URL)2 IFolder (org.eclipse.core.resources.IFolder)2 IVirtualFolder (org.eclipse.wst.common.componentcore.resources.IVirtualFolder)2 MDWProcessDefinition (com.centurylink.mdw.bpm.MDWProcessDefinition)1 PackageDocument (com.centurylink.mdw.bpm.PackageDocument)1 Discover (com.centurylink.mdw.cli.Discover)1 HttpHelper (com.centurylink.mdw.common.utilities.HttpHelper)1