diff options
author | Godin <mandrikov@gmail.com> | 2010-10-16 22:18:26 +0000 |
---|---|---|
committer | Godin <mandrikov@gmail.com> | 2010-10-16 22:18:26 +0000 |
commit | 6636cf363ef274e817efec8885a183cf6e0fc3e2 (patch) | |
tree | 73e52b7b7a2ec9dff38d8fd6a510225a152db39a /sonar-batch/src | |
parent | 300f7336934c36d0624190985434a60ebbcc21d0 (diff) | |
download | sonarqube-6636cf363ef274e817efec8885a183cf6e0fc3e2.tar.gz sonarqube-6636cf363ef274e817efec8885a183cf6e0fc3e2.zip |
SONAR-1862:
* Upgrade to sonar-update-center-common 0.3-SNAPSHOT
* Add column 'child_first_classloader' to table 'plugins'
* Add possibility to use child-first classloader
Diffstat (limited to 'sonar-batch/src')
-rw-r--r-- | sonar-batch/src/main/java/org/sonar/batch/BatchPluginRepository.java | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/BatchPluginRepository.java b/sonar-batch/src/main/java/org/sonar/batch/BatchPluginRepository.java index e831faaee99..97e3393aa05 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/BatchPluginRepository.java +++ b/sonar-batch/src/main/java/org/sonar/batch/BatchPluginRepository.java @@ -38,11 +38,11 @@ import org.sonar.core.plugin.JpaPlugin; import org.sonar.core.plugin.JpaPluginDao; import org.sonar.core.plugin.JpaPluginFile; -import com.google.common.collect.HashMultimap; +import com.google.common.collect.Lists; import java.net.MalformedURLException; import java.net.URL; -import java.util.Set; +import java.util.List; public class BatchPluginRepository extends AbstractPluginRepository { @@ -66,30 +66,25 @@ public class BatchPluginRepository extends AbstractPluginRepository { } public void start() { - HashMultimap<String, URL> urlsByKey = HashMultimap.create(); - for (JpaPluginFile pluginFile : dao.getPluginFiles()) { - try { - String key = pluginFile.getPluginKey(); - URL url = new URL(baseUrl + pluginFile.getPath()); - urlsByKey.put(key, url); - - } catch (MalformedURLException e) { - throw new SonarException("Can not build the classloader of the plugin " + pluginFile.getPluginKey(), e); - } - } - classLoaders = new ClassLoadersCollection(Thread.currentThread().getContextClassLoader()); - for (String key : urlsByKey.keySet()) { - Set<URL> urls = urlsByKey.get(key); - + for (JpaPlugin pluginMetadata : dao.getPlugins()) { + String key = pluginMetadata.getKey(); + List<URL> urls = Lists.newArrayList(); + for (JpaPluginFile pluginFile : pluginMetadata.getFiles()) { + try { + URL url = new URL(baseUrl + pluginFile.getPath()); + urls.add(url); + } catch (MalformedURLException e) { + throw new SonarException("Can not build the classloader of the plugin " + pluginFile.getPluginKey(), e); + } + } if (LOG.isDebugEnabled()) { LOG.debug("Classloader of plugin " + key + ":"); for (URL url : urls) { LOG.debug(" -> " + url); } } - - classLoaders.createClassLoader(key, urls); + classLoaders.createClassLoader(key, urls, pluginMetadata.isUseChildFirstClassLoader() == Boolean.TRUE); } classLoaders.done(); } |