Search in sources :

Example 6 with JSONObject

use of org.talend.utils.json.JSONObject in project tdi-studio-se by Talend.

the class LoginProjectPage method saveLastUsedProjectAndBranch.

private void saveLastUsedProjectAndBranch() {
    Project project = getProject();
    loginHelper.getPrefManipulator().setLastProject(project.getLabel());
    if (loginHelper.isRemoteConnection(getConnection())) {
        String branch = getBranch();
        if (branch == null) {
            branch = SVNConstant.EMPTY;
        }
        try {
            loginHelper.getPrefManipulator().setLastSVNBranch(//$NON-NLS-1$
            new JSONObject(project.getEmfProject().getUrl()).getString("location"), //$NON-NLS-1$
            project.getTechnicalLabel(), branch);
        } catch (JSONException e) {
            ExceptionHandler.process(e);
        }
    } else {
        try {
            String jsonStr = project.getEmfProject().getUrl();
            if (jsonStr != null && !jsonStr.isEmpty()) {
                String lastLogonBranch = loginHelper.getPrefManipulator().getLastSVNBranch(new JSONObject(jsonStr).getString("location"), //$NON-NLS-1$
                project.getTechnicalLabel());
                ProjectManager.getInstance().setMainProjectBranch(project, lastLogonBranch);
            }
        } catch (Exception e) {
            ExceptionHandler.process(e);
        }
    }
}
Also used : Project(org.talend.core.model.general.Project) JSONObject(org.talend.utils.json.JSONObject) JSONException(org.talend.utils.json.JSONException) InvocationTargetException(java.lang.reflect.InvocationTargetException) SystemException(org.talend.commons.exception.SystemException) JSONException(org.talend.utils.json.JSONException) PersistenceException(org.talend.commons.exception.PersistenceException)

Example 7 with JSONObject

use of org.talend.utils.json.JSONObject in project tdi-studio-se by Talend.

the class JsonTableHandler method getDataRowList.

private List<List<Object>> getDataRowList(JSONObject rootObj, AtomicInteger columnsCount) throws JSONException {
    List<List<Object>> rows = new ArrayList<>();
    AtomicInteger count = columnsCount;
    if (count == null) {
        count = new AtomicInteger();
    }
    JSONArray jsonArr = rootObj.getJSONArray(DATA_KEY);
    for (int i = 0; i < jsonArr.length(); i++) {
        List<Object> row = new ArrayList<>();
        JSONArray rowArray = jsonArr.getJSONArray(i);
        for (int j = 0; j < rowArray.length(); j++) {
            row.add(rowArray.get(j));
        }
        if (row.size() > count.get()) {
            count.set(row.size());
        }
        rows.add(row);
    }
    return rows;
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ArrayList(java.util.ArrayList) JSONArray(org.talend.utils.json.JSONArray) List(java.util.List) ArrayList(java.util.ArrayList) JSONObject(org.talend.utils.json.JSONObject)

Example 8 with JSONObject

use of org.talend.utils.json.JSONObject in project tdi-studio-se by Talend.

the class JsonTableHandler method parse.

public JsonTableVO parse(String jsonStr) {
    JsonTableVO vo = null;
    try {
        JSONObject rootObj = new JSONObject(jsonStr);
        List<String> columnTitles = getColumnNames(rootObj);
        AtomicInteger maxColumnsCount = new AtomicInteger();
        List<List<Object>> dataRowList = getDataRowList(rootObj, maxColumnsCount);
        if (columnTitles.size() == 0) {
            columnTitles = getColumnTitles(maxColumnsCount.get());
        }
        vo = buildVO(columnTitles, dataRowList);
    } catch (Exception e) {
        //$NON-NLS-1$
        log.warn(Messages.getString("JsonTableHandler.parse.warnMsg", jsonStr), e);
    }
    return vo;
}
Also used : JSONObject(org.talend.utils.json.JSONObject) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) List(java.util.List) ArrayList(java.util.ArrayList) JSONException(org.talend.utils.json.JSONException)

