public static boolean withWatchModule() { return Cls.getClassIfExists("org.rapidoid.io.watch.Watch") != null; }
public static <T> T customizable(Class<T> clazz, Object... args) { String customClassName = "Customized" + clazz.getSimpleName(); Class<T> customClass = getClassIfExists(customClassName); if (customClass == null) { customClass = getClassIfExists("custom." + customClassName); } if (customClass != null && !clazz.isAssignableFrom(customClass)) { customClass = null; } return newInstance(U.or(customClass, clazz), args); }
private boolean originalMarkedNotToReload(String classname) { Class<?> cls = Cls.getClassIfExists(classname); return cls != null && reloadVeto(cls); }
private static void addBuiltInModules(List<RapidoidModule> modules) { for (String clsName : Cls.getRapidoidClasses()) { if (clsName.endsWith("Module")) { Class<?> cls = Cls.getClassIfExists(clsName); boolean isModule = cls != null && !cls.isInterface() && RapidoidModule.class.isAssignableFrom(cls) && !Modifier.isAbstract(cls.getModifiers()); if (isModule) { modules.add((RapidoidModule) Cls.newInstance(cls)); } } } }
public static void watchForChanges(String path, Operation<String> changeListener) { Class<?> watch = Cls.getClassIfExists("org.rapidoid.io.watch.Watch"); if (watch != null) { Method dir = Cls.getMethod(watch, "dir", String.class, Operation.class); Cls.invokeStatic(dir, path, changeListener); } }
public static Class<?> getCallingMainClass() { StackTraceElement[] trace = Thread.currentThread().getStackTrace(); // skip the first 2 elements: // [0] java.lang.Thread.getStackTrace // [1] THIS METHOD for (int i = 2; i < trace.length; i++) { String cls = trace[i].getClassName(); if (couldBeCaller(cls) && U.eq(trace[i].getMethodName(), "main")) { Class<?> clazz = Cls.getClassIfExists(cls); if (clazz != null) { Method main = Cls.findMethod(clazz, "main", String[].class); if (main != null && main.getReturnType() == void.class && !main.isVarArgs() && main.getDeclaringClass().equals(clazz)) { int modif = main.getModifiers(); if (Modifier.isStatic(modif) && Modifier.isPublic(modif)) { return clazz; } } } } } return null; }
@SuppressWarnings("unchecked") public static Object load(String json) { Map<String, Object> map = JSON.parseMap(json); String clsName = (String) map.get("_"); Class<Object> type = Cls.getClassIfExists(clsName); if (type == null) { return null; } Object ser = map.get("v"); if (ser instanceof Map) { Object value = Cls.newInstance(type); Map<String, Object> props = (Map<String, Object>) ser; Beany.update(value, props, false); return value; } return ser; }
@SuppressWarnings("unchecked") public static Object load(String json) { Map<String, Object> map = parseMap(json); String clsName = (String) map.get("_"); Class<Object> type = Cls.getClassIfExists(clsName); if (type == null) { return null; } Object ser = map.get("v"); if (ser instanceof Map) { Object value = Cls.newInstance(type); Map<String, Object> props = (Map<String, Object>) ser; Beany.update(value, props, false); return value; } return ser; }
public static void oauth(Setup setup) { Class<?> oauthClass = Cls.getClassIfExists("org.rapidoid.oauth.OAuth"); U.must(oauthClass != null, "Cannot find the OAuth components, is module 'rapidoid-oauth' missing?"); Method bootstrap = Cls.getMethod(oauthClass, "bootstrap", Setup.class); Cls.invokeStatic(bootstrap, setup); }
static IGoodies getGoodies() { Class<?> goodiesClass; if (Msc.isPlatform()) { goodiesClass = Cls.get("org.rapidoid.goodies.RapidoidPlatformGoodies"); } else { goodiesClass = Cls.getClassIfExists("org.rapidoid.goodies.RapidoidGoodies"); U.must(goodiesClass != null, "Cannot find the Goodies, is module 'rapidoid-web' missing?"); } return (IGoodies) Cls.newInstance(goodiesClass); }