Move package, set additional system property only when value differs from default

This commit is contained in:
retgal 2024-04-01 23:41:36 +02:00
parent 4e9089a45c
commit ca978cc9ad
13 changed files with 129 additions and 125 deletions

View File

@ -8,7 +8,7 @@ import java.util.concurrent.Semaphore;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.capture.Capture;
import mpo.dayon.common.concurrent.DefaultThreadFactoryEx;
import mpo.dayon.common.concurrent.Executable;

View File

@ -9,7 +9,7 @@ import mpo.dayon.assistant.network.NetworkAssistantEngine;
import mpo.dayon.assistant.network.NetworkAssistantEngineListener;
import mpo.dayon.assistant.utils.NetworkUtilities;
import mpo.dayon.common.capture.CaptureEngineConfiguration;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.capture.Capture;
import mpo.dayon.common.capture.Gray8Bits;
import mpo.dayon.common.error.FatalErrorHandler;
@ -78,7 +78,7 @@ public class Assistant implements ClipboardOwner {
private AssistantConfiguration configuration;
private NetworkAssistantEngineConfiguration networkConfiguration;
private final NetworkAssistantEngineConfiguration networkConfiguration;
private CaptureEngineConfiguration captureEngineConfiguration;
@ -105,14 +105,16 @@ public class Assistant implements ClipboardOwner {
if (tokenServerUrl != null) {
this.tokenServerUrl = tokenServerUrl + PORT_PARAM;
System.setProperty("dayon.custom.tokenServer", this.tokenServerUrl);
} else if (!networkConfiguration.getTokenServerUrl().isEmpty()) {
this.tokenServerUrl = networkConfiguration.getTokenServerUrl() + PORT_PARAM;
System.setProperty("dayon.custom.tokenServer", this.tokenServerUrl);
} else {
this.tokenServerUrl = DEFAULT_TOKEN_SERVER_URL + PORT_PARAM;
}
if (!this.tokenServerUrl.startsWith(DEFAULT_TOKEN_SERVER_URL)) {
System.setProperty("dayon.custom.tokenServer", this.tokenServerUrl);
}
this.configuration = new AssistantConfiguration();
// has not been overridden by command line
if (language == null && !Locale.getDefault().getLanguage().equals(configuration.getLanguage())) {

View File

@ -1,7 +1,7 @@
package mpo.dayon.assistant.network;
import com.dosse.upnp.UPnP;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.capture.CaptureEngineConfiguration;
import mpo.dayon.common.concurrent.RunnableEx;
import mpo.dayon.common.configuration.ReConfigurable;

View File

@ -3,8 +3,8 @@ package mpo.dayon.assisted.gui;
import mpo.dayon.assisted.capture.CaptureEngine;
import mpo.dayon.common.capture.CaptureEngineConfiguration;
import mpo.dayon.assisted.capture.RobotCaptureFactory;
import mpo.dayon.assisted.compressor.CompressorEngine;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngine;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.assisted.control.NetworkControlMessageHandler;
import mpo.dayon.assisted.control.RobotNetworkControlMessageHandler;
import mpo.dayon.assisted.mouse.MouseEngine;
@ -67,14 +67,16 @@ public class Assisted implements Subscriber, ClipboardOwner {
if (tokenServerUrl != null) {
this.tokenServerUrl = tokenServerUrl + TOKEN_PARAM;
System.setProperty("dayon.custom.tokenServer", tokenServerUrl);
} else if (!networkConfiguration.getTokenServerUrl().isEmpty()) {
this.tokenServerUrl = networkConfiguration.getTokenServerUrl() + TOKEN_PARAM;
System.setProperty("dayon.custom.tokenServer", this.tokenServerUrl);
} else {
this.tokenServerUrl = DEFAULT_TOKEN_SERVER_URL + TOKEN_PARAM;
}
if (!this.tokenServerUrl.startsWith(DEFAULT_TOKEN_SERVER_URL)) {
System.setProperty("dayon.custom.tokenServer", this.tokenServerUrl);
}
final String lnf = getDefaultLookAndFeel();
try {
UIManager.setLookAndFeel(lnf);

View File

@ -1,7 +1,7 @@
package mpo.dayon.assisted.network;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.assisted.compressor.CompressorEngineListener;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineListener;
import mpo.dayon.assisted.control.NetworkControlMessageHandler;
import mpo.dayon.assisted.mouse.MouseEngineListener;
import mpo.dayon.common.buffer.MemByteBuffer;

View File

@ -1,4 +1,4 @@
package mpo.dayon.assisted.compressor;
package mpo.dayon.common.compressor;
import java.io.IOException;
import java.util.ArrayList;

View File

@ -1,106 +1,106 @@
package mpo.dayon.assisted.compressor;
import mpo.dayon.common.configuration.Configuration;
import mpo.dayon.common.preference.Preferences;
import mpo.dayon.common.squeeze.CompressionMethod;
import mpo.dayon.common.squeeze.RegularTileCache;
public class CompressorEngineConfiguration extends Configuration {
private static final String PREF_VERSION = "assistant.compression.version";
private static final String PREF_METHOD = "assistant.compression.method";
private static final String PREF_USE_CACHE = "assistant.compression.useCache";
private static final String PREF_CACHE_MAX_SIZE = "assistant.compression.cacheMaxSize";
private static final String PREF_CACHE_PURGE_SIZE = "assistant.compression.cachePurgeSize";
private final CompressionMethod method;
private final boolean useCache;
private final int maxSize;
private final int purgeSize;
/**
* Default : takes its values from the current preferences.
*
* @see mpo.dayon.common.preference.Preferences
*/
public CompressorEngineConfiguration() {
final Preferences prefs = Preferences.getPreferences();
// Note: did not exist in version = 0 => no migration is required.
this.method = prefs.getEnumPreference(PREF_METHOD, CompressionMethod.XZ, CompressionMethod.values());
this.useCache = prefs.getBooleanPreference(PREF_USE_CACHE, true);
this.maxSize = prefs.getIntPreference(PREF_CACHE_MAX_SIZE, RegularTileCache.DEFAULT_MAX_SIZE);
this.purgeSize = prefs.getIntPreference(PREF_CACHE_PURGE_SIZE, RegularTileCache.DEFAULT_PURGE_SIZE);
}
public CompressorEngineConfiguration(CompressionMethod method, boolean useCache, int maxSize, int purgeSize) {
this.method = method;
this.useCache = useCache;
this.maxSize = maxSize;
this.purgeSize = purgeSize;
}
public CompressionMethod getMethod() {
return method;
}
public boolean useCache() {
return useCache;
}
public int getCacheMaxSize() {
return maxSize;
}
public int getCachePurgeSize() {
return purgeSize;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final CompressorEngineConfiguration that = (CompressorEngineConfiguration) o;
return maxSize == that.getCacheMaxSize() && purgeSize == that.getCachePurgeSize() && useCache == that.useCache() && method == that.getMethod();
}
@Override
public int hashCode() {
int result = method.hashCode();
result = 31 * result + (useCache ? 1 : 0);
result = 31 * result + maxSize;
result = 31 * result + purgeSize;
return result;
}
/**
* @param clear allows for clearing properties from previous version
*/
@Override
protected void persist(boolean clear) {
final Preferences.Props props = new Preferences.Props();
props.set(PREF_VERSION, String.valueOf(1));
props.set(PREF_METHOD, String.valueOf(method.ordinal()));
props.set(PREF_USE_CACHE, String.valueOf(useCache));
props.set(PREF_CACHE_MAX_SIZE, String.valueOf(maxSize));
props.set(PREF_CACHE_PURGE_SIZE, String.valueOf(purgeSize));
Preferences.getPreferences().update(props); // atomic (!)
}
@Override
public String toString() {
return "[method:" + method + "][useCache:" + useCache + "][max:" + maxSize + "][purge:" + purgeSize + "]";
}
}
package mpo.dayon.common.compressor;
import mpo.dayon.common.configuration.Configuration;
import mpo.dayon.common.preference.Preferences;
import mpo.dayon.common.squeeze.CompressionMethod;
import mpo.dayon.common.squeeze.RegularTileCache;
public class CompressorEngineConfiguration extends Configuration {
private static final String PREF_VERSION = "assistant.compression.version";
private static final String PREF_METHOD = "assistant.compression.method";
private static final String PREF_USE_CACHE = "assistant.compression.useCache";
private static final String PREF_CACHE_MAX_SIZE = "assistant.compression.cacheMaxSize";
private static final String PREF_CACHE_PURGE_SIZE = "assistant.compression.cachePurgeSize";
private final CompressionMethod method;
private final boolean useCache;
private final int maxSize;
private final int purgeSize;
/**
* Default : takes its values from the current preferences.
*
* @see mpo.dayon.common.preference.Preferences
*/
public CompressorEngineConfiguration() {
final Preferences prefs = Preferences.getPreferences();
// Note: did not exist in version = 0 => no migration is required.
this.method = prefs.getEnumPreference(PREF_METHOD, CompressionMethod.XZ, CompressionMethod.values());
this.useCache = prefs.getBooleanPreference(PREF_USE_CACHE, true);
this.maxSize = prefs.getIntPreference(PREF_CACHE_MAX_SIZE, RegularTileCache.DEFAULT_MAX_SIZE);
this.purgeSize = prefs.getIntPreference(PREF_CACHE_PURGE_SIZE, RegularTileCache.DEFAULT_PURGE_SIZE);
}
public CompressorEngineConfiguration(CompressionMethod method, boolean useCache, int maxSize, int purgeSize) {
this.method = method;
this.useCache = useCache;
this.maxSize = maxSize;
this.purgeSize = purgeSize;
}
public CompressionMethod getMethod() {
return method;
}
public boolean useCache() {
return useCache;
}
public int getCacheMaxSize() {
return maxSize;
}
public int getCachePurgeSize() {
return purgeSize;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final CompressorEngineConfiguration that = (CompressorEngineConfiguration) o;
return maxSize == that.getCacheMaxSize() && purgeSize == that.getCachePurgeSize() && useCache == that.useCache() && method == that.getMethod();
}
@Override
public int hashCode() {
int result = method.hashCode();
result = 31 * result + (useCache ? 1 : 0);
result = 31 * result + maxSize;
result = 31 * result + purgeSize;
return result;
}
/**
* @param clear allows for clearing properties from previous version
*/
@Override
protected void persist(boolean clear) {
final Preferences.Props props = new Preferences.Props();
props.set(PREF_VERSION, String.valueOf(1));
props.set(PREF_METHOD, String.valueOf(method.ordinal()));
props.set(PREF_USE_CACHE, String.valueOf(useCache));
props.set(PREF_CACHE_MAX_SIZE, String.valueOf(maxSize));
props.set(PREF_CACHE_PURGE_SIZE, String.valueOf(purgeSize));
Preferences.getPreferences().update(props); // atomic (!)
}
@Override
public String toString() {
return "[method:" + method + "][useCache:" + useCache + "][max:" + maxSize + "][purge:" + purgeSize + "]";
}
}

View File

@ -1,4 +1,4 @@
package mpo.dayon.assisted.compressor;
package mpo.dayon.common.compressor;
import mpo.dayon.common.buffer.MemByteBuffer;
import mpo.dayon.common.capture.Capture;

View File

@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
import mpo.dayon.common.network.message.*;
import mpo.dayon.common.capture.CaptureEngineConfiguration;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.buffer.MemByteBuffer;
import mpo.dayon.common.capture.Capture;
import mpo.dayon.common.concurrent.DefaultThreadFactoryEx;

View File

@ -2,7 +2,7 @@ package mpo.dayon.common.network.message;
import java.io.*;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.buffer.MemByteBuffer;
import mpo.dayon.common.squeeze.CompressionMethod;
import mpo.dayon.common.utils.UnitUtilities;

View File

@ -2,7 +2,7 @@ package mpo.dayon.common.network.message;
import java.io.*;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.squeeze.CompressionMethod;
public class NetworkCompressorConfigurationMessage extends NetworkMessage {

View File

@ -3,7 +3,7 @@ package mpo.dayon.common.event;
import static org.junit.jupiter.api.Assertions.*;
import mpo.dayon.assisted.capture.CaptureEngineListener;
import mpo.dayon.assisted.compressor.CompressorEngine;
import mpo.dayon.common.compressor.CompressorEngine;
import org.junit.jupiter.api.Test;
class ListenersTest {

View File

@ -1,6 +1,6 @@
package mpo.dayon.common.network;
import mpo.dayon.assisted.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.compressor.CompressorEngineConfiguration;
import mpo.dayon.common.buffer.MemByteBuffer;
import mpo.dayon.common.capture.Capture;
import mpo.dayon.common.capture.CaptureEngineConfiguration;