* @return list of installed nuget tools\r
*/\r
@NotNull\r
- Collection<NuGetInstalledTool> getInstalledTools();\r
+ Collection<? extends NuGetInstalledTool> getInstalledTools();\r
\r
/**\r
* @return list of tools that are installing now\r
void installTool(@NotNull String toolId);\r
\r
\r
+ /**\r
+ * Removes tool from server and build agents\r
+ * @param toolId tool id from {@link #getInstalledTools()} method\r
+ */\r
+ void removeTool(@NotNull String toolId);\r
+\r
}\r
}\r
\r
@NotNull\r
- public Collection<NuGetInstalledTool> getInstalledTools() {\r
+ public Collection<? extends NuGetInstalledTool> getInstalledTools() {\r
return myInstalled.getTools();\r
}\r
\r
}));\r
}\r
\r
+ public void removeTool(@NotNull String toolId) {\r
+ myInstalled.removeTool(toolId);\r
+ }\r
+\r
private List<NuGetInstallingTool> mockInstallingTools() {\r
return Arrays.<NuGetInstallingTool>asList(\r
new NuGetInstallingTool() {\r
import jetbrains.buildServer.util.ArchiveUtil;\r
import jetbrains.buildServer.util.FileUtil;\r
import org.jetbrains.annotations.NotNull;\r
-import org.jetbrains.annotations.Nullable;\r
\r
import java.io.*;\r
import java.util.zip.ZipInputStream;\r
myPacker = packer;\r
}\r
\r
- @Nullable\r
- private FeedPackage findTool(@NotNull final String packageId) {\r
- return myState.findTool(packageId);\r
- }\r
-\r
public InstallResult installNuGet(@NotNull final String packageId, @NotNull final InstallLogger logger) {\r
logger.started(packageId);\r
\r
FeedPackage tool = null;\r
try {\r
- tool = findTool(packageId);\r
+ tool = myState.findTool(packageId);\r
if (tool == null) {\r
logger.packageNotFound(packageId);\r
return null;\r
package jetbrains.buildServer.nuget.server.toolRegistry.impl;\r
\r
import jetbrains.buildServer.nuget.server.toolRegistry.NuGetInstalledTool;\r
+import jetbrains.buildServer.util.FileUtil;\r
import org.jetbrains.annotations.NotNull;\r
\r
import java.io.File;\r
}\r
\r
@NotNull\r
- public Collection<NuGetInstalledTool> getTools() {\r
+ public Collection<? extends NuGetInstalledTool> getTools() {\r
+ return getToolsInternal();\r
+ }\r
+\r
+ private Collection<InstalledTool> getToolsInternal() {\r
final File[] tools = myPaths.getTools().listFiles();\r
if (tools == null) return Collections.emptyList();\r
- final Collection<NuGetInstalledTool> result = new ArrayList<NuGetInstalledTool>();\r
+ final Collection<InstalledTool> result = new ArrayList<InstalledTool>();\r
for (final File path : tools) {\r
- result.add(new NuGetInstalledTool() {\r
- @NotNull\r
- public File getPath() {\r
- return new File(path, "tools/NuGet.exe");\r
- }\r
-\r
- @NotNull\r
- public String getId() {\r
- return path.getName();\r
- }\r
-\r
- @NotNull\r
- public String getVersion() {\r
- return path.getName();\r
- }\r
- });\r
+ result.add(new InstalledTool(path));\r
}\r
return result;\r
}\r
+\r
+ public void removeTool(@NotNull final String toolId) {\r
+ for (InstalledTool tool : getToolsInternal()) {\r
+ if (tool.getId().equals(toolId)) {\r
+ tool.delete();\r
+ return;\r
+ }\r
+ }\r
+ }\r
+\r
+ private static class InstalledTool implements NuGetInstalledTool {\r
+ private final File myPath;\r
+\r
+ public InstalledTool(@NotNull final File path) {\r
+ myPath = path;\r
+ }\r
+\r
+ public void delete() {\r
+ while(myPath.exists()) {\r
+ FileUtil.delete(myPath);\r
+ }\r
+ }\r
+\r
+ @NotNull\r
+ public File getPath() {\r
+ return new File(myPath, "tools/NuGet.exe");\r
+ }\r
+\r
+ @NotNull\r
+ public String getId() {\r
+ return myPath.getName();\r
+ }\r
+\r
+ @NotNull\r
+ public String getVersion() {\r
+ return myPath.getName();\r
+ }\r
+ }\r
}\r