Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -212,12 +212,12 @@ public String getVersion() {
return env.getProperty("owlplug.version");
}

public String getOwlPlugHubUrl() {
return env.getProperty("owlplug.hub.url");
public String getLatestUrl() {
return env.getProperty("owlplug.github.latestUrl");
}

public String getUpdateDownloadUrl() {
return env.getProperty("owlplug.hub.updateDownloadUrl");
public String getDownloadUrl() {
return env.getProperty("owlplug.github.downloadUrl");
}

public String getOwlPlugRegistryUrl() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,14 @@
import com.owlplug.explore.controllers.ExploreController;
import com.owlplug.explore.services.ExploreService;
import com.owlplug.plugin.services.PluginService;
import com.owlplug.plugin.services.UpdateService;
import com.owlplug.core.services.AppUpdateService;
import jakarta.annotation.PreDestroy;
import java.util.ArrayList;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import javafx.application.Platform;
import javafx.concurrent.Task;
import javafx.fxml.FXML;
import javafx.geometry.Pos;
import javafx.scene.Parent;
Expand Down Expand Up @@ -79,7 +81,7 @@ public class MainController extends BaseController {
@Autowired
private AuthenticationService authenticationService;
@Autowired
private UpdateService updateService;
private AppUpdateService appUpdateService;
@Autowired
private PluginService pluginService;
@Autowired
Expand Down Expand Up @@ -151,25 +153,20 @@ public void initialize() {
refreshAccounts();

downloadUpdateButton.setOnAction(e -> {
PlatformUtils.openDefaultBrowser(this.getApplicationDefaults().getUpdateDownloadUrl());
PlatformUtils.openDefaultBrowser(this.getApplicationDefaults().getDownloadUrl());
});

updatePane.setVisible(false);

Task<Boolean> retrieveUpdateStatusTask = new Task<>() {
@Override
protected Boolean call() throws Exception {
return updateService.isUpToDate();
}
};

retrieveUpdateStatusTask.setOnSucceeded(e -> {
if (!retrieveUpdateStatusTask.getValue()) {
updatePane.setVisible(true);
}
});

new Thread(retrieveUpdateStatusTask).start();
Executor executor = Executors.newVirtualThreadPerTaskExecutor();
CompletableFuture
.supplyAsync(() -> appUpdateService.isUpToDate(), executor)
.thenAccept(isUpToDate -> {
Platform.runLater(() -> {
if (!isUpToDate) {
updatePane.setVisible(true);
}
});
});

tabPaneContent.getSelectionModel()
.selectedItemProperty()
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,18 @@
* along with OwlPlug. If not, see <https://www.gnu.org/licenses/>.
*/

package com.owlplug.plugin.services;
package com.owlplug.core.services;

import com.owlplug.core.model.json.RemoteVersion;
import com.owlplug.core.services.BaseService;
import com.vdurmont.semver4j.Semver;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;

@Service
public class UpdateService extends BaseService {
public class AppUpdateService extends BaseService {


private final Logger log = LoggerFactory.getLogger(this.getClass());
Expand All @@ -39,34 +38,38 @@ public class UpdateService extends BaseService {
*/
public boolean isUpToDate() {

String remoteVersion = getLastVersion();
String lastVersion = getLastVersion();

if (remoteVersion != null) {
Semver remoteSemver = new Semver(remoteVersion);
if (lastVersion != null) {
log.debug("Last app version retrieved: {}", lastVersion);
Semver lastSemver = new Semver(lastVersion);
Semver currentSemver = new Semver(this.getApplicationDefaults().getVersion());
return remoteSemver.isLowerThanOrEqualTo(currentSemver);
return lastSemver.isLowerThanOrEqualTo(currentSemver);

}
return true;

}

private String getLastVersion() {
RestTemplate restTemplate = new RestTemplate();
RemoteVersion remoteVersion = null;
try {
remoteVersion = restTemplate.getForObject(this.getApplicationDefaults().getOwlPlugHubUrl()
+ "/releases/latest/version.json", RemoteVersion.class);
} catch (RestClientException e) {
log.error("Error retrieving latest owlplug version", e);
}
restTemplate.getInterceptors().add((request, body, execution) -> {
request.getHeaders().add("User-Agent", "OwlPlug/App");
request.getHeaders().add("Accept", "application/vnd.github+json");
return execution.execute(request, body);
});
String url = this.getApplicationDefaults().getLatestUrl();

if (remoteVersion != null) {
return remoteVersion.version;
try {
// Map GitHub JSON to a simple Map so we can extract "tag_name"
Map<String, Object> response = restTemplate.getForObject(url, Map.class);

if (response.containsKey("tag_name")) {
return (String) response.get("tag_name");
}
} catch (RestClientException e) {
log.error("Error retrieving latest GitHub release version", e);
}
return null;

}

}
Expand Down
4 changes: 2 additions & 2 deletions owlplug-client/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
owlplug.version=@project.version@
owlplug.workspace.min-version = 1.29.0

owlplug.hub.url = https://hub.owlplug.com
owlplug.hub.updateDownloadUrl = https://github.com/DropSnorz/OwlPlug/releases
owlplug.github.latestUrl = https://api.github.com/repos/Dropsnorz/OwlPlug/releases/latest
owlplug.github.downloadUrl = https://github.com/DropSnorz/OwlPlug/releases
owlplug.github.issues.url = https://github.com/DropSnorz/OwlPlug/issues
owlplug.github.wiki.url = https://github.com/DropSnorz/OwlPlug/wiki
owlplug.roadmap.url = https://owlplug.com/roadmap
Expand Down