package org.ironbrain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.util.Calendar;
import java.util.Properties;
import java.util.Random;
@Component
public class IB {
@Autowired
private ServletContext context;
//For testing purpose
private static long msOffset = 0;
public static Random rand() {
return random;
}
public static void setRandom(Random random) {
IB.random = random;
}
private static Random random = new Random();
public static void setMsOffset(long msOffset) {
IB.msOffset = msOffset;
}
public static long getNowMs() {
return System.currentTimeMillis() + msOffset;
}
public static Calendar getNowCalendar() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(getNowMs());
return calendar;
}
public String getVersionStr() {
String version = getClass().getPackage().getImplementationVersion();
if (version == null) {//Tomcat bug fix
Properties prop = new Properties();
try {
prop.load(context.getResourceAsStream("/META-INF/MANIFEST.MF"));
version = prop.getProperty("Implementation-Version");
} catch (IOException e) {
e.printStackTrace();
}
}
return version;
}
public boolean isPublicVersion() {
return publicVersion;
}
public static void out(Object object){
System.out.println(object);
}
public void setPublicVersion(boolean publicVersion) {
this.publicVersion = publicVersion;
}
private boolean publicVersion;
}