PageRenderTime 26ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/netbeans-7.3/mercurial/test/qa-functional/src/org/netbeans/test/mercurial/utils/RepositoryMaintenance.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Java | 146 lines | 86 code | 15 blank | 45 comment | 13 complexity | 0e64b5ec253111a1b97bd4de5618b2a3 MD5 | raw file
  1. /*
  2. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  3. *
  4. * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
  5. *
  6. * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  7. * Other names may be trademarks of their respective owners.
  8. *
  9. * The contents of this file are subject to the terms of either the GNU
  10. * General Public License Version 2 only ("GPL") or the Common
  11. * Development and Distribution License("CDDL") (collectively, the
  12. * "License"). You may not use this file except in compliance with the
  13. * License. You can obtain a copy of the License at
  14. * http://www.netbeans.org/cddl-gplv2.html
  15. * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  16. * specific language governing permissions and limitations under the
  17. * License. When distributing the software, include this License Header
  18. * Notice in each file and include the License file at
  19. * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
  20. * particular file as subject to the "Classpath" exception as provided
  21. * by Oracle in the GPL Version 2 section of the License file that
  22. * accompanied this code. If applicable, add the following below the
  23. * License Header, with the fields enclosed by brackets [] replaced by
  24. * your own identifying information:
  25. * "Portions Copyrighted [year] [name of copyright owner]"
  26. *
  27. * If you wish your version of this file to be governed by only the CDDL
  28. * or only the GPL Version 2, indicate your decision by adding
  29. * "[Contributor] elects to include this software in this distribution
  30. * under the [CDDL or GPL Version 2] license." If you do not indicate a
  31. * single choice of license, a recipient has the option to distribute
  32. * your version of this file under either the CDDL, the GPL Version 2 or
  33. * to extend the choice of license to its licensees as provided above.
  34. * However, if you add GPL Version 2 code and therefore, elected the GPL
  35. * Version 2 license, then the option applies only if the new code is
  36. * made subject to such option by the copyright holder.
  37. *
  38. * Contributor(s):
  39. *
  40. * Portions Copyrighted 2012 Sun Microsystems, Inc.
  41. */
  42. package org.netbeans.test.mercurial.utils;
  43. import java.io.File;
  44. import java.io.FileInputStream;
  45. import java.io.FileOutputStream;
  46. import java.io.IOException;
  47. /**
  48. *
  49. * @author peter
  50. */
  51. public final class RepositoryMaintenance {
  52. public static void deleteFolder(File folder) {
  53. if (folder.isDirectory()) {
  54. String[] files = folder.list();
  55. for (int i = 0; i < files.length; i++) {
  56. deleteFolder(new File(folder, files[i]));
  57. }
  58. }
  59. folder.delete();
  60. }
  61. public static int loadRepositoryFromFile(File repo, String dumpPath){
  62. int value = -1;
  63. repo.mkdir();
  64. File tmpOutput = new File(repo.getParent() + File.separator + "output.txt");
  65. StreamHandler shError;
  66. StreamHandler shOutput;
  67. try {
  68. String[] cmd = {"unzip", "-d", repo.getCanonicalPath(), dumpPath};
  69. FileOutputStream fos = new FileOutputStream(tmpOutput);
  70. Process p = Runtime.getRuntime().exec(cmd);
  71. shError = new StreamHandler(p.getErrorStream(), System.err);
  72. shOutput = new StreamHandler(p.getInputStream(), fos);
  73. shError.start();
  74. shOutput.start();
  75. value = p.waitFor();
  76. shError.join();
  77. shOutput.join();
  78. } catch (IOException e) {
  79. e.printStackTrace();
  80. } catch (InterruptedException e) {
  81. e.printStackTrace();
  82. }
  83. return value;
  84. }
  85. public static int updateRepository(File repo) {
  86. int value = -1;
  87. String[] cmd = {"hg", "update", "--repository", repo.getAbsolutePath()};
  88. File tmpOutput = new File(repo.getParent() + File.separator + "output.txt");
  89. StreamHandler shError;
  90. StreamHandler shOutput;
  91. try {
  92. FileOutputStream fos = new FileOutputStream(tmpOutput);
  93. Process p = Runtime.getRuntime().exec(cmd);
  94. shError = new StreamHandler(p.getErrorStream(), System.err);
  95. shOutput = new StreamHandler(p.getInputStream(), fos);
  96. shError.start();
  97. shOutput.start();
  98. value = p.waitFor();
  99. shError.join();
  100. shOutput.join();
  101. } catch (IOException e) {
  102. e.printStackTrace();
  103. } catch (InterruptedException e) {
  104. e.printStackTrace();
  105. }
  106. return value;
  107. }
  108. public static String changeFileSeparator(String path, boolean backed) {
  109. String changedPath = "";
  110. if (!backed) {
  111. for (int i = 0; i < path.length(); i++) {
  112. if (path.charAt(i) == '\\') {
  113. changedPath += '/';
  114. } else {
  115. changedPath += path.charAt(i);
  116. }
  117. }
  118. } else {
  119. for (int i = 0; i < path.length(); i++) {
  120. if (path.charAt(i) == '/') {
  121. changedPath += '\\' + '\\';
  122. } else {
  123. changedPath += path.charAt(i);
  124. }
  125. }
  126. }
  127. if (changedPath.startsWith("/"))
  128. changedPath = changedPath.substring(1, changedPath.length());
  129. return changedPath;
  130. }
  131. }