Maven: fix for unresolved schema file (15493)
authorAnton.Makeev <Anton.Makeev@jetbrains.com>
Tue, 26 Jan 2010 13:08:51 +0000 (16:08 +0300)
committerAnton.Makeev <Anton.Makeev@jetbrains.com>
Tue, 26 Jan 2010 14:16:38 +0000 (17:16 +0300)
plugins/maven/src/main/java/org/jetbrains/idea/maven/dom/MavenSchemaProvider.java
xml/impl/src/com/intellij/javaee/ExternalResourceManagerEx.java
xml/impl/src/com/intellij/javaee/ExternalResourceManagerImpl.java

index ae4d91a80d270f33e42930b32c376debe7341e76..360c6a53c60dba17428747cda1f140754544a139 100644 (file)
 package org.jetbrains.idea.maven.dom;
 
 import com.intellij.javaee.ExternalResourceManager;
+import com.intellij.javaee.ExternalResourceManagerEx;
 import com.intellij.javaee.ResourceRegistrar;
 import com.intellij.javaee.StandardResourceProvider;
 import com.intellij.openapi.vfs.VfsUtil;
 import com.intellij.openapi.vfs.VirtualFile;
 import org.jetbrains.annotations.NotNull;
-import org.jetbrains.idea.maven.utils.MavenLog;
 
 public class MavenSchemaProvider implements StandardResourceProvider {
   public static final String MAVEN_PROJECT_SCHEMA_URL = "http://maven.apache.org/xsd/maven-4.0.0.xsd";
@@ -38,11 +38,12 @@ public class MavenSchemaProvider implements StandardResourceProvider {
 
   @NotNull
   public static VirtualFile getSchemaFile(@NotNull String url) {
-    String location = ExternalResourceManager.getInstance().getResourceLocation(url);
+    String location = ((ExternalResourceManagerEx)ExternalResourceManager.getInstance()).getStdResource(url, null);
+    assert location != null : "cannot find a standard resource for " + url;
+
     VirtualFile result = VfsUtil.findRelativeFile(location, null);
-    if (result == null) {
-      MavenLog.LOG.error("Cannot find a schema file for URL: " + url + " location: " + location);
-    }
+    assert result != null : "cannot find a schema file for URL: " + url + " location: " + location;
+
     return result;
   }
 }
index af830a65cc73a0fc28680c3a3aa56d9e7c3ccc91..534953678f851f6a8656eb6c5674ead2cb0e2b82 100644 (file)
@@ -50,5 +50,7 @@ public abstract class ExternalResourceManagerEx extends ExternalResourceManager
   public abstract void removeExternalResourceListener(ExternalResourceListener listener);
 
   @Nullable
-  public abstract String getUserResourse(Project project, String url, String version);
+  public abstract String getUserResource(Project project, String url, String version);
+  @Nullable
+  public abstract String getStdResource(String url, String version);
 }
index 65e6ab8b2de9b5c8a849e72aecb3ccda75b4150e..b185af6e5cf9998aec22f1d837779319a23b60a4 100644 (file)
@@ -131,27 +131,29 @@ public class ExternalResourceManagerImpl extends ExternalResourceManagerEx imple
 
   public String getResourceLocation(@NonNls String url, String version) {
     String result = getUserResourse(url, version);
-    Map<String, String> map;
-
     if (result == null) {
-      map = getMap(myStdResources.getValue(), version, false);
-      result = map != null ? map.get(url) : null;
+      result = getStdResource(url, version);
     }
-
     if (result == null) {
       result = url;
     }
-
     return result;
   }
 
   @Override
   @Nullable
-  public String getUserResourse(Project project, String url, String version) {
+  public String getUserResource(Project project, String url, String version) {
     String resourse = getProjectResources(project).getUserResourse(url, version);
     return resourse == null ? getUserResourse(url, version) : resourse;
   }
 
+  @Override
+  @Nullable
+  public String getStdResource(String url, String version) {
+    Map<String, String> map = getMap(myStdResources.getValue(), version, false);
+    return map != null ? map.get(url) : null;
+  }
+
   @Nullable
   private String getUserResourse(String url, String version) {
     Map<String, String> map = getMap(myResources, version, false);