Skip to content

Commit

Permalink
More Core/UI refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
chriswhocodes committed Jun 13, 2016
1 parent 5d96a23 commit f2971f0
Show file tree
Hide file tree
Showing 13 changed files with 82 additions and 60 deletions.
Expand Up @@ -272,12 +272,11 @@ public void processLogFile(File hotspotLog, ILogParseErrorListener errorListener
logSplitStats(); logSplitStats();
} }


parseLogFile(); parseLogFile();

cleanup();
} }


private void cleanup() @Override
public void discardParsedLogs()
{ {
splitLog.clear(); splitLog.clear();
splitLog = new SplitLog(); splitLog = new SplitLog();
Expand Down
Expand Up @@ -35,4 +35,6 @@ public interface ILogParser
boolean isTweakVMLog(); boolean isTweakVMLog();


String getVMCommand(); String getVMCommand();

void discardParsedLogs();
} }
Expand Up @@ -3,7 +3,7 @@
* Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
* Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
*/ */
package org.adoptopenjdk.jitwatch.sandbox; package org.adoptopenjdk.jitwatch.jvmlang;


import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.C_DOT; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.C_DOT;
import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_EMPTY; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_EMPTY;
Expand Down
Expand Up @@ -23,7 +23,7 @@
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;


import org.adoptopenjdk.jitwatch.sandbox.LanguageManager; import org.adoptopenjdk.jitwatch.jvmlang.LanguageManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


Expand Down
Expand Up @@ -19,13 +19,13 @@
import org.adoptopenjdk.jitwatch.logger.ILogListener; import org.adoptopenjdk.jitwatch.logger.ILogListener;
import org.adoptopenjdk.jitwatch.process.AbstractProcess; import org.adoptopenjdk.jitwatch.process.AbstractProcess;
import org.adoptopenjdk.jitwatch.process.compiler.CompilerKotlin; import org.adoptopenjdk.jitwatch.process.compiler.CompilerKotlin;
import org.adoptopenjdk.jitwatch.sandbox.Sandbox;


