mirror of https://github.com/FOME-Tech/fome-fw.git
inspection cleanup
This commit is contained in:
parent
ddc5400dc2
commit
b4cb4a1167
|
@ -5,8 +5,6 @@ import org.jetbrains.annotations.NotNull;
|
|||
import java.io.*;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
/**
|
||||
* Minor mess: we also have FileUtils in io
|
||||
|
@ -14,56 +12,6 @@ import java.util.zip.ZipInputStream;
|
|||
public class FileUtil {
|
||||
public static final String RUSEFI_SETTINGS_FOLDER = System.getProperty("user.home") + File.separator + ".rusEFI";
|
||||
|
||||
public static void unzip(String zipFileName, File destDir) throws IOException {
|
||||
byte[] buffer = new byte[1024];
|
||||
ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName));
|
||||
ZipEntry zipEntry = zis.getNextEntry();
|
||||
while (zipEntry != null) {
|
||||
/**
|
||||
* drama: java API does not have access to file permission meta info
|
||||
* apache commons compress does
|
||||
* https://stackoverflow.com/questions/1050560/maintain-file-permissions-when-extracting-from-a-zip-file-using-jdk-5-api
|
||||
*/
|
||||
File newFile = newFile(destDir, zipEntry);
|
||||
if (zipEntry.isDirectory()) {
|
||||
if (!newFile.isDirectory()) {
|
||||
// we already have a file with name matching directory name
|
||||
newFile.delete();
|
||||
}
|
||||
newFile.mkdirs();
|
||||
} else {
|
||||
unzipFile(buffer, zis, newFile);
|
||||
}
|
||||
zipEntry = zis.getNextEntry();
|
||||
}
|
||||
zis.closeEntry();
|
||||
zis.close();
|
||||
System.out.println("Unzip " + zipFileName + " to " + destDir + " worked!");
|
||||
}
|
||||
|
||||
private static void unzipFile(byte[] buffer, ZipInputStream zis, File newFile) throws IOException {
|
||||
System.out.println("Unzipping " + newFile);
|
||||
FileOutputStream fos = new FileOutputStream(newFile);
|
||||
int len;
|
||||
while ((len = zis.read(buffer)) > 0) {
|
||||
fos.write(buffer, 0, len);
|
||||
}
|
||||
fos.close();
|
||||
}
|
||||
|
||||
private static File newFile(File destinationDir, ZipEntry zipEntry) throws IOException {
|
||||
File destFile = new File(destinationDir, zipEntry.getName());
|
||||
|
||||
String destDirPath = destinationDir.getCanonicalPath();
|
||||
String destFilePath = destFile.getCanonicalPath();
|
||||
|
||||
if (!destFilePath.startsWith(destDirPath + File.separator)) {
|
||||
throw new IOException("Entry is outside of the target dir: " + zipEntry.getName());
|
||||
}
|
||||
|
||||
return destFile;
|
||||
}
|
||||
|
||||
public static void close(Closeable closeable) {
|
||||
if (closeable != null) {
|
||||
try {
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
package com.rusefi.core;
|
||||
|
||||
public class Tuple<Z> extends Pair<String, String> {
|
||||
|
||||
public final Z third;
|
||||
|
||||
public Tuple(String first, String second, Z third) {
|
||||
super(first, second);
|
||||
this.third = third;
|
||||
}
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
package com.rusefi.core.net;
|
||||
|
||||
import javax.net.ssl.*;
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ConnectionAndMeta {
|
||||
public static final String BASE_URL_RELEASE = "https://github.com/rusefi/rusefi/releases/latest/download/";
|
||||
public static final String BASE_URL_LATEST = "https://rusefi.com/build_server/autoupdate/";
|
||||
public static final String BASE_URL_LTS = "https://rusefi.com/build_server/lts/%s/autoupdate/";
|
||||
|
||||
private static final int BUFFER_SIZE = 32 * 1024;
|
||||
public static final int CENTUM = 100;
|
||||
private final String zipFileName;
|
||||
private HttpsURLConnection httpConnection;
|
||||
private long completeFileSize;
|
||||
private long lastModified;
|
||||
|
||||
public ConnectionAndMeta(String zipFileName) {
|
||||
this.zipFileName = zipFileName;
|
||||
}
|
||||
|
||||
public static void downloadFile(String localTargetFileName, ConnectionAndMeta connectionAndMeta, DownloadProgressListener listener) throws IOException {
|
||||
HttpURLConnection httpConnection = connectionAndMeta.getHttpConnection();
|
||||
long completeFileSize = connectionAndMeta.getCompleteFileSize();
|
||||
Objects.requireNonNull(httpConnection, "httpConnection");
|
||||
BufferedInputStream in = new BufferedInputStream(httpConnection.getInputStream());
|
||||
FileOutputStream fos = new FileOutputStream(localTargetFileName);
|
||||
BufferedOutputStream bout = new BufferedOutputStream(fos, BUFFER_SIZE);
|
||||
byte[] data = new byte[BUFFER_SIZE];
|
||||
long downloadedFileSize = 0;
|
||||
int newDataSize;
|
||||
|
||||
int printedPercentage = 0;
|
||||
|
||||
while ((newDataSize = in.read(data, 0, BUFFER_SIZE)) >= 0) {
|
||||
downloadedFileSize += newDataSize;
|
||||
|
||||
// calculate progress
|
||||
int currentPercentage = (int) (CENTUM * downloadedFileSize / completeFileSize);
|
||||
if (currentPercentage > printedPercentage + 5) {
|
||||
System.out.println("Downloaded " + currentPercentage + "%");
|
||||
printedPercentage = currentPercentage;
|
||||
listener.onPercentage(currentPercentage);
|
||||
}
|
||||
|
||||
|
||||
bout.write(data, 0, newDataSize);
|
||||
}
|
||||
bout.close();
|
||||
in.close();
|
||||
new File(localTargetFileName).setLastModified(connectionAndMeta.getLastModified());
|
||||
}
|
||||
|
||||
public HttpURLConnection getHttpConnection() {
|
||||
return httpConnection;
|
||||
}
|
||||
|
||||
public long getCompleteFileSize() {
|
||||
return completeFileSize;
|
||||
}
|
||||
|
||||
public long getLastModified() {
|
||||
return lastModified;
|
||||
}
|
||||
|
||||
public ConnectionAndMeta invoke(String baseUrl) throws IOException {
|
||||
// user can have java with expired certificates or funny proxy, we shall accept any certificate :(
|
||||
SSLContext ctx;
|
||||
try {
|
||||
ctx = SSLContext.getInstance("TLS");
|
||||
ctx.init(new KeyManager[0], new TrustManager[]{new AcceptAnyCertificateTrustManager()}, new SecureRandom());
|
||||
} catch (NoSuchAlgorithmException | KeyManagementException e) {
|
||||
throw new IOException("TLS exception", e);
|
||||
}
|
||||
|
||||
URL url = new URL(baseUrl + zipFileName);
|
||||
System.out.println("Connecting to " + url);
|
||||
httpConnection = (HttpsURLConnection) url.openConnection();
|
||||
httpConnection.setSSLSocketFactory(ctx.getSocketFactory());
|
||||
completeFileSize = httpConnection.getContentLength();
|
||||
lastModified = httpConnection.getLastModified();
|
||||
return this;
|
||||
}
|
||||
|
||||
public interface DownloadProgressListener {
|
||||
void onPercentage(int currentPercentage);
|
||||
}
|
||||
|
||||
private static class AcceptAnyCertificateTrustManager implements X509TrustManager {
|
||||
@Override
|
||||
public void checkClientTrusted(X509Certificate[] arg0, String arg1) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkServerTrusted(X509Certificate[] arg0, String arg1) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@ package com.rusefi.trigger;
|
|||
import com.rusefi.StartupFrame;
|
||||
import com.rusefi.enums.trigger_type_e;
|
||||
import com.rusefi.ui.engine.UpDownImage;
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.FrameHelper;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
import com.rusefi.waves.EngineReport;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.rusefi.ui;
|
|||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.core.io.BundleUtil;
|
||||
import com.rusefi.core.rusEFIVersion;
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.FrameHelper;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import com.rusefi.core.EngineState;
|
|||
import com.rusefi.io.*;
|
||||
import com.rusefi.io.tcp.BinaryProtocolServer;
|
||||
import com.rusefi.core.preferences.storage.Node;
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.FrameHelper;
|
||||
import com.rusefi.ui.util.UiUtils;
|
||||
import com.rusefi.util.IoUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
package com.rusefi.test;
|
||||
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.MessagesPane;
|
||||
import com.rusefi.core.preferences.storage.PersistentConfiguration;
|
||||
|
||||
public class MsgPanelSandbox extends FrameHelper {
|
||||
public static void main(String[] args) {
|
||||
new FrameHelper().showFrame(new MessagesPane(null, PersistentConfiguration.getConfig().getRoot()).getContent());
|
||||
}
|
||||
}
|
|
@ -5,7 +5,7 @@ import com.rusefi.ui.test.WavePanelSandbox;
|
|||
import com.rusefi.waves.EngineChart;
|
||||
import com.rusefi.waves.EngineChartParser;
|
||||
import com.rusefi.waves.EngineReport;
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.FrameHelper;
|
||||
import com.rusefi.ui.engine.UpDownImage;
|
||||
|
||||
import javax.swing.*;
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.rusefi.ui.test;
|
|||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.core.preferences.storage.PersistentConfiguration;
|
||||
import com.rusefi.core.ui.FrameHelper;
|
||||
import com.rusefi.ui.FrameHelper;
|
||||
import com.rusefi.ui.engine.EngineSnifferPanel;
|
||||
import com.rusefi.waves.EngineChartParser;
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ import org.antlr.v4.runtime.tree.ParseTreeWalker;
|
|||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
public class RusefiParseErrorStrategy extends DefaultErrorStrategy {
|
||||
private boolean hadError = false;
|
||||
|
@ -17,7 +19,7 @@ public class RusefiParseErrorStrategy extends DefaultErrorStrategy {
|
|||
public static void parseDefinitionFile(ParseTreeListener listener, String filePath) throws IOException {
|
||||
SystemOut.println("Parsing file (Antlr) " + filePath);
|
||||
|
||||
CharStream in = new ANTLRInputStream(new FileInputStream(filePath));
|
||||
CharStream in = new ANTLRInputStream(Files.newInputStream(Paths.get(filePath)));
|
||||
|
||||
long start = System.nanoTime();
|
||||
parse(listener, in);
|
||||
|
|
Loading…
Reference in New Issue