diff options
author | Eike Stepper | 2013-07-28 06:29:29 +0000 |
---|---|---|
committer | Eike Stepper | 2013-07-30 10:45:43 +0000 |
commit | 6444036aae466d5ab12bfbcb01bc3241f88257ef (patch) | |
tree | a3b0c6d3e356cb8719a3035b7d350ca470d3a4c4 | |
parent | 799ad7cef8e3c2e52f74582d13c22a3797700b89 (diff) | |
download | cdo-6444036aae466d5ab12bfbcb01bc3241f88257ef.tar.gz cdo-6444036aae466d5ab12bfbcb01bc3241f88257ef.tar.xz cdo-6444036aae466d5ab12bfbcb01bc3241f88257ef.zip |
Add setup tool
2 files changed, 73 insertions, 48 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java index 5f75a29352..65e4e6d124 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java @@ -23,6 +23,7 @@ import org.eclipse.net4j.util.io.ZIPUtil.FileSystemUnzipHandler; import org.eclipse.buckminster.cmdline.Headless; import org.eclipse.buckminster.core.commands.Import; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; @@ -72,41 +73,50 @@ public final class Buckminster return; } - String version = apiBaseline.getVersion(); - Progress.log().addLine("Setting baseline " + version); + boolean autoBuilding = disableAutoBuilding(); - final File baselineDir = CONTEXT.getBaselineDir(); - File target = new File(baselineDir, version); - if (!target.exists()) + try { - String url = apiBaseline.getZipLocation(); - File file = Downloads.downloadURL(url); - baselineDir.mkdirs(); + String version = apiBaseline.getVersion(); + Progress.log().addLine("Setting baseline " + version); - final File[] rootDir = { null }; - ZIPUtil.unzip(file, new FileSystemUnzipHandler(baselineDir, ZIPUtil.DEFALULT_BUFFER_SIZE) + final File baselineDir = CONTEXT.getBaselineDir(); + File target = new File(baselineDir, version); + if (!target.exists()) { - @Override - public void unzipFile(String name, InputStream zipStream) + String url = apiBaseline.getZipLocation(); + File file = Downloads.downloadURL(url); + baselineDir.mkdirs(); + + final File[] rootDir = { null }; + ZIPUtil.unzip(file, new FileSystemUnzipHandler(baselineDir, ZIPUtil.DEFALULT_BUFFER_SIZE) { - if (rootDir[0] == null) + @Override + public void unzipFile(String name, InputStream zipStream) { - rootDir[0] = new File(baselineDir, new Path(name).segment(0)); - } + if (rootDir[0] == null) + { + rootDir[0] = new File(baselineDir, new Path(name).segment(0)); + } - Progress.log().addLine("Unzipping " + name); - super.unzipFile(name, zipStream); - } - }); + Progress.log().addLine("Unzipping " + name); + super.unzipFile(name, zipStream); + } + }); - rootDir[0].renameTo(target); - } + rootDir[0].renameTo(target); + } - String name = apiBaseline.getProject().getName() + " Baseline"; - importTarget(target, name, false); + String name = apiBaseline.getProject().getName() + " Baseline"; + importTarget(target, name, false); - Progress.log().addLine("Setting baseline: " + name); - run("addbaseline", "-A", name); + Progress.log().addLine("Setting baseline: " + name); + run("addbaseline", "-A", name); + } + finally + { + restoreAutoBuilding(autoBuilding); + } } private static void importTarget(File folder, String name, boolean activate) throws Exception @@ -144,7 +154,16 @@ public final class Buckminster File targetPlatformDir = CONTEXT.getTargetPlatformDir(); String name = setup.getBranch().getProject().getName() + " Target"; - importTarget(targetPlatformDir, name, true); + boolean autoBuilding = disableAutoBuilding(); + + try + { + importTarget(targetPlatformDir, name, true); + } + finally + { + restoreAutoBuilding(autoBuilding); + } } public static void importMSpec() throws Exception @@ -156,6 +175,8 @@ public final class Buckminster Files.rename(tp, tpOld); } + boolean autoBuilding = disableAutoBuilding(); + try { File gitDir = CONTEXT.getGitDir(); @@ -197,6 +218,10 @@ public final class Buckminster Files.delete(tpBroken); throw ex; } + finally + { + restoreAutoBuilding(autoBuilding); + } if (tpOld != null) { @@ -257,6 +282,25 @@ public final class Buckminster }.schedule(); } + public static boolean disableAutoBuilding() + { + boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding(); + if (autoBuilding) + { + ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(false); + } + + return autoBuilding; + } + + public static void restoreAutoBuilding(boolean autoBuilding) + { + if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding()) + { + ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(autoBuilding); + } + } + /** * @author Eike Stepper */ diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java index 96a6a4105a..7b4b9a86be 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java @@ -15,7 +15,6 @@ import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog; import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable; import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog; -import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchWindow; @@ -61,7 +60,7 @@ public final class SetupIDE { public boolean run(ProgressLog log) throws Exception { - boolean autoBuilding = disableAutoBuilding(); + boolean autoBuilding = Buckminster.disableAutoBuilding(); try { @@ -69,7 +68,7 @@ public final class SetupIDE } finally { - restoreAutoBuilding(autoBuilding); + Buckminster.restoreAutoBuilding(autoBuilding); } } }); @@ -117,6 +116,7 @@ public final class SetupIDE restart = true; } + Buckminster.restoreAutoBuilding(true); return restart; } @@ -141,23 +141,4 @@ public final class SetupIDE return INITIAL; } - - private static boolean disableAutoBuilding() - { - boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding(); - if (autoBuilding) - { - ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(false); - } - - return autoBuilding; - } - - private static void restoreAutoBuilding(boolean autoBuilding) - { - if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding()) - { - ResourcesPlugin.getWorkspace().getDescription().setAutoBuilding(autoBuilding); - } - } } |