diff --git a/plugins/google-app-engine/google-app-engine.iml b/plugins/google-app-engine/google-app-engine.iml index 9f61180d15b1..07f409907f11 100644 --- a/plugins/google-app-engine/google-app-engine.iml +++ b/plugins/google-app-engine/google-app-engine.iml @@ -15,7 +15,6 @@ - @@ -23,7 +22,6 @@ - diff --git a/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineFacet.java b/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineFacet.java index 094084e41542..541e524009cd 100644 --- a/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineFacet.java +++ b/plugins/google-app-engine/source/com/intellij/appengine/facet/AppEngineFacet.java @@ -19,7 +19,6 @@ import com.intellij.appengine.descriptor.dom.AppEngineWebApp; import com.intellij.appengine.sdk.AppEngineSdk; import com.intellij.appengine.sdk.AppEngineSdkManager; import com.intellij.facet.*; -import com.intellij.javaee.util.JamCommonUtil; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; @@ -28,6 +27,11 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; +import com.intellij.psi.xml.XmlFile; +import com.intellij.util.ReflectionCache; +import com.intellij.util.xml.DomElement; +import com.intellij.util.xml.DomFileElement; +import com.intellij.util.xml.DomManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -69,9 +73,22 @@ public class AppEngineFacet extends Facet { PsiFile psiFile = PsiManager.getInstance(project).findFile(descriptorFile); if (psiFile == null) return null; - return JamCommonUtil.getRootElement(psiFile, AppEngineWebApp.class, module); + return getRootElement(psiFile, AppEngineWebApp.class, module); } + //todo[nik] copied from JamCommonUtil + @Nullable + private static T getRootElement(final PsiFile file, final Class domClass, final Module module) { + if (!(file instanceof XmlFile)) return null; + final DomManager domManager = DomManager.getDomManager(file.getProject()); + final DomFileElement element = domManager.getFileElement((XmlFile)file, DomElement.class); + if (element == null) return null; + final DomElement root = element.getRootElement(); + if (!ReflectionCache.isAssignable(domClass, root.getClass())) return null; + return (T)root; + } + + public boolean shouldRunEnhancerFor(@NotNull VirtualFile file) { for (String path : getConfiguration().getFilesToEnhance()) { final VirtualFile toEnhance = LocalFileSystem.getInstance().findFileByPath(path);