Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Merks2013-10-21 13:08:00 -0400
committerEd Merks2013-10-21 13:09:07 -0400
commit56f2473071fbb6e3eb2aebfb7eed66b3e09add08 (patch)
treeea3b71d2918c0895b1ba86708d6062d2b64a0311
parent2f221ea05da6f9b8c0979ea19325f2c6cc1e8af2 (diff)
downloadcdo-56f2473071fbb6e3eb2aebfb7eed66b3e09add08.tar.gz
cdo-56f2473071fbb6e3eb2aebfb7eed66b3e09add08.tar.xz
cdo-56f2473071fbb6e3eb2aebfb7eed66b3e09add08.zip
Improve setup related models
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java66
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java53
4 files changed, 67 insertions, 60 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java
index f39153c097..0db82d6bc5 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java
@@ -23,8 +23,6 @@ import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
-import java.io.File;
-
/**
* @author Eike Stepper
*/
@@ -51,10 +49,9 @@ public class ManualPerformAction implements IWorkbenchWindowActionDelegate
try
{
final SetupTaskPerformer setupTaskPerformer = new SetupTaskPerformer(true);
- File logFile = new File(setupTaskPerformer.getInstallDir(), "setup.log");
IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
final Shell shell = window.getShell();
- ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable()
+ ProgressLogDialog.run(shell, "Setting up IDE", new ProgressLogRunnable()
{
public boolean run(ProgressLog log) throws Exception
{
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java
index 7a5d8230e1..bb67c78183 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java
@@ -643,8 +643,7 @@ public class SetupDialog extends TitleAreaDialog
File folder = new File(installFolder);
folder.mkdirs();
- File logFile = new File(installFolder, "setup.log");
- ProgressLogDialog.run(getShell(), logFile, "Setting up IDE", new ProgressLogRunnable()
+ ProgressLogDialog.run(getShell(), "Setting up IDE", new ProgressLogRunnable()
{
public boolean run(ProgressLog log) throws Exception
{
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
index 2294a185e5..af04607453 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
@@ -21,6 +21,8 @@ import org.eclipse.emf.cdo.releng.setup.util.OS;
import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
+import org.eclipse.net4j.util.io.IOUtil;
+
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
@@ -41,7 +43,11 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
@@ -81,6 +87,8 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
private transient boolean restartNeeded;
+ private PrintStream logStream;
+
private List<String> logMessageBuffer;
public SetupTaskPerformer(File branchDir)
@@ -115,13 +123,13 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
{
for (String value : logMessageBuffer)
{
- progress.log(value);
+ doLog(value);
}
logMessageBuffer = null;
}
- progress.log(line);
+ doLog(line);
}
else
{
@@ -134,6 +142,24 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
}
}
+ private void doLog(String line)
+ {
+ if (logStream != null)
+ {
+ try
+ {
+ logStream.println("[" + ProgressLogDialog.DATE_TIME.format(new Date()) + "] " + line);
+ logStream.flush();
+ }
+ catch (Exception ex)
+ {
+ Activator.log(ex);
+ }
+ }
+
+ progress.log(line);
+ }
+
public void log(IStatus status)
{
log(ProgressLogDialog.toString(status));
@@ -172,9 +198,17 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
{
result.append(string.substring(previous, matcher.start()));
String key = matcher.group(1);
- if (NEEDS_PATH_SEPARATOR_CONVERSION)
+ String suffix = "";
+
+ int prefixIndex = key.indexOf('/');
+ if (prefixIndex != -1)
{
- key = key.replace('/', File.pathSeparatorChar);
+ suffix = key.substring(prefixIndex);
+ key = key.substring(0, prefixIndex);
+ if (NEEDS_PATH_SEPARATOR_CONVERSION)
+ {
+ suffix = suffix.replace('/', File.pathSeparatorChar);
+ }
}
String value = lookup(key);
@@ -188,6 +222,7 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
}
result.append(value);
+ result.append(suffix);
previous = matcher.end();
}
@@ -277,6 +312,15 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
reorder(setupTasks);
perform(setupTasks);
+
+ if (logStream != null)
+ {
+ logStream.println();
+ logStream.println();
+ logStream.println();
+ logStream.println();
+ IOUtil.closeSilent(logStream);
+ }
}
protected String lookup(String key)
@@ -327,6 +371,17 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
put("setup.project.name", projectName);
put("setup.branch.name", branchName);
put("releng.url", RELENG_URL);
+
+ try
+ {
+ File logFile = new File(getBranchDir(), "setup.log");
+ logFile.getParentFile().mkdirs();
+ logStream = new PrintStream(new FileOutputStream(logFile, true));
+ }
+ catch (FileNotFoundException ex)
+ {
+ throw new RuntimeException(ex);
+ }
}
private void reorder(EList<SetupTask> setupTasks)
@@ -372,10 +427,9 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup
if (Activator.SETUP_IDE && trigger != Trigger.MANUAL)
{
- File logFile = new File(getInstallDir(), "setup.log");
Shell shell = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell();
- ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable()
+ ProgressLogDialog.run(shell, "Setting up IDE", new ProgressLogRunnable()
{
public boolean run(ProgressLog log) throws Exception
{
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
index d6c9487ca2..0cfa85cde3 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
@@ -16,8 +16,6 @@ import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogProvider;
import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
-import org.eclipse.net4j.util.io.IOUtil;
-
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -43,9 +41,6 @@ import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.progress.ProgressManager;
import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
@@ -55,9 +50,9 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
{
public static final String TITLE = "Setup Development Environment";
- private static final SimpleDateFormat TIME = new SimpleDateFormat("HH:mm:ss");
+ public static final SimpleDateFormat DATE_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- private static final SimpleDateFormat DATE_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ private static final SimpleDateFormat TIME = new SimpleDateFormat("HH:mm:ss");
private static final String[] IGNORED_PREFIXES = { "Scanning Git", "Re-indexing", "Calculating Decorations",
"Decorating", "http://", "The user operation is waiting", "Git repository changed", "Refreshing ", "Opening ",
@@ -70,8 +65,6 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
"Preparing to build", "Compiling ", "Analyzing ", "Comparing ", "Checking ", "Build done",
"Processing API deltas..." };
- private PrintStream logStream;
-
private Text text;
private Button okButton;
@@ -82,21 +75,9 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
private String lastLine;
- private ProgressLogDialog(Shell parentShell, File logFile)
+ private ProgressLogDialog(Shell parentShell)
{
super(parentShell);
- if (logFile != null)
- {
- try
- {
- logFile.getParentFile().mkdirs();
- logStream = new PrintStream(new FileOutputStream(logFile, true));
- }
- catch (FileNotFoundException ex)
- {
- throw new RuntimeException(ex);
- }
- }
setHelpAvailable(false);
setShellStyle(SWT.BORDER | SWT.MAX | SWT.RESIZE | SWT.TITLE | SWT.APPLICATION_MODAL);
@@ -160,15 +141,6 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
{
SetupTaskPerformer.setProgress(null);
- if (logStream != null)
- {
- logStream.println();
- logStream.println();
- logStream.println();
- logStream.println();
- IOUtil.closeSilent(logStream);
- }
-
return super.close();
}
@@ -218,19 +190,6 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
final String message = line + "\n";
final Date date = new Date();
- if (logStream != null)
- {
- try
- {
- logStream.print("[" + DATE_TIME.format(date) + "] " + message);
- logStream.flush();
- }
- catch (Exception ex)
- {
- Activator.log(ex);
- }
- }
-
asyncExec(new Runnable()
{
public void run()
@@ -255,7 +214,6 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
public void setFinished()
{
Job.getJobManager().setProgressProvider(ProgressManager.getInstance());
-
asyncExec(new Runnable()
{
public void run()
@@ -263,7 +221,6 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
try
{
okButton.setEnabled(true);
- cancelButton.setEnabled(false);
}
catch (Exception ex)
{
@@ -308,12 +265,12 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
return false;
}
- public static void run(Shell shell, File logFile, final String jobName, final ProgressLogRunnable runnable)
+ public static void run(Shell shell, final String jobName, final ProgressLogRunnable runnable)
{
try
{
final boolean[] restart = { false };
- final ProgressLogDialog dialog = new ProgressLogDialog(shell, logFile);
+ final ProgressLogDialog dialog = new ProgressLogDialog(shell);
Runnable jobRunnable = new Runnable()
{
public void run()

Back to the top