Author: dazarov
Date: 2012-04-20 19:12:56 -0400 (Fri, 20 Apr 2012)
New Revision: 40394
Modified:
trunk/maven/plugins/org.jboss.tools.maven.gwt/META-INF/MANIFEST.MF
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/GWTProjectConfigurator.java
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/MavenGWTPlugin.java
Log:
Ensure GWT tooling and m2e-wtp are configured for same output directory
https://issues.jboss.org/browse/JBIDE-11224
Modified: trunk/maven/plugins/org.jboss.tools.maven.gwt/META-INF/MANIFEST.MF
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.gwt/META-INF/MANIFEST.MF 2012-04-20 18:56:51
UTC (rev 40393)
+++ trunk/maven/plugins/org.jboss.tools.maven.gwt/META-INF/MANIFEST.MF 2012-04-20 23:12:56
UTC (rev 40394)
@@ -13,7 +13,8 @@
org.eclipse.m2e.maven.runtime;bundle-version="[1.0.0,1.2.0)",
org.eclipse.jface;bundle-version="3.7.0",
org.jboss.tools.maven.ui;bundle-version="1.3.0",
- org.eclipse.ui;bundle-version="3.7.0"
+ org.eclipse.ui;bundle-version="3.7.0",
+ org.jboss.tools.common.model;bundle-version="3.3.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: org.jboss.tools.maven.gwt
Modified:
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/GWTProjectConfigurator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/GWTProjectConfigurator.java 2012-04-20
18:56:51 UTC (rev 40393)
+++
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/GWTProjectConfigurator.java 2012-04-20
23:12:56 UTC (rev 40394)
@@ -10,30 +10,34 @@
******************************************************************************/
package org.jboss.tools.maven.gwt;
+import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.MojoExecution;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.m2e.core.project.MavenProjectChangedEvent;
import org.eclipse.m2e.core.project.configurator.AbstractProjectConfigurator;
import org.eclipse.m2e.core.project.configurator.ProjectConfigurationRequest;
+import org.jboss.tools.common.model.project.ProjectHome;
import org.jboss.tools.maven.ui.Activator;
import org.osgi.service.prefs.BackingStoreException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.gdt.eclipse.core.properties.WebAppProjectProperties;
import com.google.gwt.eclipse.core.modules.IModule;
import com.google.gwt.eclipse.core.modules.ModuleUtils;
import com.google.gwt.eclipse.core.properties.GWTProjectProperties;
public class GWTProjectConfigurator extends AbstractProjectConfigurator {
-
private static final Logger log =
LoggerFactory.getLogger(GWTProjectConfigurator.class);
public static final String GWT_WAR_MAVEN_PLUGIN_KEY =
"org.codehaus.mojo:gwt-maven-plugin";
@@ -58,11 +62,38 @@
try {
GWTProjectProperties.setEntryPointModules(projectConfig.getProject(), modNames);
} catch (BackingStoreException e) {
- log.error("Exception in Maven GWT Configurator", e);
+ logError("Exception in Maven GWT Configurator, cannot set entry point
modules", e);
}
+
+ try {
+ IPath webContentPath = getWebContentFolder(projectConfig.getProject(), monitor);
+ IFolder outputWorkspaceFolder =
projectConfig.getProject().getWorkspace().getRoot().getFolder(webContentPath);
+ WebAppProjectProperties.setLastUsedWarOutLocation(projectConfig.getProject(),
outputWorkspaceFolder.getFullPath());
+ } catch (BackingStoreException e) {
+ logError("Exception in Maven GWT Configurator, cannot set war output
location", e);
+ }
+
} else {
log.debug("Skip configurator for non Java project {}",projectName);
}
}
}
+
+ /**
+ * Report error in logger and eclipse user interface
+ * @param message - exception context description
+ * @param e - exception to report
+ */
+ private void logError(final String message, BackingStoreException e) {
+ log.error(message, e);
+ MavenGWTPlugin.log(message,e);
+ }
+
+ private IPath getWebContentFolder(IProject project, IProgressMonitor monitor) throws
CoreException {
+ IPath webContentPath = ProjectHome.getFirstWebContentPath(project);
+ Assert.isTrue(webContentPath != null && !webContentPath.isEmpty(),
+ MessageFormat
+ .format("No web content folder was found in project {0}",
project.getName()));
+ return webContentPath;
+ }
}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/MavenGWTPlugin.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/MavenGWTPlugin.java 2012-04-20
18:56:51 UTC (rev 40393)
+++
trunk/maven/plugins/org.jboss.tools.maven.gwt/src/org/jboss/tools/maven/gwt/MavenGWTPlugin.java 2012-04-20
23:12:56 UTC (rev 40394)
@@ -10,8 +10,12 @@
******************************************************************************/
package org.jboss.tools.maven.gwt;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
+import org.osgi.service.prefs.BackingStoreException;
public class MavenGWTPlugin implements BundleActivator {
@@ -37,4 +41,8 @@
MavenGWTPlugin.context = null;
}
+ public static void log(String message, BackingStoreException e) {
+ Platform.getLog(MavenGWTPlugin.getContext().getBundle()).log(new
Status(IStatus.ERROR,context.getBundle().getSymbolicName(),message));
+ }
+
}