extend nuget-common to support nuget packages info read/write
[teamcity/dotNetPackagesSupport.git] / nuget-agent / src / jetbrains / buildServer / nuget / agent / install / impl / PackagesInfoUploader.java
1 /*\r
2  * Copyright 2000-2011 JetBrains s.r.o.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package jetbrains.buildServer.nuget.agent.install.impl;\r
18 \r
19 import jetbrains.buildServer.agent.AgentRunningBuild;\r
20 import jetbrains.buildServer.agent.artifacts.ArtifactsWatcher;\r
21 import jetbrains.buildServer.nuget.common.PackageDependencies;\r
22 import jetbrains.buildServer.nuget.common.PackageDependenciesStore;\r
23 import jetbrains.buildServer.util.FileUtil;\r
24 import org.jetbrains.annotations.NotNull;\r
25 \r
26 import java.io.File;\r
27 import java.io.IOException;\r
28 \r
29 /**\r
30  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
31  * Date: 18.07.11 23:02\r
32  */\r
33 public class PackagesInfoUploader {\r
34   private final ArtifactsWatcher myPublisher;\r
35   private final PackageDependenciesStore myStore;\r
36 \r
37   public PackagesInfoUploader(@NotNull final ArtifactsWatcher publisher,\r
38                               @NotNull final PackageDependenciesStore store) {\r
39     myPublisher = publisher;\r
40     myStore = store;\r
41   }\r
42 \r
43   public void uploadDepectedPackages(@NotNull final AgentRunningBuild build,\r
44                                      @NotNull final PackageDependencies infos) throws IOException {\r
45     File tmp = FileUtil.createTempDirectory("nuget", "packages", build.getBuildTempDirectory());\r
46     File content = new File(tmp, "nuget.xml");\r
47     myStore.save(infos, content);\r
48     myPublisher.addNewArtifactsPath(content.getPath() + " => .teamcity/nuget");\r
49   }\r
50 }\r