Search in sources :

Example 11 with IProjectFacet

use of org.eclipse.wst.common.project.facet.core.IProjectFacet in project mdw-designer by CenturyLinkCloud.

the class ProjectInflator method inflateCloudProject.

public void inflateCloudProject(final IRunnableContext container) {
    getProject().setCloudProject(true);
    // get a project handle
    final IProject newProjectHandle = ResourcesPlugin.getWorkspace().getRoot().getProject(workflowProject.getName());
    // get a project descriptor
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    final IProjectDescription description = workspace.newProjectDescription(newProjectHandle.getName());
    // create the new project operation
    IRunnableWithProgress op = new IRunnableWithProgress() {

        public void run(IProgressMonitor monitor) throws InvocationTargetException {
            Repository newRepo = null;
            try {
                if (workflowProject.getPersistType() == PersistType.Git)
                    createGitRepository(monitor);
                CreateProjectOperation op = new CreateProjectOperation(description, "MDW Cloud Project");
                PlatformUI.getWorkbench().getOperationSupport().getOperationHistory().execute(op, monitor, WorkspaceUndoUtil.getUIInfoAdapter(shell));
            } catch (Exception ex) {
                throw new InvocationTargetException(ex);
            } finally {
                if (newRepo != null)
                    newRepo.close();
            }
        }
    };
    // run the new project creation operation
    try {
        container.run(false, false, op);
        ProgressMonitorDialog pmDialog = new MdwProgressMonitorDialog(MdwPlugin.getShell());
        pmDialog.run(true, false, new IRunnableWithProgress() {

            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                monitor.beginTask("Inflating Workflow Project", 250);
                monitor.worked(5);
                // configure as Java project
                ProjectConfigurator projConf = new ProjectConfigurator(getProject(), MdwPlugin.getSettings());
                projConf.setJava(new SubProgressMonitor(monitor, 3));
                ProjectUpdater updater = new ProjectUpdater(getProject(), MdwPlugin.getSettings());
                // bootstrap
                updater.updateMappingFiles(new SubProgressMonitor(monitor, 3));
                // versions
                // of
                // the
                // property
                // files
                updater.updateFrameworkJars(new SubProgressMonitor(monitor, 150));
                updater.updateWebProjectJars(new SubProgressMonitor(monitor, 50));
                try {
                    if (getProject().isOsgi())
                        projConf.addJavaProjectSourceFolder(getProject().getOsgiSettings().getSourceDir(), new SubProgressMonitor(monitor, 3));
                    else if (!getProject().isWar())
                        projConf.addJavaProjectSourceFolder("src", monitor);
                    projConf.setJavaBuildOutputPath("build/classes", new SubProgressMonitor(monitor, 5));
                    projConf.addFrameworkJarsToClasspath(monitor);
                    // add the workflow facet
                    // already
                    getProject().setSkipFacetPostInstallUpdates(true);
                    // did
                    // framework
                    // updates
                    IFacetedProject facetedProject = ProjectFacetsManager.create(getProject().getSourceProject(), true, new SubProgressMonitor(monitor, 3));
                    IProjectFacetVersion javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getDefaultVersion();
                    if (Float.parseFloat(javaFacetVersion.getVersionString()) < 1.6)
                        javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getVersion("1.6");
                    if (workflowProject.isCloudOnly())
                        javaFacetVersion = ProjectFacetsManager.getProjectFacet("java").getVersion("1.7");
                    facetedProject.installProjectFacet(javaFacetVersion, null, new SubProgressMonitor(monitor, 3));
                    IProjectFacetVersion mdwFacet = ProjectFacetsManager.getProjectFacet("mdw.workflow").getDefaultVersion();
                    facetedProject.installProjectFacet(mdwFacet, getProject(), new SubProgressMonitor(monitor, 3));
                    if (workflowProject.isOsgi()) {
                        IProjectFacet utilFacet = ProjectFacetsManager.getProjectFacet("jst.utility");
                        IProjectFacetVersion facetVer = utilFacet.getDefaultVersion();
                        IActionDefinition def = facetVer.getActionDefinition(null, IFacetedProject.Action.Type.INSTALL);
                        Object cfg = def.createConfigObject();
                        facetedProject.installProjectFacet(ProjectFacetsManager.getProjectFacet("jst.utility").getDefaultVersion(), cfg, new SubProgressMonitor(monitor, 3));
                    } else if (workflowProject.isWar()) {
                        // add the facet to the xml file
                        IFile facetsFile = workflowProject.getSourceProject().getFile(".settings/org.eclipse.wst.common.project.facet.core.xml");
                        if (facetsFile.exists()) {
                            String content = new String(PluginUtil.readFile(facetsFile));
                            int insert = content.indexOf("</faceted-project>");
                            content = content.substring(0, insert) + "  <installed facet=\"jst.web\" version=\"3.0\"/>\n" + content.substring(insert);
                            PluginUtil.writeFile(facetsFile, content, new SubProgressMonitor(monitor, 3));
                        }
                    }
                    final ProjectConfigurator configurator = new ProjectConfigurator(getProject(), MdwPlugin.getSettings());
                    if (!workflowProject.isOsgi() && !workflowProject.isWar()) {
                        MdwPlugin.getDisplay().syncExec(new Runnable() {

                            public void run() {
                                try {
                                    configurator.createFrameworkSourceCodeAssociations(MdwPlugin.getShell(), new NullProgressMonitor());
                                } catch (CoreException ex) {
                                    PluginMessages.log(ex);
                                }
                            }
                        });
                    }
                    if (workflowProject.isOsgi()) {
                        generateOsgiArtifacts(new SubProgressMonitor(monitor, 10));
                        configurator.configureOsgiProject(shell, new SubProgressMonitor(monitor, 5));
                    } else if (workflowProject.isWar()) {
                        generateWarCloudArtifacts(new SubProgressMonitor(monitor, 10));
                        // force
                        configurator.addMavenNature(new SubProgressMonitor(monitor, 5));
                    // maven
                    // refresh
                    }
                } catch (Exception ex) {
                    throw new InvocationTargetException(ex);
                }
            }
        });
    } catch (Exception ex) {
        PluginMessages.uiError(ex, "Create Cloud Project", workflowProject);
    }
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IFacetedProject(org.eclipse.wst.common.project.facet.core.IFacetedProject) IFile(org.eclipse.core.resources.IFile) MdwProgressMonitorDialog(com.centurylink.mdw.plugin.designer.dialogs.MdwProgressMonitorDialog) IRunnableWithProgress(org.eclipse.jface.operation.IRunnableWithProgress) IProjectFacetVersion(org.eclipse.wst.common.project.facet.core.IProjectFacetVersion) IActionDefinition(org.eclipse.wst.common.project.facet.core.IActionDefinition) MdwProgressMonitorDialog(com.centurylink.mdw.plugin.designer.dialogs.MdwProgressMonitorDialog) ProgressMonitorDialog(org.eclipse.jface.dialogs.ProgressMonitorDialog) IProject(org.eclipse.core.resources.IProject) URISyntaxException(java.net.URISyntaxException) CoreException(org.eclipse.core.runtime.CoreException) IOException(java.io.IOException) ExecutionException(org.eclipse.core.commands.ExecutionException) InvocationTargetException(java.lang.reflect.InvocationTargetException) InvocationTargetException(java.lang.reflect.InvocationTargetException) SubProgressMonitor(org.eclipse.core.runtime.SubProgressMonitor) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) FileRepository(org.eclipse.jgit.internal.storage.file.FileRepository) Repository(org.eclipse.jgit.lib.Repository) VcsRepository(com.centurylink.mdw.plugin.project.model.VcsRepository) CoreException(org.eclipse.core.runtime.CoreException) IWorkspace(org.eclipse.core.resources.IWorkspace) IProjectDescription(org.eclipse.core.resources.IProjectDescription) IProjectFacet(org.eclipse.wst.common.project.facet.core.IProjectFacet) CreateProjectOperation(org.eclipse.ui.ide.undo.CreateProjectOperation)