Example 9 with JSONObject

use of org.talend.utils.json.JSONObject in project tdi-studio-se by Talend.

the class RepositoryService method isloginDialogDisabled.

private boolean isloginDialogDisabled() {
    //$NON-NLS-1$
    boolean reload = Boolean.parseBoolean(System.getProperty("talend.project.reload"));
    PreferenceManipulator preferenceManipulator = new PreferenceManipulator();
    ConnectionBean lastBean = null;
    if (reload) {
        final ConnectionUserPerReader instance = ConnectionUserPerReader.getInstance();
        instance.forceReadConnections();
        final String lastConncetion = ConnectionUserPerReader.getInstance().readLastConncetion();
        for (ConnectionBean bean : instance.readConnections()) {
            if (bean.getName().equals(lastConncetion)) {
                lastBean = bean;
                break;
            }
        }
    }
    if (ArrayUtils.contains(Platform.getApplicationArgs(), EclipseCommandLine.TALEND_DISABLE_LOGINDIALOG_COMMAND)) {
        //$NON-NLS-1$
        boolean deleteProjectIfExist = ArrayUtils.contains(Platform.getApplicationArgs(), "--deleteProjectIfExist");
        IBrandingService brandingService = (IBrandingService) GlobalServiceRegister.getDefault().getService(IBrandingService.class);
        brandingService.getBrandingConfiguration().setUseProductRegistration(false);
        ProxyRepositoryFactory repositoryFactory = ProxyRepositoryFactory.getInstance();
        //$NON-NLS-1$ //$NON-NLS-2$
        String projectName = getAppArgValue("-project", "AUTO_LOGIN_PROJECT");
        //$NON-NLS-1$
        String language = getAppArgValue("-language", ECodeLanguage.JAVA.getName());
        //$NON-NLS-1$ //$NON-NLS-2$
        String login = getAppArgValue("-login", "auto@login.com");
        //$NON-NLS-1$ //$NON-NLS-2$
        String password = getAppArgValue("-loginPass", "");
        //$NON-NLS-1$
        String tacURL = getAppArgValue("-tacURL", null);
        // if tacURL is null, the branch will be no useful.
        //$NON-NLS-1$
        String branch = getAppArgValue("-branch", null);
        // if tacURL is not null, will be remote
        final boolean isRemote = tacURL != null;
        if (reload && lastBean != null) {
            final String lastProject = preferenceManipulator.getLastProject();
            if (lastProject != null) {
                projectName = lastProject;
            }
            final String lastUser = lastBean.getUser();
            if (lastUser != null) {
                login = lastUser;
            }
            final String lastPass = lastBean.getPassword();
            if (lastPass != null) {
                password = lastPass;
            }
        }
        User userInfo = PropertiesFactoryImpl.eINSTANCE.createUser();
        userInfo.setLogin(login);
        try {
            userInfo.setPassword(PasswordHelper.encryptPasswd(password));
        } catch (NoSuchAlgorithmException e) {
            ExceptionHandler.process(e);
        }
        LoginHelper.isAutoLogonFailed = false;
        try {
            ConnectionBean bean = null;
            if (reload && lastBean != null) {
                // reload
                bean = lastBean;
            } else {
                if (tacURL != null && isRemote) {
                    // remote
                    bean = ConnectionBean.getDefaultRemoteConnectionBean();
                    bean.setUser(login);
                    bean.setPassword(password);
                    bean.getDynamicFields().put(RepositoryConstants.REPOSITORY_URL, tacURL);
                } else {
                    bean = ConnectionBean.getDefaultConnectionBean();
                }
            }
            Context ctx = CorePlugin.getContext();
            RepositoryContext repositoryContext = new RepositoryContext();
            ctx.putProperty(Context.REPOSITORY_CONTEXT_KEY, repositoryContext);
            repositoryContext.setUser(userInfo);
            repositoryContext.setClearPassword(password);
            repositoryContext.setFields(bean.getDynamicFields());
            repositoryFactory.setRepositoryFactoryFromProvider(RepositoryFactoryProvider.getRepositoriyById(bean.getRepositoryId()));
            Project project = null;
            for (Project p : repositoryFactory.readProject()) {
                if (p.getLabel().equals(projectName) || p.getTechnicalLabel().equals(projectName)) {
                    project = p;
                    break;
                }
            }
            if (!reload) {
                if (deleteProjectIfExist && project != null) {
                    IWorkspace workspace = ResourcesPlugin.getWorkspace();
                    IProject eclipseProject = workspace.getRoot().getProject(project.getTechnicalLabel());
                    if (eclipseProject.exists()) {
                        eclipseProject.delete(true, new NullProgressMonitor());
                    }
                }
                if (!isRemote && (project == null || deleteProjectIfExist)) {
                    Project projectInfor = //$NON-NLS-1$
                    ProjectHelper.createProject(//$NON-NLS-1$
                    projectName, //$NON-NLS-1$
                    "", language, userInfo);
                    project = repositoryFactory.createProject(projectInfor);
                }
            } else {
                if (project != null && !project.getEmfProject().isLocal() && repositoryFactory.isLocalConnectionProvider()) {
                    List<IRepositoryFactory> rfList = RepositoryFactoryProvider.getAvailableRepositories();
                    IRepositoryFactory remoteFactory = null;
                    for (IRepositoryFactory rf : rfList) {
                        if (!rf.isLocalConnectionProvider()) {
                            remoteFactory = rf;
                            break;
                        }
                    }
                    if (remoteFactory != null) {
                        repositoryFactory.setRepositoryFactoryFromProvider(remoteFactory);
                        repositoryFactory.getRepositoryContext().setOffline(true);
                    }
                }
            }
            if (!repositoryFactory.isLocalConnectionProvider()) {
                ProjectManager.getInstance().setMainProjectBranch(project, preferenceManipulator.getLastSVNBranch(new JSONObject(project.getEmfProject().getUrl()).getString("location"), project.getTechnicalLabel()));
            }
            if (project != null && reload && lastBean != null && repositoryFactory.getRepositoryContext().isOffline()) {
                if (PluginChecker.isSVNProviderPluginLoaded()) {
                    ISVNProviderService svnProviderService = (ISVNProviderService) GlobalServiceRegister.getDefault().getService(ISVNProviderService.class);
                    if (svnProviderService.isSVNProject(project)) {
                        String projectUrl = svnProviderService.getProjectUrl(project);
                        String lastBranch = preferenceManipulator.getLastSVNBranch(projectUrl, project.getTechnicalLabel());
                        ProjectManager.getInstance().setMainProjectBranch(project, lastBranch);
                    }
                }
            }
            if (project == null) {
                //$NON-NLS-1$
                throw new LoginException(Messages.getString("RepositoryService.projectNotFound", projectName));
            }
            repositoryContext.setProject(project);
            repositoryFactory.logOnProject(project, new NullProgressMonitor());
        } catch (final PersistenceException e) {
            if (e instanceof OperationCancelException) {
                Display.getDefault().syncExec(new Runnable() {

                    @Override
                    public void run() {
                        MessageDialog.openError(Display.getDefault().getActiveShell(), Messages.getString("LoginDialog.logonCanceled"), e.getLocalizedMessage());
                    }
                });
            } else {
                MessageBoxExceptionHandler.process(e, new Shell());
            }
            repositoryFactory.logOffProject();
            LoginHelper.isAutoLogonFailed = true;
        } catch (LoginException e) {
            MessageBoxExceptionHandler.process(e, new Shell());
            repositoryFactory.logOffProject();
            LoginHelper.isAutoLogonFailed = true;
        } catch (BusinessException e) {
            MessageBoxExceptionHandler.process(e, new Shell());
            repositoryFactory.logOffProject();
            LoginHelper.isAutoLogonFailed = true;
        } catch (CoreException e) {
            MessageBoxExceptionHandler.process(e, new Shell());
            repositoryFactory.logOffProject();
            LoginHelper.isAutoLogonFailed = true;
        } catch (JSONException e) {
            ExceptionHandler.process(e);
            LoginHelper.isAutoLogonFailed = true;
        }
        if (LoginHelper.isAutoLogonFailed) {
            LoginHelper.isRestart = true;
        }
        return true;
    }
    return false;
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) RepositoryContext(org.talend.core.context.RepositoryContext) PreferenceManipulator(org.talend.core.prefs.PreferenceManipulator) User(org.talend.core.model.properties.User) OperationCancelException(org.talend.commons.exception.OperationCancelException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) Shell(org.eclipse.swt.widgets.Shell) BusinessException(org.talend.commons.exception.BusinessException) ConnectionUserPerReader(org.talend.repository.ui.login.connections.ConnectionUserPerReader) IContext(org.talend.core.model.process.IContext) RepositoryContext(org.talend.core.context.RepositoryContext) Context(org.talend.core.context.Context) IRepositoryFactory(org.talend.core.repository.model.IRepositoryFactory) ISVNProviderService(org.talend.core.services.ISVNProviderService) JSONException(org.talend.utils.json.JSONException) IBrandingService(org.talend.core.ui.branding.IBrandingService) IProject(org.eclipse.core.resources.IProject) IProject(org.eclipse.core.resources.IProject) Project(org.talend.core.model.general.Project) ProxyRepositoryFactory(org.talend.core.repository.model.ProxyRepositoryFactory) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory) JSONObject(org.talend.utils.json.JSONObject) CoreException(org.eclipse.core.runtime.CoreException) IWorkspace(org.eclipse.core.resources.IWorkspace) PersistenceException(org.talend.commons.exception.PersistenceException) LoginException(org.talend.commons.exception.LoginException) ConnectionBean(org.talend.core.model.general.ConnectionBean)

