Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2013-07-28 06:29:29 +0000
committerEike Stepper2013-07-30 10:45:43 +0000
commit6444036aae466d5ab12bfbcb01bc3241f88257ef (patch)
treea3b0c6d3e356cb8719a3035b7d350ca470d3a4c4
parent799ad7cef8e3c2e52f74582d13c22a3797700b89 (diff)
downloadcdo-6444036aae466d5ab12bfbcb01bc3241f88257ef.tar.gz
cdo-6444036aae466d5ab12bfbcb01bc3241f88257ef.tar.xz
cdo-6444036aae466d5ab12bfbcb01bc3241f88257ef.zip
Add setup tool
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java96
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java25
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);
- }
- }
}

Back to the top