Search in sources :

Example 16 with Plugin

use of org.apache.maven.model.Plugin in project liferay-ide by liferay.

the class LiferayMavenProjectConfigurator method configure.

@Override
public void configure(ProjectConfigurationRequest request, IProgressMonitor monitor) throws CoreException {
    if (monitor == null) {
        monitor = new NullProgressMonitor();
    }
    monitor.beginTask(NLS.bind(Msgs.configuringLiferayProject, request.getProject()), 100);
    Plugin liferayMavenPlugin = MavenUtil.getPlugin(request.getMavenProjectFacade(), ILiferayMavenConstants.LIFERAY_MAVEN_PLUGIN_KEY, monitor);
    if (!_shouldConfigure(liferayMavenPlugin, request)) {
        monitor.done();
        return;
    }
    IProject project = request.getProject();
    IFile pomFile = project.getFile(IMavenConstants.POM_FILE_NAME);
    IFacetedProject facetedProject = ProjectFacetsManager.create(project, false, monitor);
    _removeLiferayMavenMarkers(project);
    monitor.worked(25);
    MavenProject mavenProject = request.getMavenProject();
    List<MavenProblemInfo> errors = _findLiferayMavenPluginProblems(request, monitor);
    if (ListUtil.isNotEmpty(errors)) {
        try {
            markerManager.addErrorMarkers(pomFile, ILiferayMavenConstants.LIFERAY_MAVEN_MARKER_CONFIGURATION_WARNING_ID, errors);
        } catch (CoreException ce) {
        // no need to log this error its just best effort
        }
    }
    monitor.worked(25);
    MavenProblemInfo installProblem = null;
    if (_shouldInstallNewLiferayFacet(facetedProject)) {
        installProblem = _installNewLiferayFacet(facetedProject, request, monitor);
    }
    if (_shouldAddLiferayNature(mavenProject, facetedProject)) {
        LiferayNature.addLiferayNature(project, monitor);
    }
    monitor.worked(25);
    if (installProblem != null) {
        this.markerManager.addMarker(pomFile, ILiferayMavenConstants.LIFERAY_MAVEN_MARKER_CONFIGURATION_WARNING_ID, installProblem.getMessage(), installProblem.getLocation().getLineNumber(), IMarker.SEVERITY_WARNING);
    } else {
        String pluginType = MavenUtil.getLiferayMavenPluginType(mavenProject);
        // IDE-817 we need to mak sure that on deployment it will have the correct
        // suffix for project name
        IVirtualComponent projectComponent = ComponentCore.createComponent(project);
        try {
            if (projectComponent != null) {
                String deployedName = projectComponent.getDeployedName();
                Matcher m = _versionPattern.matcher(deployedName);
                if (m.matches()) {
                    deployedName = m.group(1);
                    configureDeployedName(project, deployedName);
                }
                if (pluginType != null) {
                    String pluginTypeSuffix = "-" + pluginType;
                    String deployedFileName = project.getName() + pluginTypeSuffix;
                    if ((deployedName == null) || ((deployedName != null) && !deployedName.endsWith(pluginTypeSuffix))) {
                        configureDeployedName(project, deployedFileName);
                    }
                    String oldContextRoot = ComponentUtilities.getServerContextRoot(project);
                    if ((oldContextRoot == null) || ((oldContextRoot != null) && !oldContextRoot.endsWith(pluginTypeSuffix))) {
                        IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(LiferayMavenCore.PLUGIN_ID);
                        boolean setMavenPluginSuffix = prefs.getBoolean(LiferayMavenCore.PREF_ADD_MAVEN_PLUGIN_SUFFIX, false);
                        if (setMavenPluginSuffix) {
                            ComponentUtilities.setServerContextRoot(project, deployedFileName);
                        }
                    }
                }
            }
        } catch (Exception e) {
            LiferayMavenCore.logError("Unable to configure deployed name for project " + project.getName(), e);
        }
        if (ILiferayMavenConstants.THEME_PLUGIN_TYPE.equals(pluginType)) {
            IVirtualComponent component = ComponentCore.createComponent(project, true);
            if (component != null) {
                // make sure to update the main deployment folder
                WarPluginConfiguration config = new WarPluginConfiguration(mavenProject, project);
                String warSourceDirectory = config.getWarSourceDirectory();
                IFolder contentFolder = project.getFolder(warSourceDirectory);
                IPath warPath = _rootPath.append(contentFolder.getProjectRelativePath());
                IPath themeFolder = _rootPath.append(getThemeTargetFolder(mavenProject, project));
                // add a link to our m2e-liferay/theme-resources folder into deployment assembly
                WTPProjectsUtil.insertLinkBefore(project, themeFolder, warPath, _rootPath, monitor);
            }
        }
    }
    if ((project != null) && ProjectUtil.isHookProject(project)) {
        HookDescriptorHelper hookDescriptor = new HookDescriptorHelper(project);
        String customJSPFolder = hookDescriptor.getCustomJSPFolder(null);
        if (customJSPFolder != null) {
            IWebProject webproject = LiferayCore.create(IWebProject.class, project);
            if ((webproject != null) && (webproject.getDefaultDocrootFolder() != null)) {
                IFolder docFolder = webproject.getDefaultDocrootFolder();
                IPath newPath = Path.fromOSString(customJSPFolder);
                IPath pathValue = docFolder.getFullPath().append(newPath);
                boolean disableCustomJspValidation = LiferayMavenCore.getPreferenceBoolean(LiferayMavenCore.PREF_DISABLE_CUSTOM_JSP_VALIDATION);
                if (disableCustomJspValidation) {
                    HookUtil.configureJSPSyntaxValidationExclude(project, project.getFolder(pathValue.makeRelativeTo(project.getFullPath())), true);
                }
            }
        }
    }
    monitor.worked(25);
    monitor.done();
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IFacetedProject(org.eclipse.wst.common.project.facet.core.IFacetedProject) IFile(org.eclipse.core.resources.IFile) IPath(org.eclipse.core.runtime.IPath) Matcher(java.util.regex.Matcher) IEclipsePreferences(org.eclipse.core.runtime.preferences.IEclipsePreferences) IWebProject(com.liferay.ide.core.IWebProject) WarPluginConfiguration(org.eclipse.m2e.wtp.WarPluginConfiguration) IProject(org.eclipse.core.resources.IProject) CoreException(org.eclipse.core.runtime.CoreException) MavenProblemInfo(org.eclipse.m2e.core.internal.markers.MavenProblemInfo) MavenProject(org.apache.maven.project.MavenProject) CoreException(org.eclipse.core.runtime.CoreException) HookDescriptorHelper(com.liferay.ide.hook.core.dd.HookDescriptorHelper) IVirtualComponent(org.eclipse.wst.common.componentcore.resources.IVirtualComponent) Plugin(org.apache.maven.model.Plugin) IFolder(org.eclipse.core.resources.IFolder)

Example 17 with Plugin

use of org.apache.maven.model.Plugin in project liferay-ide by liferay.

the class MavenGoalUtil method getMavenInitBundleGoal.

public static String getMavenInitBundleGoal(IProject project) {
    try {
        String pluginKey = ILiferayMavenConstants.LIFERAY_MAVEN_PLUGINS_GROUP_ID + ":" + ILiferayMavenConstants.LIFERAY_MAVEN_PLUGIN_ARTIFACT_ID;
        Plugin plugin = MavenUtil.getPlugin(MavenUtil.getProjectFacade(project), pluginKey, new NullProgressMonitor());
        if (plugin == null) {
            pluginKey = ILiferayMavenConstants.NEW_LIFERAY_MAVEN_PLUGINS_GROUP_ID + ":" + ILiferayMavenConstants.LIFERAY_MAVEN_PLUGINS_BUNDLE_SUPPORT_KEY;
            plugin = MavenUtil.getPlugin(MavenUtil.getProjectFacade(project), pluginKey, new NullProgressMonitor());
        }
        return getMavenInitBundleGoal(plugin);
    } catch (CoreException ce) {
        LiferayMavenCore.logError(ce);
    }
    return ILiferayMavenConstants.PLUGIN_GOAL_INIT_BUNDLE;
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) CoreException(org.eclipse.core.runtime.CoreException) Plugin(org.apache.maven.model.Plugin)

Example 18 with Plugin

use of org.apache.maven.model.Plugin in project liferay-ide by liferay.

the class MavenProjectBuilder method initBundle.

public IStatus initBundle(IProject project, String bundleUrl, IProgressMonitor monitor) throws CoreException {
    if (bundleUrl != null) {
        File pomFile = FileUtil.getFile(project.getFile("pom.xml"));
        MavenXpp3Reader mavenReader = new MavenXpp3Reader();
        MavenXpp3Writer mavenWriter = new MavenXpp3Writer();
        try (FileReader reader = new FileReader(pomFile)) {
            Model model = mavenReader.read(reader);
            if (model != null) {
                Build build = model.getBuild();
                Plugin plugin = build.getPluginsAsMap().get("com.liferay:com.liferay.portal.tools.bundle.support");
                if (plugin != null) {
                    try (FileWriter fileWriter = new FileWriter(pomFile)) {
                        Xpp3Dom origin = (Xpp3Dom) plugin.getConfiguration();
                        Xpp3Dom newConfiguration = new Xpp3Dom("configuration");
                        Xpp3Dom url = new Xpp3Dom("url");
                        url.setValue(bundleUrl);
                        newConfiguration.addChild(url);
                        plugin.setConfiguration(Xpp3Dom.mergeXpp3Dom(newConfiguration, origin));
                        mavenWriter.write(fileWriter, model);
                    }
                }
            }
        } catch (Exception e) {
            LiferayMavenCore.logError("Could not write file in" + pomFile, e);
        }
    }
    IMavenProjectFacade facade = MavenUtil.getProjectFacade(project, monitor);
    if (_execMavenLaunch(project, MavenGoalUtil.getMavenInitBundleGoal(project), facade, monitor)) {
        return Status.OK_STATUS;
    }
    return LiferayMavenCore.createErrorStatus("run init-bundle error");
}
Also used : Xpp3Dom(org.codehaus.plexus.util.xml.Xpp3Dom) Build(org.apache.maven.model.Build) FileWriter(java.io.FileWriter) Model(org.apache.maven.model.Model) MavenXpp3Reader(org.apache.maven.model.io.xpp3.MavenXpp3Reader) FileReader(java.io.FileReader) IMavenProjectFacade(org.eclipse.m2e.core.project.IMavenProjectFacade) IFile(org.eclipse.core.resources.IFile) File(java.io.File) CoreException(org.eclipse.core.runtime.CoreException) MavenXpp3Writer(org.apache.maven.model.io.xpp3.MavenXpp3Writer) DebugPlugin(org.eclipse.debug.core.DebugPlugin) ResourcesPlugin(org.eclipse.core.resources.ResourcesPlugin) Plugin(org.apache.maven.model.Plugin) MavenPlugin(org.eclipse.m2e.core.MavenPlugin)

Example 19 with Plugin

use of org.apache.maven.model.Plugin in project liferay-ide by liferay.

the class BundleProjectConfigurator method _isMavenBundlePlugin.

private boolean _isMavenBundlePlugin(IProject project) {
    NullProgressMonitor monitor = new NullProgressMonitor();
    IMavenProjectFacade facade = MavenUtil.getProjectFacade(project, monitor);
    if (facade != null) {
        try {
            MavenProject mavenProject = facade.getMavenProject(new NullProgressMonitor());
            if ((mavenProject != null) && "bundle".equals(mavenProject.getPackaging())) {
                Plugin mavenBundlePlugin = MavenUtil.getPlugin(facade, ILiferayMavenConstants.MAVEN_BUNDLE_PLUGIN_KEY, monitor);
                if (mavenBundlePlugin != null) {
                    return true;
                }
            } else if ((mavenProject != null) && "jar".equals(mavenProject.getPackaging())) {
                Plugin bndMavenPlugin = MavenUtil.getPlugin(facade, ILiferayMavenConstants.BND_MAVEN_PLUGIN_KEY, monitor);
                if (bndMavenPlugin != null) {
                    return true;
                }
            }
        } catch (CoreException ce) {
        }
    }
    return false;
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) MavenProject(org.apache.maven.project.MavenProject) CoreException(org.eclipse.core.runtime.CoreException) IMavenProjectFacade(org.eclipse.m2e.core.project.IMavenProjectFacade) Plugin(org.apache.maven.model.Plugin)

Example 20 with Plugin

use of org.apache.maven.model.Plugin in project fabric8-maven-plugin by fabric8io.

the class SpringBootGenerator method isSpringBootRepackage.

private boolean isSpringBootRepackage() {
    MavenProject project = getProject();
    Plugin plugin = project.getPlugin(SPRING_BOOT_MAVEN_PLUGIN_GA);
    if (plugin != null) {
        Map<String, PluginExecution> executionsAsMap = plugin.getExecutionsAsMap();
        if (executionsAsMap != null) {
            for (PluginExecution execution : executionsAsMap.values()) {
                List<String> goals = execution.getGoals();
                if (goals.contains("repackage")) {
                    log.verbose("Using fat jar packaging as the spring boot plugin is using `repackage` goal execution");
                    return true;
                }
            }
        }
    }
    return false;
}
Also used : PluginExecution(org.apache.maven.model.PluginExecution) MavenProject(org.apache.maven.project.MavenProject) Plugin(org.apache.maven.model.Plugin)

Aggregations

Plugin (org.apache.maven.model.Plugin)140 Xpp3Dom (org.codehaus.plexus.util.xml.Xpp3Dom)39 MavenProject (org.apache.maven.project.MavenProject)26 Build (org.apache.maven.model.Build)22 PluginExecution (org.apache.maven.model.PluginExecution)22 ArrayList (java.util.ArrayList)20 Dependency (org.apache.maven.model.Dependency)17 File (java.io.File)15 Model (org.apache.maven.model.Model)15 HashMap (java.util.HashMap)12 PluginDescriptor (org.apache.maven.plugin.descriptor.PluginDescriptor)12 CoreException (org.eclipse.core.runtime.CoreException)11 IOException (java.io.IOException)9 List (java.util.List)8 PluginManagement (org.apache.maven.model.PluginManagement)8 Map (java.util.Map)7 MavenSession (org.apache.maven.execution.MavenSession)7 ReportPlugin (org.apache.maven.model.ReportPlugin)7 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)7 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)6