Author: snjeza
Date: 2009-08-28 17:32:22 -0400 (Fri, 28 Aug 2009)
New Revision: 17360
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
trunk/maven/plugins/org.jboss.tools.maven.seam/poms/parent-pom.xml
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4813 Mavenized Seam Web Project wizard
doesn't work correctly when using Seam 2.2
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-08-28
20:16:03 UTC (rev 17359)
+++
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/MavenCoreActivator.java 2009-08-28
21:32:22 UTC (rev 17360)
@@ -419,6 +419,10 @@
Xpp3Dom commonDigester = getEarModule("jarModule", //$NON-NLS-1$
"commons-digester", "commons-digester", "/lib", null);
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
modules.addChild(commonDigester);
+
+ //Xpp3Dom mvel14 = getEarModule("jarModule", //$NON-NLS-1$
+ // "org.mvel", "mvel14", "/", null); //$NON-NLS-1$
//$NON-NLS-2$ //$NON-NLS-3$
+ //modules.addChild(mvel14);
}
plugin.setConfiguration(configuration);
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-08-28
20:16:03 UTC (rev 17359)
+++
trunk/maven/plugins/org.jboss.tools.maven.core/src/org/jboss/tools/maven/core/internal/project/facet/MavenFacetInstallDelegate.java 2009-08-28
21:32:22 UTC (rev 17360)
@@ -56,9 +56,7 @@
IJavaProject javaProject = JavaCore.create(project);
IFacetedProjectWorkingCopy fpwc = null;
try {
- fpwc = (IFacetedProjectWorkingCopy) config
-
- .getProperty(IFacetDataModelProperties.FACETED_PROJECT_WORKING_COPY);
+ fpwc = (IFacetedProjectWorkingCopy)
config.getProperty(IFacetDataModelProperties.FACETED_PROJECT_WORKING_COPY);
if (!pom.exists()) {
Model model = new Model();
model.setModelVersion(IJBossMavenConstants.MAVEN_MODEL_VERSION);
Modified: trunk/maven/plugins/org.jboss.tools.maven.seam/poms/parent-pom.xml
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.seam/poms/parent-pom.xml 2009-08-28 20:16:03
UTC (rev 17359)
+++ trunk/maven/plugins/org.jboss.tools.maven.seam/poms/parent-pom.xml 2009-08-28 21:32:22
UTC (rev 17360)
@@ -28,6 +28,7 @@
<javax.el.version>1.0</javax.el.version>
<drools.version>4.0.4</drools.version>
<jbpm.version>3.2.2</jbpm.version>
+ <jbpm3.version>3.2.5.SP5</jbpm3.version>
<mvel.version>1.2.21</mvel.version>
<project.version>0.0.1-SNAPSHOT</project.version>
</properties>
@@ -99,6 +100,14 @@
<artifactId>dom4j</artifactId>
<groupId>dom4j</groupId>
</exclusion>
+ <exclusion>
+ <artifactId>xpp3_min</artifactId>
+ <groupId>xpp3</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>xstream</artifactId>
+ <groupId>xstream</groupId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -396,12 +405,47 @@
<groupId>janino</groupId>
</exclusion>
<exclusion>
- <artifactId>mvel14</artifactId>
- <groupId>org.mvel</groupId>
- </exclusion>
+ <artifactId>joda-time</artifactId>
+ <groupId>joda-time</groupId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
+ <groupId>org.jbpm.jbpm3</groupId>
+ <artifactId>jbpm-jpdl</artifactId>
+ <version>${jbpm3.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>commons-logging</artifactId>
+ <groupId>commons-logging</groupId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-launcher</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>bsh</groupId>
+ <artifactId>bsh</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jackrabbit-core</artifactId>
+ <groupId>org.apache.jackrabbit</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-jpdl</artifactId>
<version>${jbpm.version}</version>
@@ -412,13 +456,7 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.mvel</groupId>
- <artifactId>mvel14</artifactId>
- <version>${mvel.version}</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
+
</dependencies>
</dependencyManagement>
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java 2009-08-28
20:16:03 UTC (rev 17359)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java 2009-08-28
21:32:22 UTC (rev 17360)
@@ -1,6 +1,7 @@
package org.jboss.tools.maven.seam;
import java.io.BufferedReader;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -43,6 +44,10 @@
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
import org.jboss.tools.maven.core.IJBossMavenConstants;
import org.jboss.tools.maven.core.MavenCoreActivator;
+import org.jboss.tools.seam.core.SeamUtil;
+import org.jboss.tools.seam.core.project.facet.SeamRuntime;
+import org.jboss.tools.seam.core.project.facet.SeamRuntimeManager;
+import org.jboss.tools.seam.core.project.facet.SeamVersion;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
import
org.jboss.tools.seam.internal.core.project.facet.SeamFacetAbstractInstallDelegate;
import org.maven.ide.eclipse.MavenPlugin;
@@ -317,6 +322,16 @@
exclusion.setArtifactId("dom4j");
exclusions.add(exclusion);
+ exclusion = new Exclusion();
+ exclusion.setGroupId("xstream");
+ exclusion.setArtifactId("xstream");
+ exclusions.add(exclusion);
+
+ exclusion = new Exclusion();
+ exclusion.setGroupId("xpp3");
+ exclusion.setArtifactId("xpp3_min");
+ exclusions.add(exclusion);
+
dependencies.add(dependency);
dependency = getRichFacesApi();
@@ -342,19 +357,35 @@
dependencies.add(dependency);
dependency = new Dependency();
- dependency.setGroupId("org.mvel");
- dependency.setArtifactId("mvel14");
- dependency.setType("jar");
- dependency.setScope("compile");
- dependencies.add(dependency);
-
- dependency = new Dependency();
- dependency.setGroupId("org.jbpm");
+ String jbpmGroupId = "org.jbpm"; //$NON-NLS-1$
+ // JBoss EAP 5.0 requires org.jbpm.jbpm3
+ SeamRuntime seamRuntime =
SeamRuntimeManager.getInstance().findRuntimeByName(seamFacetModel.getProperty(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME).toString());
+ if(seamRuntime!=null) {
+ SeamVersion seamVersion = seamRuntime.getVersion();
+ if (SeamVersion.SEAM_2_2.equals(seamVersion)) {
+ String fullVersion = SeamUtil.getSeamVersionFromManifest(seamRuntime);
+ if (fullVersion != null && fullVersion.contains("EAP")) {
//$NON-NLS-1$
+ jbpmGroupId = "org.jbpm.jbpm3"; //$NON-NLS-1$
+ }
+ }
+ }
+ dependency.setGroupId(jbpmGroupId);
dependency.setArtifactId("jbpm-jpdl");
dependency.setType("jar");
dependency.setScope("compile");
dependencies.add(dependency);
+// dependency = new Dependency();
+// dependency.setGroupId("org.mvel");
+// if ("org.jbpm.jbpm3".equals(jbpmGroupId)) {
+// dependency.setArtifactId("mvel2");
+// } else {
+// dependency.setArtifactId("mvel14");
+// }
+// dependency.setType("jar");
+// dependency.setScope("compile");
+// dependencies.add(dependency);
+
dependency = new Dependency();
dependency.setGroupId("commons-digester");
dependency.setArtifactId("commons-digester");
@@ -388,43 +419,7 @@
}
}
- protected void configureApplicationXml(IProject project, IDataModel m2FacetModel,
IProgressMonitor monitor) {
- EARArtifactEdit earArtifactEdit = null;
- try {
- earArtifactEdit = EARArtifactEdit.getEARArtifactEditForWrite(project);
- if(earArtifactEdit!=null) {
- Application application = earArtifactEdit.getApplication();
- EList modules = application.getModules();
- for (Iterator iterator = modules.iterator(); iterator.hasNext();) {
- Object module = (Object) iterator.next();
- if (module instanceof WebModule) {
- WebModule webModule = (WebModule) module;
- String uri = webModule.getUri();
- String value = webProjectName + WAR_ARCHIVE_SUFFIX;
- if (value.equals(uri)) {
- String newUri = artifactId + "-" +
m2FacetModel.getStringProperty(IJBossMavenConstants.VERSION) + WAR_ARCHIVE_SUFFIX;
- webModule.setUri(newUri);
- }
- }
- if (module instanceof EjbModule) {
- EjbModule ejbModule = (EjbModule) module;
- String uri = ejbModule.getUri();
- String value = ejbProjectName + EJB_ARCHIVE_SUFFIX;
- if (value.equals(uri)) {
- String newUri = ejbArtifactId + "-" +
m2FacetModel.getStringProperty(IJBossMavenConstants.VERSION) + EJB_ARCHIVE_SUFFIX;
- ejbModule.setUri(newUri);
- }
- }
- }
-
- earArtifactEdit.save(monitor);
- }
- } finally {
- if(earArtifactEdit!=null) {
- earArtifactEdit.dispose();
- }
- }
- }
+
private void removeRuntime(IProject project) throws CoreException {
IFacetedProject facetedProject = ProjectFacetsManager.create( project );
facetedProject.setRuntime(null, null);
@@ -769,10 +764,76 @@
Properties properties = model.getProperties();
properties.put(IJBossMavenConstants.PROJECT_VERSION, projectVersion);
+ SeamRuntime seamRuntime =
SeamRuntimeManager.getInstance().findRuntimeByName(seamFacetModel.getProperty(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME).toString());
+ if(seamRuntime==null) {
+ getDefault().log("Can't get seam runtime " +
seamFacetModel.getProperty(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME).toString());
+ }
String seamVersion =
m2FacetModel.getStringProperty(IJBossMavenConstants.SEAM_MAVEN_VERSION);
if (seamVersion != null && seamVersion.trim().length() > 0) {
properties.put(IJBossMavenConstants.SEAM_VERSION, seamVersion);
}
+ String seamHomePath = seamRuntime.getHomeDir();
+ File seamHomeDir = new File(seamHomePath);
+ if (seamHomeDir.exists()) {
+ //String seamVersion =
SeamUtil.getSeamVersionFromManifest(seamRuntime.getHomeDir());
+ //properties.put(IJBossMavenConstants.SEAM_VERSION, seamVersion);
+ File buildDir = new File(seamHomeDir,"build");
+ File rootPom = new File(buildDir,"root.pom.xml");
+ if (!rootPom.exists()) {
+ getDefault().log("The " + rootPom.getAbsolutePath() + " file
doesn't exist.");
+ } else {
+ try {
+ Model rootPomModel = modelManager.readMavenModel(rootPom);
+ List<Dependency> seamDependencies =
rootPomModel.getDependencyManagement().getDependencies();
+ setArtifactVersion("jsf.version", properties, "javax.faces",
"jsf-api", seamDependencies);
+ String richfacesVersion = setArtifactVersion("richfaces.version",
properties, "org.richfaces.framework", "richfaces-impl",
seamDependencies);
+ if (richfacesVersion == null) {
+ Properties seamProperties = rootPomModel.getProperties();
+ richfacesVersion = seamProperties.getProperty("version.richfaces");
+ if (richfacesVersion != null) {
+ properties.put("richfaces.version", richfacesVersion);
+ }
+ }
+ setArtifactVersion("hibernate-validator.version", properties,
"org.hibernate", "hibernate-validator", seamDependencies);
+ setArtifactVersion("hibernate-annotations.version", properties,
"org.hibernate", "hibernate-annotations", seamDependencies);
+ setArtifactVersion("hibernate-entitymanager.version", properties,
"org.hibernate", "hibernate-entitymanager", seamDependencies);
+ //setArtifactVersion("testng.version", properties,
"org.hibernate", "hibernate-entitymanager", seamDependencies);
+ //if (seamVersion != null &&
"2.2".equals(seamVersion.subSequence(0, 3))) {
+ // properties.put("testng.version", "5.9");
+ //}
+ setArtifactVersion("jboss.embedded.version", properties,
"org.jboss.seam.embedded", "jboss-embedded-api", seamDependencies);
+ setArtifactVersion("slf4j.version", properties, "org.slf4j",
"slf4j-api", seamDependencies);
+ setArtifactVersion("ejb.api.version", properties, "javax.ejb",
"ejb-api", seamDependencies);
+ setArtifactVersion("jsr250-api.version", properties,
"javax.annotation", "jsr250-api", seamDependencies);
+ setArtifactVersion("persistence-api.version", properties,
"javax.persistence", "persistence-api", seamDependencies);
+ setArtifactVersion("servlet.version", properties,
"javax.servlet", "servlet-api", seamDependencies);
+ setArtifactVersion("javax.el.version", properties, "javax.el",
"el-api", seamDependencies);
+ String droolsVersion = setArtifactVersion("drools.version", properties,
"org.drools", "drools-core", seamDependencies);
+ if (droolsVersion == null) {
+ Properties seamProperties = rootPomModel.getProperties();
+ droolsVersion = seamProperties.getProperty("version.drools");
+ if (droolsVersion != null) {
+ properties.put("drools.version", droolsVersion);
+ }
+ }
+ String jbpmVersion = setArtifactVersion("jbpm.version", properties,
"org.jbpm", "jbpm-jpdl", seamDependencies);
+ if (jbpmVersion == null) {
+ setArtifactVersion("jbpm3.version", properties,
"org.jbpm.jbpm3", "jbpm-jpdl", seamDependencies);
+ }
+ //setArtifactVersion("mvel.version", properties, "org.mvel",
"mvel14", seamDependencies);
+
+// <javax.activation.version>1.1</javax.activation.version>
+//
<hibernate-commons-annotations.version>3.3.0.ga</hibernate-commons-annotations.version>
+// <commons.digester.version>1.8</commons.digester.version>
+// <mvel.version>1.2.21</mvel.version>
+
+ } catch (Exception e) {
+ getDefault().log(e);
+ }
+ }
+ } else {
+ getDefault().log("The " + seamHomePath + " folder doesn't
exist.");
+ }
List<String> modules = model.getModules();
modules.add("../" + artifactId);
@@ -804,9 +865,28 @@
}
}
+ private String setArtifactVersion(String property, Properties properties, String
groupId, String artifactId,
+ List<Dependency> seamDependencies) {
+ for (Dependency dependency:seamDependencies) {
+ if (groupId.equals(dependency.getGroupId()) &&
artifactId.equals(dependency.getArtifactId())) {
+ String version = dependency.getVersion();
+ if (version != null && !version.startsWith("${")) {
+ properties.put(property, version);
+ return version;
+ }
+ }
+ }
+ return null;
+ }
+
public static void log(Throwable e) {
IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, e
.getLocalizedMessage(), e);
getDefault().getLog().log(status);
}
+
+ public static void log(String message) {
+ IStatus status = new Status(IStatus.WARNING, PLUGIN_ID, message, null);
+ getDefault().getLog().log(status);
+ }
}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java 2009-08-28
20:16:03 UTC (rev 17359)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java 2009-08-28
21:32:22 UTC (rev 17360)
@@ -2,6 +2,7 @@
import java.io.File;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.apache.maven.model.Dependency;
@@ -15,6 +16,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragment;
@@ -22,6 +24,11 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jst.j2ee.application.Application;
+import org.eclipse.jst.j2ee.application.EjbModule;
+import org.eclipse.jst.j2ee.application.Module;
+import org.eclipse.jst.j2ee.application.WebModule;
+import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
import org.eclipse.wst.common.componentcore.ComponentCore;
@@ -136,6 +143,7 @@
IDataModel model = createSeamDataModel(deploying, seamVersion, project);
installWarFacets(fproj, model, seamVersion, monitor);
} else if ("ear".equals(packaging)) { //$NON-NLS-1$
+ configureApplicationXml(project, monitor);
installEarFacets(fproj, monitor);
installM2Facet(fproj, monitor);
IProject webProject = getReferencingSeamWebProject(project);
@@ -564,4 +572,30 @@
}
return seamRuntime3;
}
+
+ private void configureApplicationXml(IProject project, IProgressMonitor monitor) {
+ EARArtifactEdit earArtifactEdit = null;
+ try {
+ earArtifactEdit = EARArtifactEdit.getEARArtifactEditForWrite(project);
+ if(earArtifactEdit!=null) {
+ Application application = earArtifactEdit.getApplication();
+ EList modules = application.getModules();
+ for (Iterator iterator = modules.iterator(); iterator.hasNext();) {
+ Object object = iterator.next();
+ if (object instanceof Module) {
+ Module module = (Module) object;
+ String uri = module.getUri();
+ if (uri != null && (uri.startsWith("mvel14") ||
uri.startsWith("mvel2"))) {
+ iterator.remove();
+ }
+ }
+ }
+ earArtifactEdit.saveIfNecessary(monitor);
+ }
+ } finally {
+ if(earArtifactEdit!=null) {
+ earArtifactEdit.dispose();
+ }
+ }
+ }
}