From 7ec828c9aa5a0918a184e3f94d4e29da9ba669fd Mon Sep 17 00:00:00 2001 From: sgandon Date: Tue, 4 Dec 2012 14:47:38 +0000 Subject: [PATCH] Fix Bug USV-43 : NEW-7: Uniserv Metdata:ClassNotFoundExeption by creating the new Uniserv connection https://jira.talendforge.org/browse/USV-43 fixed the bug by using Eclipse Extension point APIs git-svn-id: http://talendforge.org/svn/tos/trunk@94808 f6f1c999-d317-4740-80b0-e6d1abc6f99e --- .../repository/RepositoryComponentManager.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/org.talend.core.runtime/src/main/java/org/talend/core/repository/RepositoryComponentManager.java b/org.talend.core.runtime/src/main/java/org/talend/core/repository/RepositoryComponentManager.java index d22270e524..e230f4a3cb 100644 --- a/org.talend.core.runtime/src/main/java/org/talend/core/repository/RepositoryComponentManager.java +++ b/org.talend.core.runtime/src/main/java/org/talend/core/repository/RepositoryComponentManager.java @@ -20,9 +20,12 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.eclipse.core.runtime.ContributorFactoryOSGi; import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IContributor; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.Platform; +import org.osgi.framework.Bundle; import org.talend.commons.ui.runtime.exception.ExceptionHandler; import org.talend.core.GlobalServiceRegister; import org.talend.core.database.EDatabaseTypeName; @@ -63,18 +66,21 @@ public final class RepositoryComponentManager { // sort by level Collections.sort(repComponentDndFilterSettings, new Comparator() { + @Override public int compare(RepositoryComponentDndFilterSetting o1, RepositoryComponentDndFilterSetting o2) { return o1.getLevel() - o2.getLevel(); } }); Collections.sort(sortedComponentSetting, new Comparator() { + @Override public int compare(SortedComponentSetting o1, SortedComponentSetting o2) { return o1.getLevel() - o2.getLevel(); } }); Collections.sort(specialSortedComponentSetting, new Comparator() { + @Override public int compare(SortedComponentSetting o1, SortedComponentSetting o2) { return o1.getLevel() - o2.getLevel(); } @@ -89,8 +95,7 @@ public final class RepositoryComponentManager { List dndFilterIds = new ArrayList(); List componentIds = new ArrayList(); - for (int i = 0; i < configurationElements.length; i++) { - IConfigurationElement element = configurationElements[i]; + for (IConfigurationElement element : configurationElements) { if (element.getName().equals("ExtensionFilter")) { //$NON-NLS-1$ // List filterAttrs = getFilterAttrs(element, "RepositoryComponentFilter", //$NON-NLS-1$ @@ -109,8 +114,7 @@ public final class RepositoryComponentManager { } } - for (int i = 0; i < configurationElements.length; i++) { - IConfigurationElement element = configurationElements[i]; + for (IConfigurationElement element : configurationElements) { if (element.getName().equals("RepositoryComponent")) { //$NON-NLS-1$ String name = element.getAttribute("name"); //$NON-NLS-1$ if (repositoryComponentNames.contains(name)) { @@ -190,7 +194,9 @@ public final class RepositoryComponentManager { for (IConfigurationElement ce : children) { String className = ce.getAttribute("clazz"); //$NON-NLS-1$ try { - Class clazz = Class.forName(className); + IContributor contributor = ce.getContributor(); + Bundle bundle = ContributorFactoryOSGi.resolve(contributor); + Class clazz = bundle.loadClass(className); list.add(clazz); } catch (ClassNotFoundException e) { ExceptionHandler.process(e);