Search in sources :

Example 16 with ICommand

use of org.talend.mdm.repository.core.command.ICommand in project tmdm-studio-se by Talend.

the class DeployService method updateForStatus.

private void updateForStatus(boolean isUpdateServer, List<DeployStatus> deployStatuses) {
    if (deployStatuses == null || deployStatuses.size() == 0) {
        return;
    }
    for (DeployStatus deployStatus : deployStatuses) {
        if (deployStatus != null && deployStatus.isOK()) {
            ICommand command = deployStatus.getCommand();
            if (command != null) {
                CommandManager manager = CommandManager.getInstance();
                manager.removeCommandStack(command, ICommand.PHASE_DEPLOY);
                if (isUpdateServer) {
                    MDMServerDef serverDef = null;
                    if (command instanceof AbstractDeployCommand) {
                        serverDef = ((AbstractDeployCommand) command).getServerDef();
                    } else if (command instanceof DeployCompoundCommand) {
                        serverDef = ((DeployCompoundCommand) command).getServerDef();
                    }
                    if (command instanceof BatchDeployJobCommand) {
                        BatchDeployJobCommand deployJobCommand = (BatchDeployJobCommand) command;
                        pushRestoreCommand(manager, deployJobCommand.getSubCmds(), serverDef);
                        pushRestoreCommand(manager, deployJobCommand.getSubDeleteCmds(), serverDef);
                    } else {
                        // updateserver
                        pushRestoreCommand(manager, command, serverDef);
                    }
                }
            }
        }
    }
}
Also used : DeployCompoundCommand(org.talend.mdm.repository.core.command.deploy.DeployCompoundCommand) CommandManager(org.talend.mdm.repository.core.command.CommandManager) ICommand(org.talend.mdm.repository.core.command.ICommand) BatchDeployJobCommand(org.talend.mdm.repository.core.command.deploy.job.BatchDeployJobCommand) AbstractDeployCommand(org.talend.mdm.repository.core.command.deploy.AbstractDeployCommand) MDMServerDef(org.talend.mdm.repository.model.mdmmetadata.MDMServerDef)

Example 17 with ICommand

use of org.talend.mdm.repository.core.command.ICommand in project tmdm-studio-se by Talend.

the class UndeployAction method doRun.

/*
     * (non-Javadoc)
     * 
     * @see org.talend.mdm.repository.core.bridge.AbstractBridgeRepositoryAction#doRun()
     */
@Override
protected void doRun() {
    DeployService deployService = DeployService.getInstance();
    CommandManager cmanager = CommandManager.getInstance();
    List<IRepositoryViewObject> viewObjs = getSelectedRepositoryViewObject();
    if (viewObjs.size() < 1) {
        return;
    }
    SelectServerDefDialog dialog = getServerDefDialog(viewObjs);
    if (dialog.open() == IDialogConstants.OK_ID) {
        MDMServerDef serverDef = dialog.getSelectedServerDef();
        List<AbstractDeployCommand> deleteCommands = new ArrayList<AbstractDeployCommand>(viewObjs.size());
        for (IRepositoryViewObject obj : viewObjs) {
            ICommand deleteCmd = cmanager.getNewCommand(obj, ICommand.CMD_DELETE);
            deleteCmd.init(obj);
            deleteCommands.add((AbstractDeployCommand) deleteCmd);
        }
        IStatus status = deployService.runCommands(deleteCommands, serverDef);
        IProgressMonitor monitor = new NullProgressMonitor();
        deployService.updateChangedStatus(status);
        if (status.isMultiStatus()) {
            new DeployStatusDialog(getShell(), status).open();
        }
        for (IRepositoryViewObject viewObj : viewObjs) {
            MDMServerDef lastServerDef = RepositoryResourceUtil.getLastServerDef(viewObj);
            String id = viewObj.getId();
            CommandStack stack = cmanager.findCommandStack(id);
            if (stack != null) {
                if (RepositoryResourceUtil.isSameMDMServerDef(lastServerDef, serverDef)) {
                    List<ICommand> commands = stack.getCommands(ICommand.PHASE_RESTORE);
                    for (ICommand cmd : commands) {
                        cmd.execute(null, monitor);
                    }
                }
                cmanager.removeCommandStack(id, ICommand.PHASE_RESTORE);
                commonViewer.refresh(viewObj);
            }
        }
    } else {
        return;
    }
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) CommandStack(org.talend.mdm.repository.core.command.CommandStack) IStatus(org.eclipse.core.runtime.IStatus) DeployStatusDialog(org.talend.mdm.repository.ui.dialogs.deploy.DeployStatusDialog) ArrayList(java.util.ArrayList) DeployService(org.talend.mdm.repository.core.service.DeployService) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) CommandManager(org.talend.mdm.repository.core.command.CommandManager) ICommand(org.talend.mdm.repository.core.command.ICommand) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) SelectServerDefDialog(org.talend.mdm.workbench.serverexplorer.ui.dialogs.SelectServerDefDialog) AbstractDeployCommand(org.talend.mdm.repository.core.command.deploy.AbstractDeployCommand) MDMServerDef(org.talend.mdm.repository.model.mdmmetadata.MDMServerDef)

