TAVERNA-893 Update for API changes in download-api
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/commit/d01c5ae4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/tree/d01c5ae4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/diff/d01c5ae4 Branch: refs/heads/master Commit: d01c5ae4f78517d1fbf08f43da42645a1ca951de Parents: 62171ab Author: Stian Soiland-Reyes <[email protected]> Authored: Sat Feb 13 10:50:02 2016 +0000 Committer: Stian Soiland-Reyes <[email protected]> Committed: Sat Feb 13 10:50:02 2016 +0000 ---------------------------------------------------------------------- .../apache/taverna/plugin/PluginManager.java | 1 + .../taverna/plugin/impl/PluginManagerImpl.java | 22 ++++++++++---------- .../plugin/impl/PluginSiteManagerImpl.java | 15 ++++++------- .../plugin/impl/PluginSiteManagerImplTest.java | 14 ++++++------- 4 files changed, 25 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/blob/d01c5ae4/taverna-plugin-api/src/main/java/org/apache/taverna/plugin/PluginManager.java ---------------------------------------------------------------------- diff --git a/taverna-plugin-api/src/main/java/org/apache/taverna/plugin/PluginManager.java b/taverna-plugin-api/src/main/java/org/apache/taverna/plugin/PluginManager.java index c1a66f9..9a4fd2c 100644 --- a/taverna-plugin-api/src/main/java/org/apache/taverna/plugin/PluginManager.java +++ b/taverna-plugin-api/src/main/java/org/apache/taverna/plugin/PluginManager.java @@ -17,6 +17,7 @@ package org.apache.taverna.plugin; import java.io.File; +import java.nio.file.Path; import java.util.List; import org.apache.taverna.plugin.xml.jaxb.PluginVersions; http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/blob/d01c5ae4/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginManagerImpl.java ---------------------------------------------------------------------- diff --git a/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginManagerImpl.java b/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginManagerImpl.java index 923ea40..6ee0adf 100644 --- a/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginManagerImpl.java +++ b/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginManagerImpl.java @@ -20,7 +20,9 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; +import java.nio.file.Path; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -196,8 +198,8 @@ public class PluginManagerImpl implements PluginManager { @Override public Plugin installPlugin(String pluginSiteURL, String pluginFileName) throws PluginException { - File pluginFile = getPluginFile(pluginSiteURL, pluginFileName); - return installPlugin(pluginFile); + Path pluginFile = getPluginFile(pluginSiteURL, pluginFileName); + return installPlugin(pluginFile.toFile()); } @Override @@ -367,15 +369,13 @@ public class PluginManagerImpl implements PluginManager { } } - private File getPluginFile(String pluginSiteURL, String pluginFileName) throws PluginException { - File pluginFile = new File(getPluginDirectory(), pluginFileName); - String pluginFileURL = pluginSiteURL + "/" + pluginFileName; + private Path getPluginFile(String pluginSiteURL, String pluginFileName) throws PluginException { + Path pluginFile = getPluginDirectory().resolve(pluginFileName); + URI pluginFileURL = URI.create(pluginSiteURL + "/").resolve(pluginFileName); try { - downloadManager.download(new URL(pluginFileURL), pluginFile, DIGEST_ALGORITHM); + downloadManager.download(pluginFileURL, pluginFile, DIGEST_ALGORITHM); } catch (DownloadException e) { throw new PluginException("Error downloading plugin file " + pluginFile, e); - } catch (MalformedURLException e) { - throw new PluginException("Invalid plugin file URL " + pluginFileURL, e); } return pluginFile; } @@ -393,14 +393,14 @@ public class PluginManagerImpl implements PluginManager { } } - private File getPluginDirectory() throws PluginException { + private Path getPluginDirectory() throws PluginException { File systemPluginsDir = applicationConfiguration.getSystemPluginDir(); if (checkPluginDirectory(systemPluginsDir, true)) { - return systemPluginsDir; + return systemPluginsDir.toPath(); } File userPluginsDir = applicationConfiguration.getUserPluginDir(); if (checkPluginDirectory(userPluginsDir, true)) { - return userPluginsDir; + return userPluginsDir.toPath(); } throw new PluginException("No plugin directory avaliable"); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/blob/d01c5ae4/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginSiteManagerImpl.java ---------------------------------------------------------------------- diff --git a/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginSiteManagerImpl.java b/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginSiteManagerImpl.java index 4aa3826..ef66bb0 100644 --- a/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginSiteManagerImpl.java +++ b/taverna-plugin-impl/src/main/java/org/apache/taverna/plugin/impl/PluginSiteManagerImpl.java @@ -19,6 +19,7 @@ package org.apache.taverna.plugin.impl; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -44,7 +45,6 @@ import org.apache.taverna.profile.xml.jaxb.Updates; /** * PluginSiteManager implementation. * - * @author David Withers */ public class PluginSiteManagerImpl implements PluginSiteManager { @@ -86,11 +86,11 @@ public class PluginSiteManagerImpl implements PluginSiteManager { @Override public PluginSite createPluginSite(URL pluginSiteURL) throws PluginException { - try { + try { File tempFile = File.createTempFile("plugins", null); tempFile.deleteOnExit(); - URL pluginFileURL = new URL(pluginSiteURL + "/" + PLUGINS_FILE); - downloadManager.download(pluginFileURL, tempFile, DIGEST_ALGORITHM); + URI pluginFileURL = URI.create(pluginSiteURL + "/").resolve(PLUGINS_FILE); + downloadManager.download(pluginFileURL, tempFile.toPath(), DIGEST_ALGORITHM); return new PluginSiteImpl("", pluginSiteURL.toExternalForm()); } catch (MalformedURLException e) { throw new PluginException(String.format("Invalid plugin site URL %1$s", pluginSiteURL), e); @@ -117,17 +117,14 @@ public class PluginSiteManagerImpl implements PluginSiteManager { public List<PluginVersions> getPlugins(PluginSite pluginSite) throws PluginException { List<PluginVersions> plugins = new ArrayList<PluginVersions>(); try { - URL pluginSiteURL = new URL(pluginSite.getUrl() + "/" + PLUGINS_FILE); + URI pluginSiteURL = URI.create(pluginSite.getUrl() + "/").resolve(PLUGINS_FILE); File pluginsFile = new File(getDataDirectory(), PLUGINS_FILE); - downloadManager.download(pluginSiteURL, pluginsFile, DIGEST_ALGORITHM); + downloadManager.download(pluginSiteURL, pluginsFile.toPath(), DIGEST_ALGORITHM); Plugins pluginsXML = (Plugins) unmarshaller.unmarshal(pluginsFile); for (PluginVersions plugin : pluginsXML.getPlugin()) { plugin.setPluginSiteUrl(pluginSite.getUrl()); plugins.add(plugin); } - } catch (MalformedURLException e) { - throw new PluginException(String.format("Plugin site %1$s has an invalid location", - pluginSite.getName()), e); } catch (DownloadException e) { throw new PluginException(String.format("Error downloading from plugin site %1$s", pluginSite.getName()), e); http://git-wip-us.apache.org/repos/asf/incubator-taverna-osgi/blob/d01c5ae4/taverna-plugin-impl/src/test/java/org/apache/taverna/plugin/impl/PluginSiteManagerImplTest.java ---------------------------------------------------------------------- diff --git a/taverna-plugin-impl/src/test/java/org/apache/taverna/plugin/impl/PluginSiteManagerImplTest.java b/taverna-plugin-impl/src/test/java/org/apache/taverna/plugin/impl/PluginSiteManagerImplTest.java index 55328c4..0e3279c 100644 --- a/taverna-plugin-impl/src/test/java/org/apache/taverna/plugin/impl/PluginSiteManagerImplTest.java +++ b/taverna-plugin-impl/src/test/java/org/apache/taverna/plugin/impl/PluginSiteManagerImplTest.java @@ -16,18 +16,18 @@ */ package org.apache.taverna.plugin.impl; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; -import java.io.File; -import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import org.apache.taverna.configuration.app.ApplicationConfiguration; import org.apache.taverna.download.DownloadException; import org.apache.taverna.download.DownloadManager; import org.apache.taverna.plugin.PluginException; -import org.apache.taverna.plugin.impl.PluginSiteManagerImpl; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -77,7 +77,7 @@ public class PluginSiteManagerImplTest { @Test public void testCreatePluginSite() throws Exception { downloadManager = mock(DownloadManager.class); - doNothing().when(downloadManager).download(new URL("file:///"), null, ""); + doNothing().when(downloadManager).download(URI.create("file:///"), null, ""); pluginSiteManager.setDownloadManager(downloadManager); @@ -88,7 +88,7 @@ public class PluginSiteManagerImplTest { @Test(expected=PluginException.class) public void testCreatePluginSiteDownloadException() throws Exception { downloadManager = mock(DownloadManager.class); - doThrow(DownloadException.class).when(downloadManager).download(new URL("file:///"), null, ""); + doThrow(DownloadException.class).when(downloadManager).download(URI.create("file:///"), null, ""); pluginSiteManager.setDownloadManager(downloadManager);
