Search in sources :

Example 16 with Project

use of org.talend.core.model.properties.Project in project tdi-studio-se by Talend.

the class ImportProjectsUtilities method importArchiveProjectAs.

public static void importArchiveProjectAs(Shell shell, String newName, String technicalName, String sourcePath, IProgressMonitor monitor) throws InvocationTargetException, InterruptedException, TarException, IOException {
    importArchiveProject(shell, technicalName, sourcePath, monitor);
    Project project = afterImportAs(newName, technicalName);
    // do additional actions after importing projects
    AfterImportProjectUtil.runAfterImportProjectActions(new org.talend.core.model.general.Project(project));
}
Also used : Project(org.talend.core.model.properties.Project) IProject(org.eclipse.core.resources.IProject)

Example 17 with Project

use of org.talend.core.model.properties.Project in project tdi-studio-se by Talend.

the class ExportItemUtil method exportItems2.

private Map<File, IPath> exportItems2(Collection<Item> items, File destinationDirectory, boolean projectFolderStructure, IProgressMonitor progressMonitor) throws Exception {
    Map<File, IPath> toExport = new HashMap<File, IPath>();
    //$NON-NLS-1$
    progressMonitor.beginTask("Export Items", items.size() + 1);
    final boolean oldMeasureActived = TimeMeasure.measureActive;
    if (!oldMeasureActived) {
        // not active before.
        TimeMeasure.display = TimeMeasure.displaySteps = TimeMeasure.measureActive = CommonsPlugin.isDebugMode();
    }
    //$NON-NLS-1$
    final String idTimer = "exportItems";
    TimeMeasure.begin(idTimer);
    try {
        // store item and its corresponding project
        Map<Item, Project> itemProjectMap = new HashMap<Item, Project>();
        Collection<Item> allItems = new ArrayList<Item>(items);
        items.clear();
        // ycbai added for TDI-21387
        if (allItems.isEmpty()) {
            addTalendProjectFile(toExport, destinationDirectory);
            return toExport;
        }
        allItems = sortItemsByProject(allItems, itemProjectMap);
        ITransformService tdmService = null;
        if (GlobalServiceRegister.getDefault().isServiceRegistered(ITransformService.class)) {
            tdmService = (ITransformService) GlobalServiceRegister.getDefault().getService(ITransformService.class);
        }
        itemProjectMap.clear();
        Set<String> jarNameList = new HashSet<String>();
        Iterator<Item> iterator = allItems.iterator();
        Set<String> projectHasTdm = new HashSet<String>();
        while (iterator.hasNext()) {
            Item item = iterator.next();
            project = pManager.getProject(item);
            String label = item.getProperty().getLabel();
            // project
            addTalendProjectFile(toExport, destinationDirectory);
            // tdm .settings/com.oaklandsw.base.projectProps
            String technicalLabel = project.getTechnicalLabel();
            if (tdmService != null && !projectHasTdm.contains(technicalLabel) && tdmService.isTransformItem(item)) {
                projectHasTdm.add(technicalLabel);
                IPath propsSourcePath = getProjectLocationPath(technicalLabel).append(FileConstants.TDM_PROPS_PATH);
                IPath tdmPropsPath = getProjectOutputPath().append(FileConstants.TDM_PROPS_PATH);
                IPath propsTargetPath = new Path(destinationDirectory.getAbsolutePath()).append(tdmPropsPath);
                File source = new File(propsSourcePath.toPortableString());
                if (source.exists()) {
                    copyAndAddResource(toExport, propsSourcePath, propsTargetPath, tdmPropsPath);
                }
            }
            // tdm simple files
            if (item.getProperty() instanceof FakePropertyImpl) {
                FakePropertyImpl fakeProperty = (FakePropertyImpl) item.getProperty();
                IPath itemResPath = fakeProperty.getItemPath().makeRelative();
                IPath itemSourcePath = getProjectLocationPath(technicalLabel).removeLastSegments(1).append(itemResPath);
                // replace the project segment
                IPath outputRelativeItemPath = getProjectOutputPath().append(itemResPath.removeFirstSegments(1));
                IPath itemTargetPath = new Path(destinationDirectory.getAbsolutePath()).append(outputRelativeItemPath);
                copyAndAddResource(toExport, itemSourcePath, itemTargetPath, outputRelativeItemPath);
                continue;
            }
            // property and related resources eg:item, reference files
            XmiResourceManager localRepositoryManager = ProxyRepositoryFactory.getInstance().getRepositoryFactoryFromProvider().getResourceManager();
            IPath propertyPath = null;
            for (Resource curResource : localRepositoryManager.getAffectedResources(item.getProperty())) {
                URI uri = curResource.getURI();
                IPath relativeItemPath = URIHelper.convert(uri).makeRelative();
                Project project = ProjectManager.getInstance().getProject(item);
                IPath sourcePath = getProjectLocationPath(project.getTechnicalLabel()).removeLastSegments(1).append(relativeItemPath);
                // replace the project segment
                IPath outputRelativeItemPath = getProjectOutputPath().append(relativeItemPath.removeFirstSegments(1));
                IPath targetPath = new Path(destinationDirectory.getAbsolutePath()).append(outputRelativeItemPath);
                copyAndAddResource(toExport, sourcePath, targetPath, outputRelativeItemPath);
                if (uri.lastSegment() != null && uri.lastSegment().endsWith(FileConstants.PROPERTIES_FILE_SUFFIX)) {
                    propertyPath = targetPath;
                }
            }
            if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
                ITestContainerProviderService testContainerService = (ITestContainerProviderService) GlobalServiceRegister.getDefault().getService(ITestContainerProviderService.class);
                if (testContainerService != null) {
                    List<IResource> dataFileList = testContainerService.getDataFiles(item);
                    for (IResource dataFile : dataFileList) {
                        IPath relativeItemPath = dataFile.getFullPath();
                        IPath sourcePath = getProjectLocationPath(project.getTechnicalLabel()).removeLastSegments(1).append(relativeItemPath);
                        // replace the project segment
                        IPath outputRelativeItemPath = getProjectOutputPath().append(relativeItemPath.removeFirstSegments(1));
                        IPath targetPath = new Path(destinationDirectory.getAbsolutePath()).append(outputRelativeItemPath);
                        copyAndAddResource(toExport, sourcePath, targetPath, outputRelativeItemPath);
                    }
                }
            }
            if (propertyPath == null) {
                return toExport;
            }
            if (item instanceof RoutineItem) {
                List list = ((RoutineItem) item).getImports();
                for (int i = 0; i < list.size(); i++) {
                    String jarName = ((IMPORTTypeImpl) list.get(i)).getMODULE();
                    jarNameList.add(jarName.toString());
                }
            }
            boolean needChangeItem = false;
            needChangeItem = needChangeItem || item.getState().isLocked();
            // keep the same as function fixItem()
            needChangeItem = needChangeItem || !item.getProperty().getLabel().replace(' ', '_').equals(item.getProperty().getLabel());
            if (needChangeItem) {
                // load in memory, fix the item and save it
                XmiResourceManager xmiMamanger = new XmiResourceManager();
                // loadProject
                IPath proRelativePath = getProjectOutputPath().append(FileConstants.LOCAL_PROJECT_FILENAME);
                IPath proTargetPath = new Path(destinationDirectory.getAbsolutePath()).append(proRelativePath);
                Resource loadProject = projectResourcMap.get(proTargetPath);
                if (loadProject == null) {
                    URI projectUri = URI.createFileURI(proTargetPath.toPortableString());
                    loadProject = xmiMamanger.resourceSet.getResource(projectUri, true);
                    projectResourcMap.put(proTargetPath, loadProject);
                }
                URI propertyUri = URI.createFileURI(propertyPath.toPortableString());
                Resource propertyResource = xmiMamanger.resourceSet.getResource(propertyUri, true);
                Property loadProperty = (Property) EcoreUtil.getObjectByType(propertyResource.getContents(), PropertiesPackage.eINSTANCE.getProperty());
                Item newItem = loadProperty.getItem();
                fixItem(newItem);
                fixItemLockState(newItem);
                saveResources(xmiMamanger.resourceSet);
            }
            iterator.remove();
            TimeMeasure.step(idTimer, "export item: " + label);
            progressMonitor.worked(1);
        }
        ILibraryManagerService repositoryBundleService = CorePlugin.getDefault().getRepositoryBundleService();
        // add the routines of the jars at the end, to add them only once in the export.
        IPath libPath = getProjectOutputPath().append(JavaUtils.JAVA_LIB_DIRECTORY);
        String libAbsPath = new Path(destinationDirectory.toString()).append(libPath.toString()).toPortableString();
        for (String jarName : jarNameList) {
            if (repositoryBundleService.contains(jarName)) {
                repositoryBundleService.retrieve(jarName, libAbsPath, new NullProgressMonitor());
                toExport.put(new File(libAbsPath, jarName), libPath.append(jarName));
            }
        }
    } catch (Exception e) {
        ExceptionHandler.process(e);
    } finally {
        TimeMeasure.end(idTimer);
        // if active before, not disable and active still.
        if (!oldMeasureActived) {
            TimeMeasure.display = TimeMeasure.displaySteps = TimeMeasure.measureActive = false;
        }
    }
    return toExport;
}
Also used : IMPORTTypeImpl(org.talend.designer.core.model.utils.emf.component.impl.IMPORTTypeImpl) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) FakePropertyImpl(org.talend.core.model.repository.FakePropertyImpl) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) URI(org.eclipse.emf.common.util.URI) Item(org.talend.core.model.properties.Item) RoutineItem(org.talend.core.model.properties.RoutineItem) ILibraryManagerService(org.talend.core.ILibraryManagerService) List(java.util.List) ArrayList(java.util.ArrayList) Property(org.talend.core.model.properties.Property) HashSet(java.util.HashSet) TarFileExporterFullPath(org.talend.core.ui.export.TarFileExporterFullPath) IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) ZipFileExporterFullPath(org.talend.core.ui.export.ZipFileExporterFullPath) IFileExporterFullPath(org.talend.core.ui.export.IFileExporterFullPath) ITransformService(org.talend.core.service.ITransformService) IPath(org.eclipse.core.runtime.IPath) Resource(org.eclipse.emf.ecore.resource.Resource) IResource(org.eclipse.core.resources.IResource) XmiResourceManager(org.talend.core.repository.utils.XmiResourceManager) RoutineItem(org.talend.core.model.properties.RoutineItem) ITestContainerProviderService(org.talend.core.ui.ITestContainerProviderService) IOException(java.io.IOException) PersistenceException(org.talend.commons.exception.PersistenceException) Project(org.talend.core.model.properties.Project) IProject(org.eclipse.core.resources.IProject) File(java.io.File) IResource(org.eclipse.core.resources.IResource)