Example 12 with IProjectFacet

use of org.eclipse.wst.common.project.facet.core.IProjectFacet in project webtools.sourceediting by eclipse.

the class FacetModuleCoreSupportDelegate method isWebProject.

/**
 * @param project
 * @return
 * @throws CoreException
 */
static boolean isWebProject(IProject project) {
    boolean is = false;
    try {
        IFacetedProject faceted = ProjectFacetsManager.create(project);
        if (ProjectFacetsManager.isProjectFacetDefined(JST_WEB_MODULE)) {
            IProjectFacet facet = ProjectFacetsManager.getProjectFacet(JST_WEB_MODULE);
            is = is || (faceted != null && faceted.hasProjectFacet(facet));
        }
        if (!is && ProjectFacetsManager.isProjectFacetDefined(WST_WEB_MODULE)) {
            IProjectFacet facet = ProjectFacetsManager.getProjectFacet(WST_WEB_MODULE);
            is = is || (faceted != null && faceted.hasProjectFacet(facet));
        }
        if (!is && ProjectFacetsManager.isProjectFacetDefined(JST_WEBFRAGMENT_MODULE)) {
            IProjectFacet facet = ProjectFacetsManager.getProjectFacet(JST_WEBFRAGMENT_MODULE);
            is = is || (faceted != null && faceted.hasProjectFacet(facet));
        }
    } catch (CoreException e) {
        Logger.logException(e);
    }
    return is;
}
Also used : IFacetedProject(org.eclipse.wst.common.project.facet.core.IFacetedProject) CoreException(org.eclipse.core.runtime.CoreException) IProjectFacet(org.eclipse.wst.common.project.facet.core.IProjectFacet)

Example 13 with IProjectFacet

