Search in sources :

Example 1 with Facet

use of org.gradle.plugins.ide.eclipse.model.Facet in project gradle by gradle.

the class EclipseWtpPlugin method configureEclipseWtpFacet.

private void configureEclipseWtpFacet(final Project project, final EclipseModel eclipseModel) {
    TaskProvider<GenerateEclipseWtpFacet> task = project.getTasks().register(ECLIPSE_WTP_FACET_TASK_NAME, GenerateEclipseWtpFacet.class, eclipseModel.getWtp().getFacet());
    task.configure(new Action<GenerateEclipseWtpFacet>() {

        @Override
        public void execute(final GenerateEclipseWtpFacet task) {
            task.setDescription("Generates the Eclipse WTP facet settings file.");
            task.setInputFile(project.file(".settings/org.eclipse.wst.common.project.facet.core.xml"));
            task.setOutputFile(project.file(".settings/org.eclipse.wst.common.project.facet.core.xml"));
        }
    });
    addWorker(task, ECLIPSE_WTP_FACET_TASK_NAME);
    project.getPlugins().withType(JavaPlugin.class, new Action<JavaPlugin>() {

        @Override
        public void execute(JavaPlugin javaPlugin) {
            if (hasWarOrEarPlugin(project)) {
                return;
            }
            ((IConventionAware) eclipseModel.getWtp().getFacet()).getConventionMapping().map("facets", new Callable<List<Facet>>() {

                @Override
                public List<Facet> call() throws Exception {
                    return Lists.newArrayList(new Facet(Facet.FacetType.fixed, "jst.java", null), new Facet(Facet.FacetType.installed, "jst.utility", "1.0"), new Facet(Facet.FacetType.installed, "jst.java", toJavaFacetVersion(project.getExtensions().getByType(JavaPluginExtension.class).getSourceCompatibility())));
                }
            });
        }
    });
    project.getPlugins().withType(WarPlugin.class, new Action<WarPlugin>() {

        @Override
        public void execute(WarPlugin warPlugin) {
            ((IConventionAware) eclipseModel.getWtp().getFacet()).getConventionMapping().map("facets", new Callable<List<Facet>>() {

                @Override
                public List<Facet> call() throws Exception {
                    return Lists.newArrayList(new Facet(Facet.FacetType.fixed, "jst.java", null), new Facet(Facet.FacetType.fixed, "jst.web", null), new Facet(Facet.FacetType.installed, "jst.web", "2.4"), new Facet(Facet.FacetType.installed, "jst.java", toJavaFacetVersion(project.getExtensions().getByType(JavaPluginExtension.class).getSourceCompatibility())));
                }
            });
        }
    });
    project.getPlugins().withType(EarPlugin.class, new Action<EarPlugin>() {

        @Override
        public void execute(EarPlugin earPlugin) {
            ((IConventionAware) eclipseModel.getWtp().getFacet()).getConventionMapping().map("facets", new Callable<List<Facet>>() {

                @Override
                public List<Facet> call() throws Exception {
                    return Lists.newArrayList(new Facet(Facet.FacetType.fixed, "jst.ear", null), new Facet(Facet.FacetType.installed, "jst.ear", "5.0"));
                }
            });
        }
    });
}
Also used : JavaPlugin(org.gradle.api.plugins.JavaPlugin) Callable(java.util.concurrent.Callable) IConventionAware(org.gradle.api.internal.IConventionAware) WarPlugin(org.gradle.api.plugins.WarPlugin) Facet(org.gradle.plugins.ide.eclipse.model.Facet) EarPlugin(org.gradle.plugins.ear.EarPlugin)

Aggregations

Callable (java.util.concurrent.Callable)1 IConventionAware (org.gradle.api.internal.IConventionAware)1 JavaPlugin (org.gradle.api.plugins.JavaPlugin)1 WarPlugin (org.gradle.api.plugins.WarPlugin)1 EarPlugin (org.gradle.plugins.ear.EarPlugin)1 Facet (org.gradle.plugins.ide.eclipse.model.Facet)1