add path to nuget on server
authorEugene Petrenko <eugene.petrenko@gmail.com>
Thu, 14 Jul 2011 12:14:18 +0000 (16:14 +0400)
committerEugene Petrenko <eugene.petrenko@gmail.com>
Thu, 14 Jul 2011 12:14:18 +0000 (16:14 +0400)
nuget-server/resources/trigger/editSimpleTrigger.jsp
nuget-server/src/jetbrains/buildServer/nuget/server/exec/ListPackagesCommand.java
nuget-server/src/jetbrains/buildServer/nuget/server/exec/NuGetExecutor.java
nuget-server/src/jetbrains/buildServer/nuget/server/exec/NuGetExecutorImpl.java
nuget-server/src/jetbrains/buildServer/nuget/server/trigger/NamedPackagesUpdateChecker.java
nuget-server/src/jetbrains/buildServer/nuget/server/trigger/TriggerBean.java
nuget-server/src/jetbrains/buildServer/nuget/server/trigger/TriggerConstants.java
nuget-tests/src/jetbrains/buildServer/nuget/tests/server/ListPackagesCommandTest.java

index 1df3be62a586ce6df4ade7a400b6d774f94c12a1..e4e5e99b1ef2ffef3797595d3208f94c693d11ce 100644 (file)
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>\r
 <jsp:useBean id="ib" class="jetbrains.buildServer.nuget.server.trigger.TriggerBean" scope="request"/>\r
 \r
+<tr>\r
+  <td>NuGet path:<l:star/></td>\r
+  <td>\r
+    <props:textProperty name="${ib.nuGetExeKey}" style="width:20em;" />\r
+    <span class="smallNote">Specify path to NuGet.exe </span>\r
+    <span class="error" id="error_${ib.sourceKey}"></span>\r
+  </td>\r
+</tr>\r
+\r
 <tr>\r
   <td>NuGet package source:<l:star/></td>\r
   <td>\r
index 93b368a50c6e5d73d1864fec98a5ef2cf193b8c5..ac434ce69a6ef99bdd05d4d78a624e5cdd1bb2d3 100644 (file)
@@ -21,6 +21,7 @@ import jetbrains.buildServer.util.StringUtil;
 import org.jetbrains.annotations.NotNull;\r
 import org.jetbrains.annotations.Nullable;\r
 \r
+import java.io.File;\r
 import java.util.ArrayList;\r
 import java.util.Collection;\r
 import java.util.List;\r
@@ -40,6 +41,7 @@ public class ListPackagesCommand {
 \r
   @NotNull\r
   public Collection<PackageInfo> checkForChanges(\r
+          @NotNull final File nugetPath,\r
           @NotNull final String source,\r
           @NotNull final String packageId,\r
           @Nullable final String versionSpec) {\r
@@ -56,7 +58,7 @@ public class ListPackagesCommand {
       cmd.add(versionSpec);\r
     }\r
 \r
-    return myExec.executeNuGet(cmd, new ListPackagesCommandProcessor(source));\r
+    return myExec.executeNuGet(nugetPath, cmd, new ListPackagesCommandProcessor(source));\r
   }\r
 \r
 }\r
index 3ee06b42ba4fc11431c00519b8a005a586f626df..075430eb1e6ed7ff40bba2b8edd66bbda42b0240 100644 (file)
@@ -18,6 +18,7 @@ package jetbrains.buildServer.nuget.server.exec;
 \r
 import org.jetbrains.annotations.NotNull;\r
 \r
+import java.io.File;\r
 import java.util.List;\r
 \r
 /**\r
@@ -26,6 +27,7 @@ import java.util.List;
  */\r
 public interface NuGetExecutor {\r
   @NotNull\r
-  <T> T executeNuGet(@NotNull List<String> arguments,\r
+  <T> T executeNuGet(@NotNull File nugetExePath,\r
+                     @NotNull List<String> arguments,\r
                      @NotNull NuGetOutputProcessor<T> listener);\r
 }\r
index 065bbbe991bfe5548ecbcf1846f363861240fc3f..55ab94d37257a1b37bfeab6df80644daae988fc0 100644 (file)
@@ -45,11 +45,13 @@ public class NuGetExecutorImpl implements NuGetExecutor {
   }\r
 \r
   @NotNull\r
-  public <T> T executeNuGet(@NotNull final List<String> arguments,\r
+  public <T> T executeNuGet(@NotNull final File nugetExePath,\r
+                            @NotNull final List<String> arguments,\r
                             @NotNull final NuGetOutputProcessor<T> listener) {\r
 \r
     GeneralCommandLine cmd = new GeneralCommandLine();\r
     cmd.setExePath(getNuGetRunnerPath().getPath());\r
+    cmd.addParameter(nugetExePath.getPath());\r
     cmd.addParameters(arguments);\r
 \r
     if (LOG.isDebugEnabled()) {\r
index f80420b16ae6318ad284b84abe998f2ff9a1ca06..27184cd95be07616ccc412d34e246b575b718428 100644 (file)
@@ -7,6 +7,7 @@ import jetbrains.buildServer.nuget.server.exec.PackageInfo;
 import jetbrains.buildServer.serverSide.CustomDataStorage;\r
 import org.jetbrains.annotations.NotNull;\r
 \r
+import java.io.File;\r
 import java.util.*;\r
 \r
 /**\r
@@ -23,10 +24,12 @@ public class NamedPackagesUpdateChecker implements TriggerUpdateChecker {
 \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 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
-    Collection<PackageInfo> result = myCommand.checkForChanges(source, pkgId, version);\r
+\r
+    Collection<PackageInfo> result = myCommand.checkForChanges(new File(path), source, pkgId, version);\r
     final String hash = serializeHashcode(result);\r
 \r
     String oldHash = storage.getValue(KEY);\r
index 5c6d1ab2aad399307be7f10809efd3b723f56577..82cf5092d44f0cc29ef709ec79a078f43a9ee263 100644 (file)
@@ -21,6 +21,7 @@ package jetbrains.buildServer.nuget.server.trigger;
  * Date: 12.07.11 14:56\r
  */\r
 public class TriggerBean {\r
+  public String getNuGetExeKey() {  return TriggerConstants.NUGET_EXE; }\r
   public String getSourceKey() {  return TriggerConstants.SOURCE;   }\r
   public String getPackageKey() {  return TriggerConstants.PACKAGE;   }\r
   public String getVersionKey() {  return TriggerConstants.VERSION;   }\r
index e796ad481f1d946b66e80ad0fbc6584817188b4e..7c9518fc9401ac0184e80549bd1282fca6b298c2 100644 (file)
@@ -23,6 +23,8 @@ package jetbrains.buildServer.nuget.server.trigger;
 public interface TriggerConstants {\r
   public static final String TRIGGER_ID = "nuget.simple";\r
 \r
+  //TODO: use same extensions as for psexec and handle\r
+  public static final String NUGET_EXE = "nuget.exe";\r
   public static final String SOURCE = "nuget.source";\r
   public static final String PACKAGE = "nuget.package";\r
   public static final String VERSION = "nuget.version";\r
index ac23b8350b41a4afc3fa4a2c1f56ad6351bc4787..62af502ae20ed11338de486899221c3d82f9ca4a 100644 (file)
 package jetbrains.buildServer.nuget.tests.server;\r
 \r
 import jetbrains.buildServer.BaseTestCase;\r
-import jetbrains.buildServer.nuget.server.exec.*;\r
+import jetbrains.buildServer.nuget.server.exec.ListPackagesCommand;\r
+import jetbrains.buildServer.nuget.server.exec.ListPackagesCommandProcessor;\r
+import jetbrains.buildServer.nuget.server.exec.NuGetExecutor;\r
+import jetbrains.buildServer.nuget.server.exec.PackageInfo;\r
 import org.jmock.Expectations;\r
 import org.jmock.Mockery;\r
 import org.testng.annotations.BeforeMethod;\r
 import org.testng.annotations.Test;\r
 \r
+import java.io.File;\r
 import java.util.*;\r
 \r
 /**\r
@@ -34,7 +38,6 @@ public class ListPackagesCommandTest extends BaseTestCase {
   private NuGetExecutor exec;\r
   private ListPackagesCommand cmd;\r
 \r
-\r
   @BeforeMethod\r
   @Override\r
   protected void setUp() throws Exception {\r
@@ -47,7 +50,7 @@ public class ListPackagesCommandTest extends BaseTestCase {
   private void allowCommandLineCall(final String... cmd) {\r
     final List<String> list = new ArrayList<String>(Arrays.<String>asList(cmd));\r
     m.checking(new Expectations(){{\r
-      oneOf(exec).executeNuGet(with(equal(list)), with(any(ListPackagesCommandProcessor.class)));\r
+      oneOf(exec).executeNuGet(with(any(File.class)), with(equal(list)), with(any(ListPackagesCommandProcessor.class)));\r
       will(returnValue(Collections.<PackageInfo>emptyList()));\r
     }});\r
   }\r
@@ -62,9 +65,7 @@ public class ListPackagesCommandTest extends BaseTestCase {
             "package"\r
     );\r
 \r
-    Collection<PackageInfo> infos = cmd.checkForChanges("source", "package", null);\r
-\r
-\r
+    cmd.checkForChanges(new File("nuget"), "source", "package", null);\r
     m.assertIsSatisfied();\r
   }\r
 \r
@@ -80,8 +81,7 @@ public class ListPackagesCommandTest extends BaseTestCase {
             "version"\r
     );\r
 \r
-    Collection<PackageInfo> infos = cmd.checkForChanges("source", "package", "version");\r
-\r
+    cmd.checkForChanges(new File("nuget"), "source", "package", "version");\r
     m.assertIsSatisfied();\r
   }\r
 }\r