changeset 139:142ff77e52b3

Merge changes since September
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 22 Dec 2010 12:18:12 +0300
parents f6114497a33f (diff) ea7972ed3ab7 (current diff)
children 247273ec5e27
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java mercurial.ipr
diffstat 6 files changed, 136 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- a/README.txt	Thu Oct 14 16:11:17 2010 +0400
+++ b/README.txt	Wed Dec 22 12:18:12 2010 +0300
@@ -3,6 +3,6 @@
 Installation
 =================================
 
-TeamCity 4.x/5.x
+TeamCity 4.x and later
 
 Download mercurial-server.zip and put it into the .BuildServer/plugins folder. Restart server.
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Thu Oct 14 16:11:17 2010 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Wed Dec 22 12:18:12 2010 +0300
@@ -30,7 +30,7 @@
   private static final int DEFAULT_COMMAND_TIMEOUT_SEC = 3600;
 
   public static void checkCommandFailed(@NotNull String cmdName, @NotNull ExecResult res) throws VcsException {
-    if (res.getExitCode() > 0 || res.getException() != null) {
+    if (res.getExitCode() != 0 || res.getException() != null) {
       commandFailed(cmdName, res);
     }
     if (res.getStderr().length() > 0) {
--- a/mercurial-server/mercurial-server.iml	Thu Oct 14 16:11:17 2010 +0400
+++ b/mercurial-server/mercurial-server.iml	Wed Dec 22 12:18:12 2010 +0300
@@ -18,7 +18,6 @@
     <orderEntry type="library" exported="" name="TeamCityAPI-server" level="project" />
     <orderEntry type="library" exported="" name="IDEA-openapi" level="project" />
     <orderEntry type="library" exported="" name="Log4j" level="project" />
-    <orderEntry type="library" exported="" name="GNU Trove" level="project" />
     <orderEntry type="module" module-name="mercurial-common" />
   </component>
 </module>
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Thu Oct 14 16:11:17 2010 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Wed Dec 22 12:18:12 2010 +0300
@@ -38,7 +38,6 @@
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
@@ -55,7 +54,6 @@
  */
 public class MercurialVcsSupport extends ServerVcsSupport implements LabelingSupport, VcsFileContentProvider {
   private ConcurrentMap<String, Lock> myWorkDirLocks= new ConcurrentHashMap<String, Lock>();
-  private static final int OLD_WORK_DIRS_CLEANUP_PERIOD = 600;
   private VcsManager myVcsManager;
   private File myDefaultWorkFolderParent;
 
@@ -64,14 +62,19 @@
                              @NotNull final SBuildServer server,
                              @NotNull EventDispatcher<BuildServerListener> dispatcher) {
     myVcsManager = vcsManager;
-    server.getExecutor().scheduleAtFixedRate(new Runnable() {
-      public void run() {
-        removeOldWorkFolders();
-      }
-    }, 0, OLD_WORK_DIRS_CLEANUP_PERIOD, TimeUnit.SECONDS);
     myDefaultWorkFolderParent = new File(paths.getCachesDir(), "mercurial");
     dispatcher.addListener(new BuildServerAdapter() {
       @Override
+      public void cleanupFinished() {
+        super.cleanupFinished();
+        server.getExecutor().submit(new Runnable() {
+          public void run() {
+            removeOldWorkFolders();
+          }
+        });
+      }
+
+      @Override
       public void sourcesVersionReleased(@NotNull final BuildAgent agent) {
         super.sourcesVersionReleased(agent);
         server.getExecutor().submit(new Runnable() {
--- a/mercurial.ipr	Thu Oct 14 16:11:17 2010 +0400
+++ b/mercurial.ipr	Wed Dec 22 12:18:12 2010 +0300
@@ -373,15 +373,6 @@
     <option name="myLastEditedConfigurable" />
   </component>
   <component name="libraryTable">
-    <library name="TeamCityAPI-server">
-      <CLASSES>
-        <root url="jar://$TeamCityDistribution$/devPackage/server-api.jar!/" />
-      </CLASSES>
-      <JAVADOC />
-      <SOURCES>
-        <root url="jar://$TeamCityDistribution$/devPackage/src/openApi-source.jar!/" />
-      </SOURCES>
-    </library>
     <library name="IDEA-openapi">
       <CLASSES>
         <root url="jar://$TeamCityDistribution$/webapps/ROOT/WEB-INF/lib/resources_en.jar!/" />
@@ -392,6 +383,13 @@
       <JAVADOC />
       <SOURCES />
     </library>
+    <library name="JMock">
+      <CLASSES>
+        <root url="jar://$PROJECT_DIR$/mercurial-tests/lib/jmock-SNAPSHOT.jar!/" />
+      </CLASSES>
+      <JAVADOC />
+      <SOURCES />
+    </library>
     <library name="JUnit">
       <CLASSES>
         <root url="jar://$PROJECT_DIR$/mercurial-tests/lib/junit-3.8.1.jar!/" />
@@ -399,16 +397,9 @@
       <JAVADOC />
       <SOURCES />
     </library>
-    <library name="TestNG">
+    <library name="Log4j">
       <CLASSES>
-        <root url="jar://$PROJECT_DIR$/mercurial-tests/lib/testng-5.7-jdk15.jar!/" />
-      </CLASSES>
-      <JAVADOC />
-      <SOURCES />
-    </library>
-    <library name="JMock">
-      <CLASSES>
-        <root url="jar://$PROJECT_DIR$/mercurial-tests/lib/jmock-SNAPSHOT.jar!/" />
+        <root url="jar://$TeamCityDistribution$/webapps/ROOT/WEB-INF/lib/log4j-1.2.12.jar!/" />
       </CLASSES>
       <JAVADOC />
       <SOURCES />
@@ -421,23 +412,13 @@
       <JAVADOC />
       <SOURCES />
     </library>
-    <library name="Log4j">
+    <library name="TeamCity-TestsAPI">
       <CLASSES>
-        <root url="jar://$TeamCityDistribution$/webapps/ROOT/WEB-INF/lib/log4j-1.2.12.jar!/" />
+        <root url="jar://$TeamCityDistribution$/devPackage/tests/patches-test.jar!/" />
       </CLASSES>
       <JAVADOC />
       <SOURCES />
     </library>
-    <library name="TeamCityAPI-common">
-      <CLASSES>
-        <root url="jar://$TeamCityDistribution$/devPackage/runtime-util.jar!/" />
-        <root url="jar://$TeamCityDistribution$/devPackage/common-api.jar!/" />
-      </CLASSES>
-      <JAVADOC />
-      <SOURCES>
-        <root url="jar://$TeamCityDistribution$/devPackage/src/openApi-source.jar!/" />
-      </SOURCES>
-    </library>
     <library name="TeamCityAPI-agent">
       <CLASSES>
         <root url="jar://$TeamCityDistribution$/devPackage/agent-api.jar!/" />
@@ -447,9 +428,27 @@
         <root url="jar://$TeamCityDistribution$/devPackage/src/openApi-source.jar!/" />
       </SOURCES>
     </library>
-    <library name="TeamCity-TestsAPI">
+    <library name="TeamCityAPI-common">
       <CLASSES>
-        <root url="jar://$TeamCityDistribution$/devPackage/tests/patches-test.jar!/" />
+        <root url="jar://$TeamCityDistribution$/devPackage/common-api.jar!/" />
+      </CLASSES>
+      <JAVADOC />
+      <SOURCES>
+        <root url="jar://$TeamCityDistribution$/devPackage/src/openApi-source.jar!/" />
+      </SOURCES>
+    </library>
+    <library name="TeamCityAPI-server">
+      <CLASSES>
+        <root url="jar://$TeamCityDistribution$/devPackage/server-api.jar!/" />
+      </CLASSES>
+      <JAVADOC />
+      <SOURCES>
+        <root url="jar://$TeamCityDistribution$/devPackage/src/openApi-source.jar!/" />
+      </SOURCES>
+    </library>
+    <library name="TestNG">
+      <CLASSES>
+        <root url="jar://$PROJECT_DIR$/mercurial-tests/lib/testng-5.7-jdk15.jar!/" />
       </CLASSES>
       <JAVADOC />
       <SOURCES />
--- a/mercurial.xml	Thu Oct 14 16:11:17 2010 +0400
+++ b/mercurial.xml	Wed Dec 22 12:18:12 2010 +0300
@@ -29,6 +29,8 @@
     <exclude name="**/*.hprof/**"/>
     <exclude name="**/_svn/**"/>
     <exclude name="**/.hg/**"/>
+    <exclude name="**/.sbas/**"/>
+    <exclude name="**/.IJI.*/**"/>
   </patternset>
   <patternset id="library.patterns">
     <include name="*.zip"/>
@@ -89,7 +91,6 @@
   
   <path id="library.teamcityapi-common.classpath">
     <pathelement location="${path.variable.teamcitydistribution}/devPackage/common-api.jar"/>
-    <pathelement location="${path.variable.teamcitydistribution}/devPackage/runtime-util.jar"/>
   </path>
   
   <path id="library.teamcityapi-server.classpath">
@@ -101,6 +102,9 @@
   </path>
   
   
+  <!-- Global Libraries -->
+  
+  
   <!-- Application Server Libraries -->
   
   <!-- Modules -->
@@ -121,6 +125,10 @@
     <!-- Paths to be included in compilation bootclasspath -->
   </path>
   
+  <path id="main.module.production.classpath"/>
+  
+  <path id="main.runtime.production.module.classpath"/>
+  
   <path id="main.module.classpath"/>
   
   <path id="main.runtime.module.classpath"/>
@@ -162,7 +170,19 @@
     <!-- Paths to be included in compilation bootclasspath -->
   </path>
   
+  <path id="mercurial-common.module.production.classpath">
+    <path refid="library.teamcityapi-common.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+  </path>
+  
+  <path id="mercurial-common.runtime.production.module.classpath">
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+  </path>
+  
   <path id="mercurial-common.module.classpath">
+    <pathelement location="${mercurial-common.output.dir}"/>
     <path refid="library.teamcityapi-common.classpath"/>
     <path refid="library.idea-openapi.classpath"/>
   </path>
@@ -196,7 +216,7 @@
     <javac destdir="${mercurial-common.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true">
       <compilerarg line="${compiler.args.mercurial-common}"/>
       <bootclasspath refid="mercurial-common.module.bootclasspath"/>
-      <classpath refid="mercurial-common.module.classpath"/>
+      <classpath refid="mercurial-common.module.production.classpath"/>
       <src refid="mercurial-common.module.sourcepath"/>
       <patternset refid="excluded.from.compilation.mercurial-common"/>
     </javac>
@@ -232,7 +252,23 @@
     <!-- Paths to be included in compilation bootclasspath -->
   </path>
   
+  <path id="mercurial-agent.module.production.classpath">
+    <path refid="library.teamcityapi-agent.classpath"/>
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+  </path>
+  
+  <path id="mercurial-agent.runtime.production.module.classpath">
+    <pathelement location="${mercurial-agent.output.dir}"/>
+    <path refid="library.teamcityapi-agent.classpath"/>
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+  </path>
+  
   <path id="mercurial-agent.module.classpath">
+    <pathelement location="${mercurial-agent.output.dir}"/>
     <path refid="library.teamcityapi-agent.classpath"/>
     <pathelement location="${mercurial-common.output.dir}"/>
     <path refid="library.teamcityapi-common.classpath"/>
@@ -270,7 +306,7 @@
     <javac destdir="${mercurial-agent.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true">
       <compilerarg line="${compiler.args.mercurial-agent}"/>
       <bootclasspath refid="mercurial-agent.module.bootclasspath"/>
-      <classpath refid="mercurial-agent.module.classpath"/>
+      <classpath refid="mercurial-agent.module.production.classpath"/>
       <src refid="mercurial-agent.module.sourcepath"/>
       <patternset refid="excluded.from.compilation.mercurial-agent"/>
     </javac>
@@ -306,7 +342,25 @@
     <!-- Paths to be included in compilation bootclasspath -->
   </path>
   
+  <path id="mercurial-server.module.production.classpath">
+    <path refid="library.teamcityapi-server.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+    <path refid="library.log4j.classpath"/>
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+  </path>
+  
+  <path id="mercurial-server.runtime.production.module.classpath">
+    <pathelement location="${mercurial-server.output.dir}"/>
+    <path refid="library.teamcityapi-server.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+    <path refid="library.log4j.classpath"/>
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+  </path>
+  
   <path id="mercurial-server.module.classpath">
+    <pathelement location="${mercurial-server.output.dir}"/>
     <path refid="library.teamcityapi-server.classpath"/>
     <path refid="library.idea-openapi.classpath"/>
     <path refid="library.log4j.classpath"/>
@@ -347,7 +401,7 @@
     <javac destdir="${mercurial-server.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true">
       <compilerarg line="${compiler.args.mercurial-server}"/>
       <bootclasspath refid="mercurial-server.module.bootclasspath"/>
-      <classpath refid="mercurial-server.module.classpath"/>
+      <classpath refid="mercurial-server.module.production.classpath"/>
       <src refid="mercurial-server.module.sourcepath"/>
       <patternset refid="excluded.from.compilation.mercurial-server"/>
     </javac>
@@ -387,7 +441,41 @@
     <!-- Paths to be included in compilation bootclasspath -->
   </path>
   
+  <path id="mercurial-tests.module.production.classpath">
+    <pathelement location="${mercurial-server.output.dir}"/>
+    <path refid="library.teamcityapi-server.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+    <path refid="library.log4j.classpath"/>
+    <path refid="library.junit.classpath"/>
+    <path refid="library.testng.classpath"/>
+    <path refid="library.jmock.classpath"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <pathelement location="${mercurial-agent.output.dir}"/>
+    <path refid="library.teamcity-testsapi.classpath"/>
+    <path refid="library.teamcity-impl.classpath"/>
+    <path refid="library.teamcityapi-agent.classpath"/>
+  </path>
+  
+  <path id="mercurial-tests.runtime.production.module.classpath">
+    <pathelement location="${mercurial-tests.output.dir}"/>
+    <pathelement location="${mercurial-server.output.dir}"/>
+    <path refid="library.teamcityapi-server.classpath"/>
+    <path refid="library.idea-openapi.classpath"/>
+    <path refid="library.log4j.classpath"/>
+    <pathelement location="${mercurial-common.output.dir}"/>
+    <path refid="library.teamcityapi-common.classpath"/>
+    <path refid="library.junit.classpath"/>
+    <path refid="library.testng.classpath"/>
+    <path refid="library.jmock.classpath"/>
+    <pathelement location="${mercurial-agent.output.dir}"/>
+    <path refid="library.teamcityapi-agent.classpath"/>
+    <path refid="library.teamcity-testsapi.classpath"/>
+    <path refid="library.teamcity-impl.classpath"/>
+  </path>
+  
   <path id="mercurial-tests.module.classpath">
+    <pathelement location="${mercurial-tests.output.dir}"/>
     <pathelement location="${mercurial-server.output.dir}"/>
     <path refid="library.teamcityapi-server.classpath"/>
     <path refid="library.idea-openapi.classpath"/>
@@ -444,11 +532,8 @@
     <mkdir dir="${mercurial-tests.testoutput.dir}"/>
     <javac destdir="${mercurial-tests.testoutput.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true">
       <compilerarg line="${compiler.args.mercurial-tests}"/>
+      <bootclasspath refid="mercurial-tests.module.bootclasspath"/>
       <classpath refid="mercurial-tests.module.classpath"/>
-      <classpath>
-        <path refid="mercurial-tests.module.classpath"/>
-        <pathelement location="${mercurial-tests.output.dir}"/>
-      </classpath>
       <src refid="mercurial-tests.module.test.sourcepath"/>
       <patternset refid="excluded.from.compilation.mercurial-tests"/>
     </javac>