Example 18 with Project

use of org.talend.core.model.properties.Project in project tdi-studio-se by Talend.

the class ImportItemWizardPage method createTreeViewer.

private TreeViewer createTreeViewer(Composite listComposite) {
    filteredCheckboxTree = new FilteredCheckboxTree(listComposite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    CheckboxTreeViewer viewer = filteredCheckboxTree.getViewer();
    viewer.setContentProvider(new ITreeContentProvider() {

        @Override
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof IContainerNode) {
                return ((IContainerNode) parentElement).getChildren().toArray();
            }
            return null;
        }

        @Override
        public Object[] getElements(Object inputElement) {
            // return getValidItems();
            return repositoryUtil.getTreeViewInput().toArray();
        }

        @Override
        public boolean hasChildren(Object element) {
            if (element instanceof IContainerNode) {
                return ((IContainerNode) element).hasChildren();
            }
            return false;
        }

        @Override
        public Object getParent(Object element) {
            return null;
        }

        @Override
        public void dispose() {
        }

        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
    });
    viewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof IContainerNode) {
                if (element instanceof ProjectNode) {
                    Project project = ((ProjectNode) element).getProject();
                    return ProjectManager.getProjectDisplayLabel(project);
                }
                return ((IContainerNode) element).getLabel();
            } else if (element instanceof ItemRecord) {
                return ((ItemRecord) element).getLabel();
            }
            return super.getText(element);
        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof IContainerNode) {
                return ((IContainerNode) element).getImage();
            } else if (element instanceof ItemRecord) {
                return ((ItemRecord) element).getImage();
            }
            return super.getImage(element);
        }
    });
    viewer.setSorter(TreeBuilder.createSorter());
    viewer.setInput(this);
    viewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            filteredCheckboxTree.calculateCheckedLeafNodes();
            updateFinishStatus();
        }
    });
    filteredCheckboxTree.getViewer().addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return selectRepositoryNode(viewer, element);
        }
    });
    return viewer;
}
Also used : ITreeContentProvider(org.eclipse.jface.viewers.ITreeContentProvider) FilteredCheckboxTree(org.talend.core.ui.advanced.composite.FilteredCheckboxTree) ViewerFilter(org.eclipse.jface.viewers.ViewerFilter) ICheckStateListener(org.eclipse.jface.viewers.ICheckStateListener) TableViewer(org.eclipse.jface.viewers.TableViewer) TreeViewer(org.eclipse.jface.viewers.TreeViewer) Viewer(org.eclipse.jface.viewers.Viewer) CheckboxTreeViewer(org.eclipse.jface.viewers.CheckboxTreeViewer) Image(org.eclipse.swt.graphics.Image) IContainerNode(org.talend.repository.imports.TreeBuilder.IContainerNode) CheckboxTreeViewer(org.eclipse.jface.viewers.CheckboxTreeViewer) Project(org.talend.core.model.properties.Project) RepositoryViewObject(org.talend.core.model.repository.RepositoryViewObject) ProjectNode(org.talend.repository.imports.TreeBuilder.ProjectNode) CheckStateChangedEvent(org.eclipse.jface.viewers.CheckStateChangedEvent) LabelProvider(org.eclipse.jface.viewers.LabelProvider)

