From 91d08dae01ec9cea87d9ccd8d098eeac1f6c0f77 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Mon, 28 Feb 2011 15:20:11 +0300 Subject: [PATCH] url prefixes --- .../facet/frameworks/LibrariesDownloadAssistant.java | 9 ++++++--- .../com/intellij/facet/frameworks/beans/Artifact.java | 7 +++++++ .../intellij/facet/frameworks/beans/ArtifactItem.java | 7 ++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/platform/lang-api/src/com/intellij/facet/frameworks/LibrariesDownloadAssistant.java b/platform/lang-api/src/com/intellij/facet/frameworks/LibrariesDownloadAssistant.java index 31d194d21ea9..03abf95ec738 100644 --- a/platform/lang-api/src/com/intellij/facet/frameworks/LibrariesDownloadAssistant.java +++ b/platform/lang-api/src/com/intellij/facet/frameworks/LibrariesDownloadAssistant.java @@ -141,17 +141,20 @@ public class LibrariesDownloadAssistant { public static LibraryInfo[] getLibraryInfos(@Nullable Artifact version) { if (version == null) return LibraryInfo.EMPTY_ARRAY; - final List infos = convert(version.getItems()); + final List infos = convert(version.getUrlPrefix(), version.getItems()); return infos.toArray(new LibraryInfo[infos.size()]); } @NotNull - public static List convert(@NotNull ArtifactItem[] jars) { + public static List convert(final String urlPrefix, @NotNull ArtifactItem[] jars) { return ContainerUtil.mapNotNull(jars, new Function() { @Override public LibraryInfo fun(ArtifactItem artifactItem) { - final String downloadUrl = artifactItem.getUrl(); + String downloadUrl = artifactItem.getUrl(); + if (!downloadUrl.startsWith("http://") && urlPrefix != null) { + downloadUrl = urlPrefix + downloadUrl; + } return new LibraryInfo(artifactItem.getName(), downloadUrl, downloadUrl, artifactItem.getMD5(), artifactItem.getRequiredClasses()); } }); diff --git a/platform/lang-api/src/com/intellij/facet/frameworks/beans/Artifact.java b/platform/lang-api/src/com/intellij/facet/frameworks/beans/Artifact.java index 0c6554c21fb5..ebb52c08a740 100644 --- a/platform/lang-api/src/com/intellij/facet/frameworks/beans/Artifact.java +++ b/platform/lang-api/src/com/intellij/facet/frameworks/beans/Artifact.java @@ -22,6 +22,9 @@ public class Artifact { @Attribute("group") public String myGroup; + @Attribute("urlPrefix") + public String myUrlPrefix; + public String getName() { return myName; } @@ -38,6 +41,10 @@ public class Artifact { return myVersion; } + public String getUrlPrefix() { + return myUrlPrefix; + } + @Override public String toString() { return myVersion; diff --git a/platform/lang-api/src/com/intellij/facet/frameworks/beans/ArtifactItem.java b/platform/lang-api/src/com/intellij/facet/frameworks/beans/ArtifactItem.java index 0d801d79e80c..a53d4a91c5b8 100644 --- a/platform/lang-api/src/com/intellij/facet/frameworks/beans/ArtifactItem.java +++ b/platform/lang-api/src/com/intellij/facet/frameworks/beans/ArtifactItem.java @@ -43,7 +43,12 @@ public class ArtifactItem { public String myMD5; public String getName() { - return myName; + return myName == null ? getNameFromUrl() : myName; + } + + private String getNameFromUrl() { + final int index = myUrl.lastIndexOf('/'); + return index == -1 ? myUrl : myUrl.substring(index + 1); } public String getUrl() {