private String getCollectionName(File f, SlbModelTree slbmodel) { if (f.getName().indexOf("slb_base.xml") >= 0) { return "slb_base"; } if (slbmodel.getVirtualServers().size() != 1) { throw new IllegalStateException("wrong file format, multi virtual servers:" + f); } VirtualServer vs = (VirtualServer) slbmodel.getVirtualServers().values().toArray()[0]; return vs.getName(); }
private void processConcurrentConfig(File f) throws IOException, SAXException { SlbModelTree slbmodel = readFromFile(f); String collectionName = getCollectionName(f, slbmodel); synchronized (this) { if (!mongoTemplate.collectionExists(collectionName)) { createCollection(collectionName); } } DocumentKey key = getDocumentKey(f, slbmodel); slbmodel.setTag(key.getTag()); updateTagGlobalId(collectionName, key.getTag()); mongoTemplate.insert(slbmodel, collectionName); }
private DocumentKey getDocumentKey(File f, SlbModelTree slbmodel) { String fileName = f.getName(); if (fileName.indexOf("slb_base.xml") >= 0) { return new DocumentKey("slb_base"); } VirtualServer vs = (VirtualServer) slbmodel.getVirtualServers().values().toArray()[0]; String name = vs.getName(); int index = fileName.indexOf(".xml_"); if (index >= 0) { String tag = fileName.substring(index + ".xml_".length()).trim(); return new DocumentKey(name, Integer.parseInt(tag)); } // concurrent version return new DocumentKey(name); }