public class RuntimeKotlin extends AbstractProcess implements IRuntime public class RuntimeKotlin extends AbstractProcess implements IRuntime
{ {
private Path runtimePath; private Path runtimePath;


private final Path pathToRuntimeJar = Paths.get(Sandbox.SANDBOX_CLASS_DIR.toString(), CompilerKotlin.KOTLIN_EXECUTABLE_JAR); //TODO how did this used to work?
private final Path pathToRuntimeJar = Paths.get(CompilerKotlin.KOTLIN_EXECUTABLE_JAR);


private final String RUNTIME_NAME = "java" + getExecutableSuffix(); private final String RUNTIME_NAME = "java" + getExecutableSuffix();


Expand Down
@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2015 Chris Newland. * Copyright (c) 2013-2016 Chris Newland.
* Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
* Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
*/ */
Expand All @@ -9,42 +9,59 @@
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import java.io.File; import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.adoptopenjdk.jitwatch.logger.NullLogListener; import org.adoptopenjdk.jitwatch.logger.NullLogListener;
import org.adoptopenjdk.jitwatch.process.compiler.CompilerJava; import org.adoptopenjdk.jitwatch.process.compiler.CompilerJava;
import org.adoptopenjdk.jitwatch.sandbox.Sandbox;
import org.adoptopenjdk.jitwatch.util.FileUtil; import org.adoptopenjdk.jitwatch.util.FileUtil;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;


public class TestCompilationUtil public class TestCompilationUtil
{ {
private static final File TEST_SOURCE_FILE = new File(Sandbox.SANDBOX_SOURCE_DIR.toFile(), "org" + File.separator + "adoptopenjdk" private Path tempDirPath;
+ File.separator + "jitwatch" + File.separator + "compiletest" + File.separator + "CompileTest.java"); private File testSourceFile;

private File testClassFile;
private static final File TEST_CLASS_FILE = new File(Sandbox.SANDBOX_CLASS_DIR.toFile(), "org" + File.separator + "adoptopenjdk" + File.separator
+ "jitwatch" + File.separator + "compiletest" + File.separator + "CompileTest.class");


@Before @Before
public void setUp() public void setUp()
{ {
deleteFile(TEST_SOURCE_FILE); try
deleteFile(TEST_CLASS_FILE); {
tempDirPath = Files.createTempDirectory("test_compilation_util");
tempDirPath.toFile().deleteOnExit();
}
catch (IOException e)
{
e.printStackTrace();
}

testSourceFile = Paths.get(tempDirPath.toString(), "org", "adoptopenjdk", "jitwatch", "compiletest", "CompileTest.java")
.toFile();

testClassFile = Paths.get(tempDirPath.toString(), "org", "adoptopenjdk", "jitwatch", "compiletest", "CompileTest.class")
.toFile();

deleteFile(testSourceFile);
deleteFile(testClassFile);
} }


@After @After
public void tearDown() public void tearDown()
{ {
deleteFile(TEST_SOURCE_FILE); deleteFile(testSourceFile);
deleteFile(TEST_CLASS_FILE); deleteFile(testClassFile);
} }


private void deleteFile(File file) private void deleteFile(File file)
{ {
if (file.exists() && file.isFile()) if (file != null && file.exists() && file.isFile())
{ {
file.delete(); file.delete();
} }
Expand All @@ -64,9 +81,10 @@ public void testCompileSimple()


try try
{ {
File f = FileUtil.writeSource(Sandbox.SANDBOX_SOURCE_DIR.toFile(), "org.adoptopenjdk.jitwatch.compiletest.CompileTest", builder.toString()); File f = FileUtil.writeSource(tempDirPath.toFile(), "org.adoptopenjdk.jitwatch.compiletest.CompileTest",
builder.toString());


assertTrue(TEST_SOURCE_FILE.exists()); assertTrue(testSourceFile.exists());


List<File> sources = new ArrayList<>(); List<File> sources = new ArrayList<>();
sources.add(f); sources.add(f);
Expand All @@ -75,15 +93,15 @@ public void testCompileSimple()


List<String> compileClasspath = new ArrayList<>(); List<String> compileClasspath = new ArrayList<>();


boolean success = compiler.compile(sources, compileClasspath, Sandbox.SANDBOX_CLASS_DIR.toFile(), new NullLogListener()); boolean success = compiler.compile(sources, compileClasspath, tempDirPath.toFile(), new NullLogListener());


if (!success) if (!success)
{ {
System.err.println(compiler.getErrorStream()); System.err.println(compiler.getErrorStream());
fail(); fail();
} }


assertTrue(TEST_CLASS_FILE.exists()); assertTrue(testClassFile.exists());
} }
catch (Exception e) catch (Exception e)
{ {
Expand Down
Expand Up @@ -22,6 +22,7 @@
import org.adoptopenjdk.jitwatch.core.JITWatchConfig.CompressedOops; import org.adoptopenjdk.jitwatch.core.JITWatchConfig.CompressedOops;
import org.adoptopenjdk.jitwatch.core.JITWatchConfig.OnStackReplacement; import org.adoptopenjdk.jitwatch.core.JITWatchConfig.OnStackReplacement;
import org.adoptopenjdk.jitwatch.core.JITWatchConfig.TieredCompilation; import org.adoptopenjdk.jitwatch.core.JITWatchConfig.TieredCompilation;
import org.adoptopenjdk.jitwatch.jvmlang.LanguageManager;
import org.adoptopenjdk.jitwatch.core.JITWatchConstants; import org.adoptopenjdk.jitwatch.core.JITWatchConstants;
import org.adoptopenjdk.jitwatch.logger.ILogListener; import org.adoptopenjdk.jitwatch.logger.ILogListener;
import org.adoptopenjdk.jitwatch.model.IMetaMember; import org.adoptopenjdk.jitwatch.model.IMetaMember;
Expand Down
60 changes: 31 additions & 29 deletions ui/src/main/java/org/adoptopenjdk/jitwatch/ui/JITWatchUI.java
@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2015 Chris Newland. * Copyright (c) 2013-2016 Chris Newland.
* Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
* Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
*/ */
Expand All @@ -20,34 +20,6 @@
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;


import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.SplitPane;
import javafx.scene.control.TableView;
import javafx.scene.control.TextArea;
import javafx.scene.control.TreeItem;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.text.Text;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import javafx.util.Duration;

import org.adoptopenjdk.jitwatch.chain.CompileChainWalker; import org.adoptopenjdk.jitwatch.chain.CompileChainWalker;
import org.adoptopenjdk.jitwatch.chain.CompileNode; import org.adoptopenjdk.jitwatch.chain.CompileNode;
import org.adoptopenjdk.jitwatch.core.ErrorLog; import org.adoptopenjdk.jitwatch.core.ErrorLog;
Expand Down Expand Up @@ -81,6 +53,34 @@
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.SplitPane;
import javafx.scene.control.TableView;
import javafx.scene.control.TextArea;
import javafx.scene.control.TreeItem;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.text.Text;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import javafx.util.Duration;

public class JITWatchUI extends Application implements IJITListener, ILogParseErrorListener, IStageCloseListener, IStageAccessProxy public class JITWatchUI extends Application implements IJITListener, ILogParseErrorListener, IStageCloseListener, IStageAccessProxy
{ {
private static final Logger logger = LoggerFactory.getLogger(JITWatchUI.class); private static final Logger logger = LoggerFactory.getLogger(JITWatchUI.class);
Expand Down Expand Up @@ -243,6 +243,8 @@ public void run()
public void handleReadComplete() public void handleReadComplete()
{ {
log("Finished reading log file."); log("Finished reading log file.");

logParser.discardParsedLogs();


isReadingLogFile = false; isReadingLogFile = false;


Expand Down
Expand Up @@ -54,10 +54,10 @@
import org.adoptopenjdk.jitwatch.core.ILogParser; import org.adoptopenjdk.jitwatch.core.ILogParser;
import org.adoptopenjdk.jitwatch.core.JITWatchConfig; import org.adoptopenjdk.jitwatch.core.JITWatchConfig;
import org.adoptopenjdk.jitwatch.core.JITWatchConstants; import org.adoptopenjdk.jitwatch.core.JITWatchConstants;
import org.adoptopenjdk.jitwatch.jvmlang.LanguageManager;
import org.adoptopenjdk.jitwatch.logger.ILogListener; import org.adoptopenjdk.jitwatch.logger.ILogListener;
import org.adoptopenjdk.jitwatch.model.IMetaMember; import org.adoptopenjdk.jitwatch.model.IMetaMember;
import org.adoptopenjdk.jitwatch.process.IExternalProcess; import org.adoptopenjdk.jitwatch.process.IExternalProcess;
import org.adoptopenjdk.jitwatch.sandbox.LanguageManager;
import org.adoptopenjdk.jitwatch.sandbox.Sandbox; import org.adoptopenjdk.jitwatch.sandbox.Sandbox;
import org.adoptopenjdk.jitwatch.ui.Dialogs; import org.adoptopenjdk.jitwatch.ui.Dialogs;
import org.adoptopenjdk.jitwatch.ui.Dialogs.Response; import org.adoptopenjdk.jitwatch.ui.Dialogs.Response;
Expand Down
Expand Up @@ -16,7 +16,7 @@
import javafx.stage.Stage; import javafx.stage.Stage;


import org.adoptopenjdk.jitwatch.core.JITWatchConfig; import org.adoptopenjdk.jitwatch.core.JITWatchConfig;
import org.adoptopenjdk.jitwatch.sandbox.LanguageManager; import org.adoptopenjdk.jitwatch.jvmlang.LanguageManager;
import org.adoptopenjdk.jitwatch.ui.IStageCloseListener; import org.adoptopenjdk.jitwatch.ui.IStageCloseListener;
import org.adoptopenjdk.jitwatch.ui.StageManager; import org.adoptopenjdk.jitwatch.ui.StageManager;


Expand Down
@@ -1,22 +1,22 @@
/* /*
* Copyright (c) 2013-2015 Chris Newland. * Copyright (c) 2013-2016 Chris Newland.
* Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
* Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
*/ */
package org.adoptopenjdk.jitwatch.util; package org.adoptopenjdk.jitwatch.util;


import java.io.InputStream; import java.io.InputStream;


import org.adoptopenjdk.jitwatch.model.bytecode.BCAnnotationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.text.Font; import javafx.scene.text.Font;


import org.adoptopenjdk.jitwatch.model.bytecode.BCAnnotationType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public final class UserInterfaceUtil public final class UserInterfaceUtil
{ {
private static final Logger logger = LoggerFactory.getLogger(UserInterfaceUtil.class); private static final Logger logger = LoggerFactory.getLogger(UserInterfaceUtil.class);
Expand Down
File renamed without changes.

0 comments on commit f2971f0

Please sign in to comment.