Example 19 with Project

use of org.talend.core.model.properties.Project in project tdi-studio-se by Talend.

the class BuildJobHandler method getCorrespondingProjectRootFolder.

protected IProject getCorrespondingProjectRootFolder(Item item) throws CoreException {
    // for bug 17685
    org.talend.core.model.properties.Project p = getProject(item);
    IProject project = null;
    if (p != null) {
        project = ResourcesPlugin.getWorkspace().getRoot().getProject(p.getTechnicalLabel().toUpperCase());
        if (project != null) {
            return project;
        }
    }
    return null;
}
Also used : Project(org.talend.core.model.properties.Project) IProject(org.eclipse.core.resources.IProject)

Example 20 with Project

use of org.talend.core.model.properties.Project in project tdi-studio-se by Talend.

the class ImportItemUtil method checkProject.

private boolean checkProject(Project project, ItemRecord itemRecord) {
    boolean checkProject = false;
    // update the old project which hasn't adapted to the new migration task system.
    if (!updatedProjects.contains(project)) {
        CorePlugin.getDefault().getMigrationToolService().updateMigrationSystem(project, false);
        updatedProjects.add(project);
    }
    Project currentProject = ProjectManager.getInstance().getCurrentProject().getEmfProject();
    if (project != null) {
        if (checkMigrationTasks(currentProject, project, itemRecord)) {
            checkProject = true;
        }
    } else {
        //$NON-NLS-1$
        itemRecord.addError(Messages.getString("RepositoryUtil.ProjectNotFound"));
    }
    return checkProject;
}
Also used : Project(org.talend.core.model.properties.Project)

Aggregations

Project (org.talend.core.model.properties.Project)26 IProject (org.eclipse.core.resources.IProject)11 IPath (org.eclipse.core.runtime.IPath)10 Path (org.eclipse.core.runtime.Path)8 PersistenceException (org.talend.commons.exception.PersistenceException)7 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)6 File (java.io.File)5 Item (org.talend.core.model.properties.Item)5 ProcessItem (org.talend.core.model.properties.ProcessItem)5 ArrayList (java.util.ArrayList)4 CoreException (org.eclipse.core.runtime.CoreException)4 URI (org.eclipse.emf.common.util.URI)4 InternalEObject (org.eclipse.emf.ecore.InternalEObject)4 Property (org.talend.core.model.properties.Property)4 RoutineItem (org.talend.core.model.properties.RoutineItem)4 IOException (java.io.IOException)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)3 EObject (org.eclipse.emf.ecore.EObject)3 Resource (org.eclipse.emf.ecore.resource.Resource)3 URL (java.net.URL)2