diff -r 393919dade6d -r f902e026d524 core/com.nokia.carbide.cpp.news.reader/src/com/nokia/carbide/cpp/internal/news/reader/CarbideNewsReaderPlugin.java --- a/core/com.nokia.carbide.cpp.news.reader/src/com/nokia/carbide/cpp/internal/news/reader/CarbideNewsReaderPlugin.java Tue Aug 11 14:22:33 2009 -0500 +++ b/core/com.nokia.carbide.cpp.news.reader/src/com/nokia/carbide/cpp/internal/news/reader/CarbideNewsReaderPlugin.java Tue Aug 11 15:01:16 2009 -0500 @@ -18,8 +18,11 @@ package com.nokia.carbide.cpp.internal.news.reader; import java.io.IOException; +import java.net.URISyntaxException; import java.net.URL; +import org.eclipse.core.net.proxy.IProxyData; +import org.eclipse.core.net.proxy.IProxyService; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -34,6 +37,7 @@ import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; import com.nokia.carbide.cpp.internal.news.reader.editor.NewsEditor; import com.nokia.carbide.cpp.internal.news.reader.feed.FeedManager; @@ -121,6 +125,32 @@ } /** + * Retrieve proxy data for a given URL. + * @param url - URL in question + * @return proxy data associated with the URL if one is available, null otherwise + */ + public static IProxyData getProxyData(URL url) { + BundleContext context = getDefault().getBundle().getBundleContext(); + if (context != null) { + ServiceReference reference = context.getServiceReference(IProxyService.class.getName()); + if (reference != null) { + IProxyService proxyService = (IProxyService) context.getService(reference); + if (proxyService != null) { + try { + IProxyData[] proxyData = proxyService.select(url.toURI()); + if (proxyData != null && proxyData.length > 0) { + return proxyData[0]; + } + } catch (URISyntaxException e) { + return null; + } + } + } + } + return null; + } + + /** * Launch the Carbide.c++ news page. */ public static void launchNewsPage() {