@Override public void onFileWatchError(FileWatch fileWatch, Throwable t) { MApi.dirtyLog(t); }
private boolean internalLoadConfig(File file) { if (file.exists() && file.isFile()) try { XmlConfigFile c = new XmlConfigFile(file); config = c; lastConfigUpdate = System.currentTimeMillis(); return true; } catch (Exception e) { MApi.dirtyLog(e); } MApi.dirtyLog("*** MHUS Config file not found", file); return false; }
protected synchronized boolean check() { doUpdateFile(); if (file == null) return false; if (isRotate() && out != null && file.exists() && file.isFile() && file.length() > maxFileSize) { out.flush(); out.close(); out = null; } if (out == null) { if (file.exists() && file.isFile()) rotate(); try { out = new PrintStream(new BufferedOutputStream(new FileOutputStream(file))); } catch (FileNotFoundException e) { MApi.dirtyLog(e); } } return out != null; }
@Override public void setInstance(String name, Object obj) { Object old = null; if (obj == null) { old = instances.remove(name); } else { // lifecycle if (obj instanceof ActivatorObjectLifecycle) { old = instances.get(name); try { ((ActivatorObjectLifecycle)obj).objectActivated(name,old); } catch (Throwable t) { MApi.dirtyLog(this,name,t); } } old = instances.put(name, obj); } // lifecycle if (old != null && old instanceof ActivatorObjectLifecycle) { try { ((ActivatorObjectLifecycle)obj).objectDeactivated(); } catch (Throwable t) { MApi.dirtyLog(this,name,t); } } }
public static boolean isTrace(String name) { dirtyLog("Ask for trace", name); // String value = System.getProperty(name+".trace"); // if (value != null) return "true".equals(value); return get().isTrace(name); }
@Override public <T, D extends T> T lookup(Class<T> ifc, Class<D> def) { try { if (activator == null) { if (parent != null) return parent.lookup(ifc, def); } else { if (parent != null && !activator.isInstance(ifc) && ( local == null || !local.contains(ifc.getCanonicalName()) ) ) return parent.lookup(ifc, def); } T ret = activator.getObject(ifc); if (ret != null) return ret; } catch (Exception e) { MApi.dirtyLog("info: fallback to default",ifc,def,e); } if (def == null) return null; try { return def.newInstance(); } catch (InstantiationException | IllegalAccessException e) { MApi.dirtyLog(ifc,e); } return null; }
public static synchronized IApi get() { if (api == null) { try { IApi obj = null; String path = "de.mhus.lib.mutable.MApiFactory"; if (System.getProperty("mhu.lib.api.factory") != null) path = System.getProperty(MConstants.PROP_API_FACTORY_CLASS); dirtyLog("MApiFactory", path); IApiFactory factory = (IApiFactory)Class.forName(path).newInstance(); if (factory != null) { obj = factory.createApi(); } api = obj; } catch (Throwable t) { if (isDirtyTrace()) t.printStackTrace(); } if (api == null) api = new DefaultMApi(); if (isDirtyTrace()) System.out.println("--- MApi: " + api.getClass().getCanonicalName()); if (api instanceof ApiInitialize) ((ApiInitialize)api).doInitialize(DummyClass.class.getClassLoader()); } return api; }
@Override public void doInitialize(IApiInternal internal, CfgManager manager, IConfig config) { ResourceNode<?> system = manager.getCfg("system"); try { String key = MConstants.PROP_BASE_DIR; String name = system.getString(key); if (MString.isEmpty(name)) name = System.getProperty(MConstants.PROP_PREFIX + key); if (MString.isSet(name)) internal.setBaseDir( new File(name) ); } catch (Throwable t) {MApi.dirtyLog(t);} }
public void reConfigure() { MApi.dirtyLog("Load mhu-lib configuration"); MApi.dirtyLog("remove initiator",name); initiators.remove(name); } else if (clazzName != null && !initiators.containsKey(name)) { MApi.dirtyLog("add initiator",name); CfgInitiator initiator = activator.createObject(CfgInitiator.class, clazzName); initiators.put(name, new Object[] {initiator, node }); CfgInitiator i = (CfgInitiator)initiator[0]; IConfig c = (IConfig)initiator[1]; MApi.dirtyLog("run initiator",initiator[0].getClass()); i.doInitialize(internal, MApi.get().getCfgManager(), c ); } catch (Throwable t) { MApi.dirtyLog("Can't initiate",initiator.getClass()," Error: ",t); MApi.dirtyLog("Can't initiate config ", t);
MApi.dirtyLog("--- Try to load mhus config from ", f.getAbsolutePath()); internalLoadConfig(f);
mlogFactory = (MLogFactory) Class.forName(name.trim()).newInstance(); } catch (Throwable t) {MApi.dirtyLog(t);} if (mlogFactory != null) internal.setMLogFactory(mlogFactory); logFactory = (LogFactory) Class.forName(name.trim()).newInstance(); } catch (Throwable t) {MApi.dirtyLog(t);} if (logFactory == null) logFactory = new ConsoleFactory(); logFactory.setLevelMapper( (LevelMapper) Class.forName(name.trim()).newInstance() ); } catch (Throwable t) {MApi.dirtyLog(t);} logFactory.setMaxMessageSize(Integer.valueOf(size)); } catch (Throwable t) {MApi.dirtyLog(t);} } catch (Throwable t) {MApi.dirtyLog(t);} } catch (Throwable t) {MApi.dirtyLog(t);} } catch (Throwable t) {MApi.dirtyLog(t);} } catch (Throwable t) {MApi.dirtyLog(t);}