From d684cd4dbdadb11a0017556e802bdf3141336f2b Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 10 Jun 2015 20:22:04 +0200 Subject: [server] db stuff, new interface, ... --- .../src/main/java/thrift/OperatingSystemList.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java (limited to 'dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java') diff --git a/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java b/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java new file mode 100644 index 00000000..6d5404f7 --- /dev/null +++ b/dozentenmodulserver/src/main/java/thrift/OperatingSystemList.java @@ -0,0 +1,37 @@ +package thrift; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.apache.thrift.TException; +import org.openslx.bwlp.thrift.iface.OperatingSystem; +import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.TimeoutReference; + +/** + * Holds the list of all known operating systems. The list is synchronized with + * the master server. + */ +public class OperatingSystemList { + + private static final Logger LOGGER = Logger.getLogger(OperatingSystemList.class); + + private static final TimeoutReference> cachedList = new TimeoutReference>( + 600000, null); + + public static synchronized List get() { + List list = cachedList.get(); + if (list == null) { + try { + list = ThriftManager.getMasterClient().getOperatingSystems(); + // TODO: Write to DB + } catch (TException e) { + LOGGER.warn("Could not retrieve OS list from master server", e); + return null; + } + cachedList.set(list); + } + return list; + } + +} -- cgit v1.2.3-55-g7522