Example 18 with ICommand

use of org.talend.mdm.repository.core.command.ICommand in project tmdm-studio-se by Talend.

the class BatchDeployJobCommand method collectDeployStatus.

private void collectDeployStatus(IStatus dialogStatus, MultiStatus ms, String typeLabel) {
    for (ICommand cmd : subCmds) {
        String objectName = cmd.getObjLastName();
        int severity = dialogStatus.getSeverity();
        if (severity == IStatus.OK) {
            if (cmd.getCommandType() == CMD_MODIFY)
                ms.add(DeployStatus.getOKStatus(this, Messages.bind(Messages.BatchDeployJobCommand_successfullyUpdate, typeLabel, objectName)));
            else
                ms.add(DeployStatus.getOKStatus(this, Messages.bind(Messages.BatchDeployJobCommand_createSuccessfully, typeLabel, objectName)));
        } else if (severity == IStatus.INFO) {
            ms.add(DeployStatus.getInfoStatus(this, Messages.bind(Messages.JobInteractiveHandler_skipToDeploy, getLabel(), objectName)));
        } else if (severity == IStatus.ERROR) {
            Throwable ex = dialogStatus.getException();
            String msg = null != ex ? ex.getMessage() : dialogStatus.getMessage();
            ms.add(DeployStatus.getErrorStatus(this, Messages.bind(Messages.Deploy_fail_text, objectName, msg)));
        }
    }
}
Also used : ICommand(org.talend.mdm.repository.core.command.ICommand)

Aggregations

ICommand (org.talend.mdm.repository.core.command.ICommand)18 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)8 CommandManager (org.talend.mdm.repository.core.command.CommandManager)8 IStatus (org.eclipse.core.runtime.IStatus)6 CommandStack (org.talend.mdm.repository.core.command.CommandStack)6 AbstractDeployCommand (org.talend.mdm.repository.core.command.deploy.AbstractDeployCommand)6 MultiStatus (org.eclipse.core.runtime.MultiStatus)5 MDMServerDef (org.talend.mdm.repository.model.mdmmetadata.MDMServerDef)4 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)3 BatchDeployJobCommand (org.talend.mdm.repository.core.command.deploy.job.BatchDeployJobCommand)3 ArrayList (java.util.ArrayList)2 LinkedList (java.util.LinkedList)2 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)2 DeployStatus (org.talend.mdm.repository.core.service.DeployService.DeployStatus)2 SelectServerDefDialog (org.talend.mdm.workbench.serverexplorer.ui.dialogs.SelectServerDefDialog)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 HashSet (java.util.HashSet)1 List (java.util.List)1 IEditorInput (org.eclipse.ui.IEditorInput)1 IProgressService (org.eclipse.ui.progress.IProgressService)1