Author: snjeza
Date: 2009-07-23 21:55:20 -0400 (Thu, 23 Jul 2009)
New Revision: 16758
Modified:
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDelegate.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4632 JBoss Maven Integration facet needs to add
maven-compiler-plugin to pom.xml
Modified:
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java 2009-07-24
01:26:42 UTC (rev 16757)
+++
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java 2009-07-24
01:55:20 UTC (rev 16758)
@@ -35,6 +35,7 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jst.common.project.facet.JavaFacetUtils;
import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
@@ -655,4 +656,23 @@
public static void setResource(PomResourceImpl resource2) {
resource = resource2;
}
+
+ public static void addCompilerPlugin(Build build, IProject project) {
+ String compilerLevel = JavaFacetUtils.getCompilerLevel(project);
+ if (compilerLevel == null) {
+ return;
+ }
+ org.apache.maven.model.Plugin plugin = new org.apache.maven.model.Plugin();
+ plugin.setGroupId("org.apache.maven.plugins"); //$NON-NLS-1$
+ plugin.setArtifactId("maven-compiler-plugin"); //$NON-NLS-1$
+ Xpp3Dom configuration = new Xpp3Dom( "configuration" ); //$NON-NLS-1$
+ Xpp3Dom source = new Xpp3Dom("source"); //$NON-NLS-1$
+ source.setValue(compilerLevel); //$NON-NLS-1$
+ configuration.addChild(source);
+ Xpp3Dom target = new Xpp3Dom("target"); //$NON-NLS-1$
+ target.setValue(compilerLevel); //$NON-NLS-1$
+ configuration.addChild(target);
+ plugin.setConfiguration(configuration);
+ build.getPlugins().add(plugin);
+ }
}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDelegate.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDelegate.java 2009-07-24
01:26:42 UTC (rev 16757)
+++
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDelegate.java 2009-07-24
01:55:20 UTC (rev 16758)
@@ -25,7 +25,9 @@
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.project.facet.core.IDelegate;
import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
import org.jboss.tools.maven.core.MavenCoreActivator;
import org.jboss.tools.maven.core.IJBossMavenConstants;
import org.jboss.tools.maven.core.libprov.MavenLibraryProviderInstallOperation;
@@ -35,7 +37,9 @@
import org.maven.ide.eclipse.embedder.MavenModelManager;
public class MavenFacetInstallDelegate implements IDelegate {
-
+
+ private static final String SEAM_FACET_ID = "jst.seam"; //$NON-NLS-1$
+
public void execute(IProject project, IProjectFacetVersion fv, Object cfg,
IProgressMonitor monitor) throws CoreException {
IDataModel config = null;
@@ -50,82 +54,106 @@
IFile pom = project.getFile(IMavenConstants.POM_FILE_NAME);
IJavaProject javaProject = JavaCore.create(project);
- IFacetedProjectWorkingCopy fpwc = (IFacetedProjectWorkingCopy) config
- .getProperty(IFacetDataModelProperties.FACETED_PROJECT_WORKING_COPY);
- if (!pom.exists()) {
- Model model = new Model();
- model.setModelVersion(IJBossMavenConstants.MAVEN_MODEL_VERSION);
- model.setGroupId(config
- .getStringProperty(IJBossMavenConstants.GROUP_ID));
- String artifactId = config.getStringProperty(IJBossMavenConstants.ARTIFACT_ID);
- model.setArtifactId(artifactId);
- model.setVersion(config
- .getStringProperty(IJBossMavenConstants.VERSION));
- model.setName(config.getStringProperty(IJBossMavenConstants.NAME));
- model.setPackaging(config
- .getStringProperty(IJBossMavenConstants.PACKAGING));
- model.setDescription(config
- .getStringProperty(IJBossMavenConstants.DESCRIPTION));
- Build build = new Build();
- model.setBuild(build);
-
- // build.setFinalName(artifactId);
- if (fpwc.hasProjectFacet(JavaFacet.FACET)) {
- String outputDirectory = MavenCoreActivator
- .getOutputDirectory(javaProject);
- build.setOutputDirectory(outputDirectory);
- String sourceDirectory = MavenCoreActivator
- .getSourceDirectory(javaProject);
- if (sourceDirectory != null) {
- build.setSourceDirectory(sourceDirectory);
+ IFacetedProjectWorkingCopy fpwc = null;
+ try {
+ fpwc = (IFacetedProjectWorkingCopy) config
+
+ .getProperty(IFacetDataModelProperties.FACETED_PROJECT_WORKING_COPY);
+ if (!pom.exists()) {
+ Model model = new Model();
+ model.setModelVersion(IJBossMavenConstants.MAVEN_MODEL_VERSION);
+ model.setGroupId(config
+ .getStringProperty(IJBossMavenConstants.GROUP_ID));
+ String artifactId = config
+ .getStringProperty(IJBossMavenConstants.ARTIFACT_ID);
+ model.setArtifactId(artifactId);
+ model.setVersion(config
+ .getStringProperty(IJBossMavenConstants.VERSION));
+ model.setName(config
+ .getStringProperty(IJBossMavenConstants.NAME));
+ model.setPackaging(config
+ .getStringProperty(IJBossMavenConstants.PACKAGING));
+ model.setDescription(config
+ .getStringProperty(IJBossMavenConstants.DESCRIPTION));
+ Build build = new Build();
+ model.setBuild(build);
+
+ // build.setFinalName(artifactId);
+ if (fpwc.hasProjectFacet(JavaFacet.FACET)) {
+ String outputDirectory = MavenCoreActivator
+ .getOutputDirectory(javaProject);
+ build.setOutputDirectory(outputDirectory);
+ String sourceDirectory = MavenCoreActivator
+ .getSourceDirectory(javaProject);
+ if (sourceDirectory != null) {
+ build.setSourceDirectory(sourceDirectory);
+ }
}
+
+ if (fpwc.hasProjectFacet(WebFacetUtils.WEB_FACET)) {
+
+ MavenCoreActivator.addMavenWarPlugin(build, project);
+ }
+ if (fpwc.hasProjectFacet(IJ2EEFacetConstants.EJB_FACET)) {
+
+ MavenCoreActivator.addMavenEjbPlugin(build, project);
+ }
+ if (fpwc
+ .hasProjectFacet(IJ2EEFacetConstants.ENTERPRISE_APPLICATION_FACET)) {
+ MavenCoreActivator.addMavenEarPlugin(build, project,
+ config, false);
+ MavenCoreActivator.createMavenProject(project.getName(),
+ monitor, model, true);
+ }
+ IProjectFacet seamFacet = ProjectFacetsManager
+ .getProjectFacet(SEAM_FACET_ID);
+ if (!fpwc.hasProjectFacet(seamFacet)) {
+ MavenCoreActivator.addCompilerPlugin(build, project);
+ }
+
+ if (!pom.exists()) {
+ MavenModelManager modelManager = MavenPlugin.getDefault()
+ .getMavenModelManager();
+ modelManager.createMavenModel(pom, model);
+ }
}
-
+
+ boolean hasMavenNature = MavenCoreActivator.addMavenNature(project,
+ monitor);
+
if (fpwc.hasProjectFacet(WebFacetUtils.WEB_FACET)) {
-
- MavenCoreActivator.addMavenWarPlugin(build, project);
+ IClasspathAttribute attribute = JavaCore
+ .newClasspathAttribute(
+ IClasspathDependencyConstants.CLASSPATH_COMPONENT_DEPENDENCY,
+ ClasspathDependencyUtil.getDefaultRuntimePath(
+ true).toString());
+ MavenCoreActivator.addClasspathAttribute(javaProject,
+ attribute, monitor);
}
- if (fpwc.hasProjectFacet(IJ2EEFacetConstants.EJB_FACET)) {
-
- MavenCoreActivator.addMavenEjbPlugin(build, project);
+ // FIXME
+ IClasspathAttribute attribute = JavaCore.newClasspathAttribute(
+ MavenCoreActivator.OWNER_PROJECT_FACETS_ATTR,
+ IJBossMavenConstants.M2_FACET_ID);
+ MavenCoreActivator.addClasspathAttribute(javaProject, attribute,
+ monitor);
+ if (!hasMavenNature) {
+ MavenCoreActivator.updateMavenProjectConfiguration(project);
}
- if (fpwc.hasProjectFacet(IJ2EEFacetConstants.ENTERPRISE_APPLICATION_FACET)) {
- MavenCoreActivator.addMavenEarPlugin(build, project, config, false);
- MavenCoreActivator.createMavenProject(project.getName(), monitor, model, true);
+
+ List<LibraryProviderOperationConfig> configs = MavenCoreActivator
+ .getLibraryProviderOperationConfigs();
+ if (configs.size() > 0) {
+ MavenLibraryProviderInstallOperation operation = new
MavenLibraryProviderInstallOperation();
+ for (LibraryProviderOperationConfig libraryProviderOperationConfig : configs) {
+ operation.execute(libraryProviderOperationConfig, monitor);
+ }
+ configs.clear();
}
-
- if (!pom.exists()) {
- MavenModelManager modelManager = MavenPlugin.getDefault().getMavenModelManager();
- modelManager.createMavenModel(pom, model);
+ } finally {
+ if (fpwc != null) {
+ fpwc.dispose();
}
}
-
- boolean hasMavenNature = MavenCoreActivator.addMavenNature(project, monitor);
-
- if (fpwc.hasProjectFacet(WebFacetUtils.WEB_FACET)) {
- IClasspathAttribute attribute = JavaCore.newClasspathAttribute(
- IClasspathDependencyConstants.CLASSPATH_COMPONENT_DEPENDENCY,
- ClasspathDependencyUtil.getDefaultRuntimePath(true).toString());
- MavenCoreActivator.addClasspathAttribute(javaProject, attribute, monitor);
- }
- // FIXME
- IClasspathAttribute attribute = JavaCore.newClasspathAttribute(
- MavenCoreActivator.OWNER_PROJECT_FACETS_ATTR,
- IJBossMavenConstants.M2_FACET_ID);
- MavenCoreActivator.addClasspathAttribute(javaProject, attribute, monitor);
- if (!hasMavenNature) {
- MavenCoreActivator.updateMavenProjectConfiguration(project);
- }
-
- List<LibraryProviderOperationConfig> configs =
MavenCoreActivator.getLibraryProviderOperationConfigs();
- if (configs.size() > 0) {
- MavenLibraryProviderInstallOperation operation = new
MavenLibraryProviderInstallOperation();
- for (LibraryProviderOperationConfig libraryProviderOperationConfig:configs) {
- operation.execute(libraryProviderOperationConfig, monitor);
- }
- configs.clear();
- }
-
}
-
+
}