Example 10 with JSONObject

use of org.talend.utils.json.JSONObject in project tdi-studio-se by Talend.

the class FunctionManagerExt method getFunctionFromColumn.

public Function getFunctionFromColumn(MetadataColumnExt column) {
    Function function = null;
    String functionInfo = column.getFunctionInfo();
    if (functionInfo != null) {
        try {
            JSONObject functionObj = new JSONObject(functionInfo);
            String functionName = functionObj.getString(Function.NAME);
            int functionSize = 0;
            JSONArray parametersArray = functionObj.getJSONArray(Function.PARAMETERS);
            if (parametersArray != null) {
                functionSize = parametersArray.length();
            }
            List<Function> funcs = getFunctionsByType(column.getTalendType());
            for (Function func : funcs) {
                if (func.getName().equals(functionName) && func.getParameters().size() == functionSize) {
                    function = func;
                    break;
                }
            }
            if (function != null) {
                function = function.clone(parametersArray);
            }
        } catch (JSONException e) {
            ExceptionHandler.process(e);
        }
    }
    return function;
}
Also used : JSONObject(org.talend.utils.json.JSONObject) JSONArray(org.talend.utils.json.JSONArray) JSONException(org.talend.utils.json.JSONException)

Aggregations

JSONObject (org.talend.utils.json.JSONObject)14 JSONException (org.talend.utils.json.JSONException)8 JSONArray (org.talend.utils.json.JSONArray)5 PersistenceException (org.talend.commons.exception.PersistenceException)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 Test (org.junit.Test)2 SystemException (org.talend.commons.exception.SystemException)2 Context (org.talend.core.context.Context)2 RepositoryContext (org.talend.core.context.RepositoryContext)2 ConnectionBean (org.talend.core.model.general.ConnectionBean)2 Project (org.talend.core.model.general.Project)2 PreferenceManipulator (org.talend.core.prefs.PreferenceManipulator)2 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 IProject (org.eclipse.core.resources.IProject)1 IWorkspace (org.eclipse.core.resources.IWorkspace)1 CoreException (org.eclipse.core.runtime.CoreException)1 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)1