Skip to content
Snippets Groups Projects
Commit 89544672 authored by Felix Sidokhine's avatar Felix Sidokhine
Browse files

reduced heavily the license and version clutter

parent 73ebf114
No related branches found
No related tags found
No related merge requests found
Showing
with 60 additions and 80 deletions
......@@ -3,11 +3,10 @@ package net.jami.jams.common.objects.responses;
import lombok.Getter;
import lombok.Setter;
import net.jami.jams.common.updater.subscription.LicenseInformation;
import net.jami.jams.common.updater.subscription.SubscriptionType;
import java.util.HashMap;
import static net.jami.jams.common.utils.LicenseUtils.checkVersion;
import static net.jami.jams.common.utils.VersioningUtils.checkVersion;
@Getter
@Setter
......
......@@ -6,6 +6,4 @@ public interface AppUpdater {
String getLatestVersion();
boolean downloadUpdates();
}
package net.jami.jams.common.utils;
import lombok.Getter;
import lombok.Setter;
import org.zeromq.SocketType;
import org.zeromq.ZMQ;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
@Getter
@Setter
public class UpdateInterface extends Thread {
private AtomicBoolean updateAvailable = new AtomicBoolean(false);
private volatile String versions;
private ZMQ.Context context = ZMQ.context(1);
private ZMQ.Socket sender = context.socket(SocketType.REQ);
private ZMQ.Socket receiver = context.socket(SocketType.SUB);
private final static Logger logger = Logger.getLogger(UpdateInterface.class.getName());
public UpdateInterface() {
receiver.connect("tcp://localhost:4572");
sender.connect("tcp://localhost:4573");
receiver.subscribe("UPDATE");
this.start();
}
public void approveUpdate(){
sender.send("DO-UPDATE");
}
@Override
public void run() {
while(true){
try{
receiver.recv();
updateAvailable.set(true);
versions = receiver.recvStr();
}
catch (Exception e){
System.out.println(e.toString());
}
}
}
}
......@@ -2,6 +2,7 @@ package net.jami.jams.common.utils;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
......@@ -10,7 +11,7 @@ import java.util.HashMap;
import java.util.jar.JarFile;
@Slf4j
public class LicenseUtils {
public class VersioningUtils {
private static final String IMPLEMENTATION_VERSION_FIELD = "Implementation-Version";
......@@ -20,11 +21,12 @@ public class LicenseUtils {
ArrayList<Path> files = new ArrayList<>();
Files.walk(Paths.get(System.getProperty("user.dir"))).filter(Files::isRegularFile).forEach(files::add);
files.forEach( e ->{
if(e.endsWith(".jar")){
if(e.toString().endsWith(".jar")){
try {
String version = new JarFile(e.toFile()).getManifest().getMainAttributes().getValue(IMPLEMENTATION_VERSION_FIELD);
res.put(e.toString(),version);
log.info("Found version {} of {}",e.toString(),version);
String[] arr = e.toString().split(File.separator);
res.put(arr[arr.length - 1],version);
log.info("Found version {} of {}",version,e.toString());
}
catch (Exception e1){
log.error("Could detect version for file with error {}",e1.getMessage());
......
package net.jami.jams.common.utils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
class LicenseUtilsTest {
class VersioningUtilsTest {
@Test
@Disabled
public void testFileScan(){
HashMap<String,String> res = LicenseUtils.checkVersion();
System.out.println(res);
HashMap<String,String> res = VersioningUtils.checkVersion();
Assertions.assertEquals(6,res.size(),"Incorrect number of versions detected!");
}
......
......@@ -34,7 +34,6 @@ import net.jami.jams.common.serialization.JsoniterRegistry;
import net.jami.jams.common.server.ServerSettings;
import net.jami.jams.common.updater.AppUpdater;
import net.jami.jams.common.utils.LibraryLoader;
import net.jami.jams.common.utils.UpdateInterface;
import net.jami.jams.nameserver.LocalNameServer;
import net.jami.jams.nameserver.PublicNameServer;
import net.jami.jams.server.core.TomcatLauncher;
......@@ -65,7 +64,6 @@ public class Server {
public static AppUpdater appUpdater;
public static NameServer nameServer;
private static TomcatLauncher tomcatLauncher = null;
public static final UpdateInterface updateInterface = new UpdateInterface();
public static final LicenseService licenseService = null;
public static void main(String[] args) {
......
......@@ -22,21 +22,6 @@ public class NeedsUpdateServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
resp.setHeader("Access-Control-Allow-Origin", JamsCA.serverDomain);
resp.setContentType("application/json");
try {
HashMap<String,Object> payload = new HashMap<>();
if(!Server.updateInterface.getVersions().equals("{}")) {
payload.put("updateAvailable", Server.updateInterface.getUpdateAvailable().get());
payload.put("newVersions", Server.updateInterface.getVersions());
}
else
payload.put("updateAvailable",false);
resp.getOutputStream().write(JsonStream.serialize(payload).getBytes());
resp.setStatus(200);
}
catch (Exception e){
resp.setStatus(500);
}
}
@Override
......
......@@ -18,11 +18,5 @@ public class StartUpdateServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
resp.setHeader("Access-Control-Allow-Origin", JamsCA.serverDomain);
resp.setContentType("application/json");
try {
Server.updateInterface.approveUpdate();
}
catch (Exception e){
resp.setStatus(500);
}
}
}
......@@ -2,5 +2,5 @@ module updater {
requires jams.common;
requires lombok;
requires org.slf4j;
requires jeromq;
}
\ No newline at end of file
package net.jami.jams.updater;
import lombok.extern.slf4j.Slf4j;
import net.jami.jams.common.updater.AppUpdater;
import org.zeromq.SocketType;
import org.zeromq.ZMQ;
public class JAMSUpdater implements AppUpdater {
import java.util.concurrent.atomic.AtomicBoolean;
UpdateDownloader updateDownloader = new UpdateDownloader();
@Slf4j
public class JAMSUpdater extends Thread implements AppUpdater {
private static final String IFACE_TCP_SENDER = "tcp://localhost:4573";
private static final String IFACE_TCP_SUBSCRIBER = "tcp://localhost:4572";
private static final String SUBSCRIBER_TOPIC = "UPDATE";
private final AtomicBoolean updateAvailable = new AtomicBoolean(false);
private final ZMQ.Context context = ZMQ.context(1);
private final ZMQ.Socket sender = context.socket(SocketType.REQ);
private final ZMQ.Socket receiver = context.socket(SocketType.SUB);
private final UpdateDownloader updateDownloader = new UpdateDownloader();
public JAMSUpdater() {
receiver.connect(IFACE_TCP_SUBSCRIBER);
sender.connect(IFACE_TCP_SENDER);
receiver.subscribe(SUBSCRIBER_TOPIC);
this.start();
}
@Override
......@@ -23,4 +41,17 @@ public class JAMSUpdater implements AppUpdater {
public boolean downloadUpdates() {
return updateDownloader.doUpdate();
}
@Override
public void run() {
while(true){
try{
receiver.recv();
updateAvailable.set(true);
}
catch (Exception e){
log.error("An error has occured with details {}",e.getMessage());
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment