nuget tool interfaces sketch
authorEugene Petrenko <eugene.petrenko@gmail.com>
Wed, 10 Aug 2011 16:55:21 +0000 (20:55 +0400)
committerEugene Petrenko <eugene.petrenko@gmail.com>
Wed, 10 Aug 2011 16:55:21 +0000 (20:55 +0400)
nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/ActionProgress.java [new file with mode: 0644]
nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetInstalledTool.java [new file with mode: 0644]
nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetTool.java [new file with mode: 0644]
nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetToolManager.java [new file with mode: 0644]
nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetUserTool.java [new file with mode: 0644]

diff --git a/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/ActionProgress.java b/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/ActionProgress.java
new file mode 100644 (file)
index 0000000..9aae55d
--- /dev/null
@@ -0,0 +1,41 @@
+/*\r
+ * Copyright 2000-2011 JetBrains s.r.o.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package jetbrains.buildServer.nuget.server.toolRegistry;\r
+\r
+import org.jetbrains.annotations.NotNull;\r
+\r
+/**\r
+ * Interface for showing progress messages from\r
+ * log-working UI actions\r
+ *\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 10.08.11 20:26\r
+ */\r
+public interface ActionProgress {\r
+  /**\r
+   * Call this method from a task to provide user with new\r
+   * status message text\r
+   * @param kind message kind\r
+   * @param message text of message to show\r
+   */\r
+  void addProgressMessage(@NotNull Kind kind, @NotNull String message);\r
+\r
+  enum Kind {\r
+    ERROR,\r
+    NORMAL\r
+  }\r
+}\r
diff --git a/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetInstalledTool.java b/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetInstalledTool.java
new file mode 100644 (file)
index 0000000..da4443d
--- /dev/null
@@ -0,0 +1,30 @@
+/*\r
+ * Copyright 2000-2011 JetBrains s.r.o.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package jetbrains.buildServer.nuget.server.toolRegistry;\r
+\r
+import org.jetbrains.annotations.NotNull;\r
+\r
+import java.io.File;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 10.08.11 20:25\r
+ */\r
+public interface NuGetInstalledTool extends NuGetTool {\r
+  @NotNull\r
+  File getPath();\r
+}\r
diff --git a/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetTool.java b/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetTool.java
new file mode 100644 (file)
index 0000000..ff201dc
--- /dev/null
@@ -0,0 +1,31 @@
+/*\r
+ * Copyright 2000-2011 JetBrains s.r.o.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package jetbrains.buildServer.nuget.server.toolRegistry;\r
+\r
+import org.jetbrains.annotations.NotNull;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 10.08.11 20:22\r
+ */\r
+public interface NuGetTool {\r
+  @NotNull\r
+  String getId();\r
+\r
+  @NotNull\r
+  String getVersion();\r
+}\r
diff --git a/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetToolManager.java b/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetToolManager.java
new file mode 100644 (file)
index 0000000..38faf54
--- /dev/null
@@ -0,0 +1,53 @@
+/*\r
+ * Copyright 2000-2011 JetBrains s.r.o.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package jetbrains.buildServer.nuget.server.toolRegistry;\r
+\r
+import org.jetbrains.annotations.NotNull;\r
+\r
+import java.util.Collection;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 10.08.11 20:22\r
+ */\r
+public interface NuGetToolManager {\r
+  /**\r
+   * @return list of installed nuget tools\r
+   */\r
+  @NotNull\r
+  Collection<NuGetInstalledTool> getInstalledTools();\r
+\r
+  /**\r
+   * @return fetches the full list of available and supported nuget tools\r
+   */\r
+  @NotNull\r
+  Collection<NuGetTool> getAvailableTools();\r
+\r
+  /**\r
+   * Downloads and installs nuget tools for both server and agent\r
+   * @param tool tool to download\r
+   * @param progress callback for showing messages\r
+   */\r
+  void installTool(@NotNull NuGetTool tool, @NotNull ActionProgress progress);\r
+\r
+  /**\r
+   * Registers user-provided NuGet tool from given NuGetInstalledTool i\r
+   * @param tool tool description to install\r
+   * @param progress action progress callback\r
+   */\r
+  void registerCustomTool(@NotNull NuGetUserTool tool, @NotNull ActionProgress progress);\r
+}\r
diff --git a/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetUserTool.java b/nuget-server/src/jetbrains/buildServer/nuget/server/toolRegistry/NuGetUserTool.java
new file mode 100644 (file)
index 0000000..2b4cb9b
--- /dev/null
@@ -0,0 +1,34 @@
+/*\r
+ * Copyright 2000-2011 JetBrains s.r.o.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package jetbrains.buildServer.nuget.server.toolRegistry;\r
+\r
+import org.jetbrains.annotations.NotNull;\r
+\r
+import java.io.File;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 10.08.11 20:31\r
+ */\r
+public interface NuGetUserTool extends NuGetTool {\r
+  /**\r
+   * installs nuget.exe and all necessary files to given folder\r
+   * @param toDir destination directory\r
+   * @param progress progress callback\r
+   */\r
+  void installNuGet(@NotNull File toDir, @NotNull ActionProgress progress);\r
+}\r