aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src
diff options
context:
space:
mode:
authorGodin <mandrikov@gmail.com>2010-10-16 22:18:26 +0000
committerGodin <mandrikov@gmail.com>2010-10-16 22:18:26 +0000
commit6636cf363ef274e817efec8885a183cf6e0fc3e2 (patch)
tree73e52b7b7a2ec9dff38d8fd6a510225a152db39a /sonar-batch/src
parent300f7336934c36d0624190985434a60ebbcc21d0 (diff)
downloadsonarqube-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.java33
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();
}