private boolean register(File f) { boolean rc = false; if (f.isDirectory()) { File file[] = f.listFiles(this); for (int i = 0; i < file.length; i++) { if (register(file[i])) rc = true; } } else if (dirMap.get(f) == null) { dirMap.put(f, new QEntry()); rc = true; } return rc; }
private void undeploy(File f) { QEntry qentry = (QEntry) dirMap.get(f); try { if (log != null) log.trace("undeploying:" + f.getCanonicalPath()); Object obj = qentry.getObject(); ObjectName name = qentry.getObjectName(); factory.destroyQBean(this, name, obj); if (log != null) log.info("undeployed:" + f.getCanonicalPath()); } catch (Exception e) { getLog().warn("undeploy", e); } }
private boolean deploy(File f) { try { if (log != null) log.info("deploy:" + f.getCanonicalPath()); QEntry qentry = (QEntry) dirMap.get(f); SAXBuilder builder = createSAXBuilder(); Document doc; if (decorator != null && !f.getName().equals(LOGGER_CONFIG)) { doc = decrypt(builder.build(new StringReader(decorator.decorateFile(f)))); } else { doc = decrypt(builder.build(f)); } Element rootElement = doc.getRootElement(); String iuuid = rootElement.getAttributeValue("instance"); if (iuuid != null) { UUID uuid = UUID.fromString(iuuid); if (!uuid.equals(getInstanceId())) { deleteFile(f, iuuid); return false; } } Object obj = factory.instantiate(this, rootElement); qentry.setObject(obj); ObjectInstance instance = factory.createQBean(this, doc.getRootElement(), obj); qentry.setInstance(instance); } catch (InstanceAlreadyExistsException e) { /* * Ok, the file we tried to deploy, holds an object * that already has been deployed. * * Rename it out of the way. * */ tidyFileAway(f, DUPLICATE_EXTENSION); getLog().warn("deploy", e); return false; } catch (Exception e) { getLog().warn("deploy", e); tidyFileAway(f, ERROR_EXTENSION); // This will also save deploy error repeats... return false; } catch (Error e) { getLog().warn("deploy", e); tidyFileAway(f, ENV_EXTENSION); // This will also save deploy error repeats... return false; } return true; }