throw new RunBuildException("Runner parameter '" + NUGET_PATH + "' was not found");\r
\r
if (path.startsWith("?")) {\r
- final BundledTool tool = myBundledTools.findTool(NUGET_TOOL_NAME_PREFIX + path.substring(1));\r
+ final BundledTool tool = myBundledTools.findTool(path.substring(1));\r
if (tool != null) {\r
path = new File(tool.getRootPath(), NUGET_TOOL_REL_PATH).getPath();\r
}\r
* limitations under the License.\r
*/\r
\r
-package jetbrains.buildServer.nuget.server.feed.reader;\r
+package jetbrains.buildServer.nuget.common;\r
\r
/**\r
* Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
package jetbrains.buildServer.nuget.server.toolRegistry;\r
\r
import org.jetbrains.annotations.NotNull;\r
+import org.jetbrains.annotations.Nullable;\r
\r
import java.util.Collection;\r
\r
*/\r
void removeTool(@NotNull String toolId);\r
\r
+ /**\r
+ * Resolves path to NuGet.exe tool\r
+ * @param path path to tool\r
+ * @return resolved path of given path\r
+ */\r
+ @Nullable\r
+ String getNuGetPath(@Nullable String path);\r
}\r
\r
package jetbrains.buildServer.nuget.server.toolRegistry.impl;\r
\r
-import jetbrains.buildServer.nuget.server.feed.reader.FeedConstants;\r
+import jetbrains.buildServer.nuget.common.FeedConstants;\r
import jetbrains.buildServer.nuget.server.feed.reader.FeedPackage;\r
import jetbrains.buildServer.nuget.server.feed.reader.NuGetFeedReader;\r
import jetbrains.buildServer.nuget.server.toolRegistry.FetchException;\r
package jetbrains.buildServer.nuget.server.toolRegistry.impl;\r
\r
import com.intellij.openapi.diagnostic.Logger;\r
+import jetbrains.buildServer.nuget.common.FeedConstants;\r
import jetbrains.buildServer.nuget.server.toolRegistry.*;\r
+import jetbrains.buildServer.util.StringUtil;\r
import org.jetbrains.annotations.NotNull;\r
+import org.jetbrains.annotations.Nullable;\r
\r
+import java.io.File;\r
import java.lang.reflect.InvocationHandler;\r
import java.lang.reflect.Method;\r
import java.lang.reflect.Proxy;\r
-import java.util.Arrays;\r
import java.util.Collection;\r
import java.util.Collections;\r
-import java.util.List;\r
\r
/**\r
* Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
public void removeTool(@NotNull String toolId) {\r
myInstalled.removeTool(toolId);\r
}\r
+\r
+ @Nullable\r
+ public String getNuGetPath(@Nullable final String path) {\r
+ if (path == null || StringUtil.isEmptyOrSpaces(path)) return path;\r
+ if (!path.startsWith("?")) {\r
+ return path;\r
+ }\r
+ final String id = path.substring(1);\r
+ final File nuGetPath = myInstalled.getNuGetPath(id);\r
+ if (nuGetPath != null) {\r
+ return nuGetPath.getPath();\r
+ }\r
+ throw new RuntimeException("Failed to find " + FeedConstants.NUGET_COMMANDLINE + " version " + id);\r
+ }\r
}\r
import jetbrains.buildServer.nuget.common.PackagesConstants;\r
import jetbrains.buildServer.nuget.server.toolRegistry.NuGetInstalledTool;\r
import jetbrains.buildServer.util.FileUtil;\r
+import jetbrains.buildServer.util.StringUtil;\r
import org.jetbrains.annotations.NotNull;\r
+import org.jetbrains.annotations.Nullable;\r
\r
import java.io.File;\r
import java.io.FileFilter;\r
return getToolsInternal();\r
}\r
\r
+ @Nullable\r
+ public File getNuGetPath(@NotNull String path) {\r
+ if (StringUtil.isEmptyOrSpaces(path)) return null;\r
+ for (NuGetInstalledTool tool : getToolsInternal()) {\r
+ if (tool.getId().equals(path)) {\r
+ return tool.getPath();\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+\r
private Collection<InstalledTool> getToolsInternal() {\r
final File[] tools = myPaths.getPackages().listFiles(IS_PACKAGE);\r
if (tools == null) return Collections.emptyList();\r
\r
@NotNull\r
public String getId() {\r
- return getVersion();\r
+ return myPath.getName();\r
}\r
\r
@NotNull\r
import jetbrains.buildServer.buildTriggers.BuildTriggerException;\r
import jetbrains.buildServer.nuget.server.exec.ListPackagesCommand;\r
import jetbrains.buildServer.nuget.server.exec.SourcePackageInfo;\r
+import jetbrains.buildServer.nuget.server.toolRegistry.NuGetToolManager;\r
import jetbrains.buildServer.serverSide.CustomDataStorage;\r
import jetbrains.buildServer.util.StringUtil;\r
import org.jetbrains.annotations.NotNull;\r
\r
public static final String KEY = "hash";\r
private final ListPackagesCommand myCommand;\r
+ private final NuGetToolManager myManager;\r
\r
- public NamedPackagesUpdateChecker(@NotNull final ListPackagesCommand command) {\r
+ public NamedPackagesUpdateChecker(@NotNull final ListPackagesCommand command,\r
+ @NotNull final NuGetToolManager manager) {\r
myCommand = command;\r
+ myManager = manager;\r
}\r
\r
public BuildStartReason checkChanges(@NotNull BuildTriggerDescriptor descriptor,\r
@NotNull CustomDataStorage storage) throws BuildTriggerException {\r
- final String path = descriptor.getProperties().get(TriggerConstants.NUGET_EXE);\r
+ final String path = myManager.getNuGetPath(descriptor.getProperties().get(TriggerConstants.NUGET_EXE));\r
final String pkgId = descriptor.getProperties().get(TriggerConstants.PACKAGE);\r
final String version = descriptor.getProperties().get(TriggerConstants.VERSION);\r
final String source = descriptor.getProperties().get(TriggerConstants.SOURCE);\r
package jetbrains.buildServer.nuget.tests.integration;\r
\r
import jetbrains.buildServer.BaseTestCase;\r
-import jetbrains.buildServer.nuget.server.feed.reader.FeedConstants;\r
+import jetbrains.buildServer.nuget.common.FeedConstants;\r
import jetbrains.buildServer.nuget.server.feed.reader.FeedPackage;\r
import jetbrains.buildServer.nuget.server.feed.reader.NuGetFeedReader;\r
import jetbrains.buildServer.nuget.server.feed.reader.impl.*;\r
import jetbrains.buildServer.buildTriggers.BuildTriggerException;\r
import jetbrains.buildServer.nuget.server.exec.ListPackagesCommand;\r
import jetbrains.buildServer.nuget.server.exec.SourcePackageInfo;\r
+import jetbrains.buildServer.nuget.server.toolRegistry.NuGetToolManager;\r
import jetbrains.buildServer.nuget.server.trigger.NamedPackagesUpdateChecker;\r
import jetbrains.buildServer.nuget.server.trigger.TriggerConstants;\r
import jetbrains.buildServer.nuget.tests.integration.Paths;\r
private NamedPackagesUpdateChecker checker;\r
private BuildTriggerDescriptor desr;\r
private CustomDataStorage store;\r
+ private NuGetToolManager manager;\r
private Map<String, String> params;\r
private File nugetFakePath;\r
\r
desr = m.mock(BuildTriggerDescriptor.class);\r
store = m.mock(CustomDataStorage.class);\r
params = new TreeMap<String, String>();\r
+ manager = m.mock(NuGetToolManager.class);\r
\r
- checker = new NamedPackagesUpdateChecker(cmd);\r
+ checker = new NamedPackagesUpdateChecker(cmd, manager);\r
+ nugetFakePath = Paths.getNuGetRunnerPath();\r
+ final String path = nugetFakePath.getPath();\r
\r
m.checking(new Expectations(){{\r
allowing(desr).getProperties(); will(returnValue(params));\r
+ allowing(manager).getNuGetPath(path); will(returnValue(path));\r
}});\r
- nugetFakePath = Paths.getNuGetRunnerPath();\r
\r
- params.put(TriggerConstants.NUGET_EXE, nugetFakePath.getPath());\r
+ params.put(TriggerConstants.NUGET_EXE, path);\r
params.put(TriggerConstants.PACKAGE, "NUnit");\r
}\r
\r