use of org.eclipse.wst.common.project.facet.core.IProjectFacet in project webtools.sourceediting by eclipse.

the class FacetModuleCoreSupportDelegate method isDynamicWebProject.

/**
 * @param project
 * @return
 * @throws CoreException
 */
static boolean isDynamicWebProject(IProject project) {
    if (project == null)
        return false;
    try {
        if (ProjectFacetsManager.isProjectFacetDefined(JST_WEB_MODULE)) {
            IFacetedProject faceted = ProjectFacetsManager.create(project);
            IProjectFacet webModuleFacet = ProjectFacetsManager.getProjectFacet(JST_WEB_MODULE);
            if (faceted != null && faceted.hasProjectFacet(webModuleFacet)) {
                return true;
            }
        }
    } catch (CoreException e) {
        Logger.logException(e);
    }
    return false;
}
Also used : IFacetedProject(org.eclipse.wst.common.project.facet.core.IFacetedProject) CoreException(org.eclipse.core.runtime.CoreException) IProjectFacet(org.eclipse.wst.common.project.facet.core.IProjectFacet)

Example 14 with IProjectFacet

use of org.eclipse.wst.common.project.facet.core.IProjectFacet in project webtools.sourceediting by eclipse.

the class NewProjectDataModelFacetWizard method setRuntimeAndDefaultFacets.

protected void setRuntimeAndDefaultFacets(final IRuntime runtime) {
    final IFacetedProjectWorkingCopy dm = getFacetedProjectWorkingCopy();
    dm.setTargetedRuntimes(Collections.<IRuntime>emptySet());
    if (runtime != null) {
        final Set<IProjectFacetVersion> minFacets = new HashSet<IProjectFacetVersion>();
        try {
            for (IProjectFacet f : dm.getFixedProjectFacets()) {
                minFacets.add(f.getLatestSupportedVersion(runtime));
            }
        } catch (CoreException e) {
            throw new RuntimeException(e);
        }
        dm.setProjectFacets(minFacets);
        dm.setTargetedRuntimes(Collections.singleton(runtime));
    }
    dm.setSelectedPreset(FacetedProjectFramework.DEFAULT_CONFIGURATION_PRESET_ID);
}
Also used : CoreException(org.eclipse.core.runtime.CoreException) IProjectFacetVersion(org.eclipse.wst.common.project.facet.core.IProjectFacetVersion) IProjectFacet(org.eclipse.wst.common.project.facet.core.IProjectFacet) IFacetedProjectWorkingCopy(org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy) HashSet(java.util.HashSet)

Example 15 with IProjectFacet

use of org.eclipse.wst.common.project.facet.core.IProjectFacet in project webtools.sourceediting by eclipse.

the class StaticWebDeployableFactory method isValidModule.

/**
 * Returns true if the project represents a deployable project of this type.
 *
 * @param project
 *            org.eclipse.core.resources.IProject
 * @return boolean
 */
protected boolean isValidModule(IProject project) {
    try {
        IFacetedProject facetedProject = ProjectFacetsManager.create(project);
        if (facetedProject == null)
            return false;
        IProjectFacet webFacet = ProjectFacetsManager.getProjectFacet(IModuleConstants.WST_WEB_MODULE);
        return facetedProject.hasProjectFacet(webFacet);
    } catch (Exception e) {
        return false;
    }
}
Also used : IFacetedProject(org.eclipse.wst.common.project.facet.core.IFacetedProject) IProjectFacet(org.eclipse.wst.common.project.facet.core.IProjectFacet) CoreException(org.eclipse.core.runtime.CoreException)

Aggregations

IProjectFacet (org.eclipse.wst.common.project.facet.core.IProjectFacet)28 IFacetedProject (org.eclipse.wst.common.project.facet.core.IFacetedProject)17 CoreException (org.eclipse.core.runtime.CoreException)14 IProjectFacetVersion (org.eclipse.wst.common.project.facet.core.IProjectFacetVersion)10 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)7 HashSet (java.util.HashSet)6 IProject (org.eclipse.core.resources.IProject)6 IFacetedProjectWorkingCopy (org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy)5 IStatus (org.eclipse.core.runtime.IStatus)3 Action (org.eclipse.wst.common.project.facet.core.IFacetedProject.Action)3 IPluginPublisher (com.liferay.ide.server.core.IPluginPublisher)2 ArrayList (java.util.ArrayList)2 IFile (org.eclipse.core.resources.IFile)2 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)2 ILibraryProvider (org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider)2 LibraryInstallDelegate (org.eclipse.jst.common.project.facet.core.libprov.LibraryInstallDelegate)2 IDataModel (org.eclipse.wst.common.frameworks.datamodel.IDataModel)2 IRuntime (org.eclipse.wst.server.core.IRuntime)2 MdwProgressMonitorDialog (com.centurylink.mdw.plugin.designer.dialogs.MdwProgressMonitorDialog)1 VcsRepository (com.centurylink.mdw.plugin.project.model.VcsRepository)1