[264588] Classpath Export dependency quickfix should be disabled for App Clients
diff --git a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/classpathdep/ui/ClasspathDependencyValidatorMarkerResolutions.java b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/classpathdep/ui/ClasspathDependencyValidatorMarkerResolutions.java index 3d0a778..3ef8313 100644 --- a/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/classpathdep/ui/ClasspathDependencyValidatorMarkerResolutions.java +++ b/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/classpathdep/ui/ClasspathDependencyValidatorMarkerResolutions.java
@@ -14,6 +14,7 @@ import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -25,6 +26,7 @@ import org.eclipse.jst.j2ee.classpathdep.UpdateClasspathAttributeUtil; import org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin; +import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.osgi.util.NLS; import org.eclipse.ui.IMarkerResolution; import org.eclipse.ui.IMarkerResolutionGenerator; @@ -72,9 +74,15 @@ // quick fix removes the dependency return new IMarkerResolution[] { new UpdateClasspathDependencyAttributeResolution(cpEntryPath, false) }; } else if (ClasspathDependencyValidator.NonTaggedExportedClasses.equals(messageId)) { - // quick fix adds the dependency - return new IMarkerResolution[] { new UpdateClasspathDependencyAttributeResolution(cpEntryPath, true), - new AddClasspathNonDependencyAttributeResolution(cpEntryPath)}; + IResource resource = marker.getResource(); + if(null != resource && resource.getType() == IResource.PROJECT && !JavaEEProjectUtilities.isApplicationClientProject((IProject)resource)){ + // quick fix adds the dependency, and one to remove it + return new IMarkerResolution[] { new UpdateClasspathDependencyAttributeResolution(cpEntryPath, true), + new AddClasspathNonDependencyAttributeResolution(cpEntryPath)}; + } else { + // quick fix removes the dependency + return new IMarkerResolution[] { new AddClasspathNonDependencyAttributeResolution(cpEntryPath) }; + } } else if (ClasspathDependencyValidator.ProjectClasspathEntry.equals(messageId)) { // quick fix removes the dependency return new IMarkerResolution[] { new UpdateClasspathDependencyAttributeResolution(cpEntryPath, false) };