409856 : add ability to disable m2e-wtp

Signed-off-by: Fred Bricon <fbricon@gmail.com>
diff --git a/org.eclipse.m2e.wtp.jpa/src/org/eclipse/m2e/wtp/jpa/internal/configurators/JpaProjectConfigurator.java b/org.eclipse.m2e.wtp.jpa/src/org/eclipse/m2e/wtp/jpa/internal/configurators/JpaProjectConfigurator.java
index 13f4984..4b66cf9 100644
--- a/org.eclipse.m2e.wtp.jpa/src/org/eclipse/m2e/wtp/jpa/internal/configurators/JpaProjectConfigurator.java
+++ b/org.eclipse.m2e.wtp.jpa/src/org/eclipse/m2e/wtp/jpa/internal/configurators/JpaProjectConfigurator.java
@@ -1,5 +1,5 @@
 /*************************************************************************************
- * Copyright (c) 2012 Red Hat, Inc. and others.
+ * Copyright (c) 2012-2014 Red Hat, Inc. and others.
  * All rights reserved. This program and the accompanying materials 
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -51,6 +51,7 @@
 import org.eclipse.m2e.wtp.MavenWtpPlugin;
 import org.eclipse.m2e.wtp.ProjectUtils;
 import org.eclipse.m2e.wtp.ResourceCleaner;
+import org.eclipse.m2e.wtp.WTPProjectsUtil;
 import org.eclipse.m2e.wtp.facets.FacetDetectorManager;
 import org.eclipse.m2e.wtp.jpa.PlatformIdentifierManager;
 import org.eclipse.m2e.wtp.jpa.internal.MavenJpaActivator;
@@ -80,14 +81,13 @@
 	static final String PERSISTENCE_XML_KEY = "persistencexml";  //$NON-NLS-1$
 	
 	@Override
-	public void configure(ProjectConfigurationRequest request,
-			IProgressMonitor monitor) throws CoreException {
-		IProject project = request.getProject();
+	public void configure(ProjectConfigurationRequest request, IProgressMonitor monitor) throws CoreException {
 		
-		MavenProject mavenProject = request.getMavenProject();
-		if(!canConfigure(project, mavenProject )) {
+		if(!canConfigure(request.getMavenProjectFacade(), monitor)) {
 			return;
 		}
+		IProject project = request.getProject();
+		MavenProject mavenProject = request.getMavenProject();
 
 		IFile persistenceXml = getPersistenceXml(project);
 		if (persistenceXml == null || !persistenceXml.exists()) {
@@ -98,7 +98,7 @@
 		IFacetedProject facetedProject = ProjectFacetsManager.create(project, true, monitor);
 		if (facetedProject != null) {
 			//Refresh parent in multi-module setups, or Dali throws an exception 
-			ProjectUtils.refreshHierarchy(request.getMavenProject().getBasedir(), 
+			ProjectUtils.refreshHierarchy(mavenProject.getBasedir(), 
 										  IResource.DEPTH_INFINITE, 
 										  new SubProgressMonitor(monitor, 1));
 			
@@ -196,14 +196,16 @@
 		return dm;
 	}
 
-	private boolean canConfigure(IProject project, MavenProject mavenProject) throws CoreException {
-		boolean enabled = isConfigurationEnabled(mavenProject);
-		if (!enabled || !project.hasNature(JavaCore.NATURE_ID)) {
+	private boolean canConfigure(IMavenProjectFacade facade, IProgressMonitor monitor) throws CoreException {
+		boolean enabled = isConfigurationEnabled(facade, monitor);
+		if (!enabled) {
 			return false;
 		}
+		IProject project = facade.getProject();
 		// Bug 430178 : If imported project has modulecore nature without the component file, 
 		// Dali's ModuleResourceLocator#getRootFolder will NPE (ex: it.cosenonjaviste:jsf2-spring4-jpa2-archetype:1.0.3)
-		if (project.hasNature(IModuleConstants.MODULE_NATURE_ID) && !ModuleCoreNature.componentResourceExists(project)) {
+		if (!project.hasNature(JavaCore.NATURE_ID) || 
+				(project.hasNature(IModuleConstants.MODULE_NATURE_ID) && !ModuleCoreNature.componentResourceExists(project))) {
 			return false;
 		}
 		
@@ -211,8 +213,12 @@
 		return  fProj == null || !fProj.hasProjectFacet(JpaProject.FACET);
 	}
 
-	private boolean isConfigurationEnabled(MavenProject mavenProject) {
-		Object pomActivationValue = mavenProject.getProperties().get(M2E_JPA_ACTIVATION_PROPERTY);
+	private boolean isConfigurationEnabled(IMavenProjectFacade facade, IProgressMonitor monitor) throws CoreException {
+		if (WTPProjectsUtil.isM2eWtpDisabled(facade, monitor)) {
+			return false;
+		}
+		
+		Object pomActivationValue = facade.getMavenProject(monitor).getProperties().get(M2E_JPA_ACTIVATION_PROPERTY);
 		boolean enabled;
 		if (pomActivationValue == null) {
 			enabled = MavenWtpPlugin.getDefault().getMavenWtpPreferencesManager().isEnabled(getId());